Quick-reference guide for resolving common Canton Network issues. Each entry provides immediate diagnostic steps and solutions derived from production support cases.Documentation Index
Fetch the complete documentation index at: https://cantonfoundation-issue-365-details-history.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Installation & Setup Issues
Nix Installation Problems
Nix not found after installation
Nix not found after installation
Nix breaks after macOS update
Nix breaks after macOS update
Docker & Container Issues
Docker memory error during quickstart
Docker memory error during quickstart
- Open Docker Desktop → Settings → Resources
- Set Memory to 8GB or higher
- Set CPU to 4 cores or higher
- Apply & Restart
Docker Compose version mismatch
Docker Compose version mismatch
'env_file[1]' expected type 'string', got unconvertible type 'map[string]interface {}'Cause: Docker Compose version is below 2.26.0.Solution:Splice container keeps restarting (unhealthy)
Splice container keeps restarting (unhealthy)
Container splice errors; looks it tries to start and fails after about 20 seconds. Other containers start ok.Diagnostic Steps:-
Check container logs:
- Verify resource allocation (memory/CPU)
-
Check for configuration errors in
.envfile
- Insufficient system resources (increase Docker memory to 8GB+)
- Network/DNS resolution issues
- Configuration errors in environment variables
Java version incompatibility
Java version incompatibility
Node.js & NPM Issues
make build fails with NodeJS error
make build fails with NodeJS error
Configuration Issues
Authentication & OIDC
Empty auth-services URL configuration error
Empty auth-services URL configuration error
LEDGER_API_AUTH_AUDIENCE is not properly configured.Solution:
Ensure all authentication environment variables are set in your .env file:ACCESS_TOKEN_EXPIRED errors
ACCESS_TOKEN_EXPIRED errors
- In Auth0: Applications → Your App → Settings → Advanced → Access Token Lifetime
- Set to 15 minutes or higher
- Restart your validator
- Realm Settings → Tokens → Access Token Lifespan → Set to 900 (15 minutes)
UNAUTHENTICATED error when enabling parties
UNAUTHENTICATED error when enabling parties
- Verify your JWT token is valid and not expired
- Check that the token has the correct scope (
daml_ledger_api) - Ensure the token audience matches
LEDGER_API_AUTH_AUDIENCE
Wallet shows 'Onboard Yourself' button after upgrade
Wallet shows 'Onboard Yourself' button after upgrade
Synchronizer & Network Configuration
Cannot connect to synchronizer
Cannot connect to synchronizer
Request failed for sequencer or Cannot connect to synchronizerDiagnostic Steps:- VPN not connected (DevNet requires VPN)
- Incorrect synchronizer URL
- Firewall blocking port 443
- Verify VPN connection for DevNet
- Ensure synchronizer URL is correct:
- DevNet:
https://sv.sv-2.global.canton.network.digitalasset.com - TestNet:
https://sequencer.test.sync.global - MainNet:
https://sequencer.sync.global
- DevNet:
Using scan URL instead of SV URL
Using scan URL instead of SV URL
https://scan.sv-2.global.canton.network.digitalasset.com/api/sv✅ Correct: https://sv.sv-2.global.canton.network.digitalasset.comThe SV (Super Validator) URL is for onboarding. The scan URL is for viewing network data.TLS handshake failed
TLS handshake failed
- Certificate not expired
- Certificate chain is complete
- Hostname matches certificate
- Correct TLS version (1.2 or 1.3)
Runtime Errors
Package & Vetting Issues
PACKAGE_SELECTION_FAILED
PACKAGE_SELECTION_FAILED
No package vetting state found for domain
No package vetting state found for domain
- Ensure you’re using the correct SV sponsor URL (not the scan URL)
- Check network connectivity to the synchronizer
- Restart the validator to retry package vetting
Authorization failed
Authorization failed
Transaction & Mediator Issues
MEDIATOR_SAYS_TX_TIMED_OUT
MEDIATOR_SAYS_TX_TIMED_OUT
- Insufficient Canton Coin balance for traffic top-ups
- Network connectivity issues
- Validator unhealthy or offline
- Check Canton Coin balance for all involved parties
- Top up if necessary:
- Verify all validators involved are healthy
Synchronizer outbox flusher failed
Synchronizer outbox flusher failed
- Check network connectivity to the synchronizer
- If persistent, consider enabling topology batching:
- Check if the issue is transient (TestNet may have periods of slower response)
Performance Issues
503 timeouts when submitting commands
503 timeouts when submitting commands
-
Enable pruning to reduce database size:
-
Increase database resources:
- Upgrade to gp3 storage (AWS)
- Increase IOPS
- Remove CPU limits on PostgreSQL pod
- Consider using PQS (Participant Query Store) for read-heavy workloads
- Implement retry logic with exponential backoff in your application
Pruning not running on MainNet
Pruning not running on MainNet
/v2/state/latest-pruned-offsets shows no pruning activity.Cause: First-time pruning on MainNet with large history may exceed maxDuration.Solution:-
Increase
maxDurationsignificantly for initial pruning: -
Or temporarily increase
retentionto reduce initial volume: -
Monitor pruning progress via Canton Console:
ContentionOnSharedResources errors
ContentionOnSharedResources errors
Upgrade & Migration Issues
Version mismatch after upgrade (still showing old version)
Version mismatch after upgrade (still showing old version)
--reuse-values flag with helm upgrade can cause version configuration to be retained from the previous release.Solution:
Upgrade without the --reuse-values flag:Node crashes after upgrade - UnrecoverableError
Node crashes after upgrade - UnrecoverableError
- DO NOT repeatedly restart - this may compound the issue
- Check if you have a pre-upgrade snapshot/backup
- Verify migration configuration in
standalone-validator-values.yaml: - Ensure participant database name is updated:
- If stuck, contact support with full logs
'You don't speak 0.5.x' errors
'You don't speak 0.5.x' errors
- Check current network version at canton.foundation/sv-network-status
- Upgrade directly to the current network version (don’t stop at intermediate versions)
- Follow the validator upgrade guide — applies to both Docker Compose (
docker-composebundle update) and Kubernetes (helm upgrade) deployments.
Disaster recovery from old node ID backup
Disaster recovery from old node ID backup
Expected exactly one OwnerToKeyMapping for old node id... but got List()Cause: Node ID dump format changed between versions. Old format used different key names.Solution:
Update the JSON key names in your node ID dump to match current format:Old format:Wallet & Balance Issues
Balance shows 0 after upgrade
Balance shows 0 after upgrade
-
Check participant logs for connectivity issues:
-
Verify all components are healthy:
- Allow time for the validator to resync (may take several hours after major upgrade)
- Verify no 503 errors or UNAVAILABLE responses in logs
- Check that all upstream components are healthy
- If issue persists, restart the validator pods in sequence:
Access & Permissions
JFrog Artifactory access denied
JFrog Artifactory access denied
- If you don’t have an account, request one via support.digitalasset.com
-
Provide:
- Organization name
- Email addresses for access
- Specific artifacts needed (CN Quickstart, Canton Enterprise, etc.)
- After receiving credentials, log in at digitalasset.jfrog.io
IP Whitelisting request
IP Whitelisting request
- DevNet: Contact your Super Validator sponsor for VPN credentials and IP whitelisting
- TestNet: Submit IP whitelisting request via support portal
- MainNet: Follow the validator onboarding documentation
- Static IP address(es) for your validator
- Organization name
- Super Validator sponsor (DevNet/TestNet)
- Validator party hint
Diagnostic Commands Reference
Health Checks
Log Analysis
Canton Console Diagnostics
Getting Help
If these troubleshooting steps don’t resolve your issue:-
Gather Information:
- Full validator and participant logs
- Splice version and environment (Docker/Kubernetes)
- Steps to reproduce
- Error messages and stack traces
-
Support Channels:
- Discretionary Support: da-support@digitalasset.com
- Community: Slack channels (#validator-operations, #gsf-global-synchronizer-appdev)
-
Include:
- Validator ID
- Network (DevNet/TestNet/MainNet)
- Timeline of when issue started
- Any recent changes made