When something goes wrong with your validator, a structured approach saves time. This page outlines a repeatable process for diagnosing issues and knowing when to escalate.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.
Step 1: Check Logs
Logs are your primary diagnostic tool. Start here before anything else. Capture logs from a Docker Compose deployment:logs/ directory.
For Kubernetes deployments, pull logs from each pod:
lnav (a terminal-based log viewer with filtering and search):
lnav, press / to search, then filter by severity:
:filter-in error— show only error-level entries:filter-in WARN— show warnings too- Press
TABto switch between log files
PARTICIPANT_*, SEQUENCER_*, or MEDIATOR_*. These codes directly point to the category of failure.
Step 2: Check Health Endpoints
Every validator component exposes a health endpoint. Confirm that each is responding:Step 3: Check Connectivity
Verify that your validator can reach the synchronizer sequencer and that no network-level issue is blocking traffic.Step 4: Check the Database
If health endpoints respond but transactions fail or performance degrades, the database is the next suspect.Step 5: Check Canton Console
If the validator is running, the Canton console provides direct insight into internal state:Debugging Web UI Issues
Debugging issues in Web UIs
When facing an issue related to connectivity problems, if you are using chrome or firefox based browser:- Go to the right of the address bar in your browser, go on the settings and then
More tools -> Developer tools(or by hitting Ctrl + Shift + i). Your browser developer tools window opens. - Click the
Networktab. - Enable the
Preserve or Persist logcheck box. - While the console remains open, reproduce the issue you want to report.
- Once you are done, right-click and select
Save all as HAR - Name the file with the description of your issue and save it.
Console tab instead of the Network tab.
Collecting Configuration for Diagnosis
Configurations
Another thing which is often quite helpful to diagnose issue is to collect all configurations.- The application configuration files when running locally,
- The helm values when using the helm charts (
helm get values -n <namespace> <chartname>), - The environment variables when using the docker container but not the helm charts.
Common Error Messages
Common Error Messages
Traffic balance below reserved amount
A log of the form shown below indicates that your validator app has not been able to purchase any traffic. The validator blocks transactions not required to purchase more traffic once the purchased traffic balance falls below a given number to avoid issues where the validator locks itself out by not having enough traffic to complete a traffic purchase. Check the logs forTopupMemberTrafficTrigger to find possible causes.
If you only want to rely on free traffic and do not want to purchase any extra traffic, remove the validator top-up config.
Insufficient funds to buy configured traffic amount
A log of the form shown below indicates that your validator app attempted to purchase traffic but does not have enough in the wallet of the validator operator party. This is common on TestNet and MainNet for new nodes as they start out with a balance of 0 and only slowly accrue CC through validator liveness rewards. So often this just requires waiting until enough CC has accrued. Alternatively, an existing node with a CC balance can transfer CC to you to increase your balance. If you only want to rely on free traffic and do not want to purchase any extra traffic, remove the validator top-up config.Gave up getting app version
A log of the form below can often indicate that you used a scan URL in a place where an SV URL was expected or the other way around. Note the mismatch between the prefixhttps://scan. and the path /api/sv at the end.
In a docker-compose setup, verify the URL passed to -s which should be a SV URL or svSponsorAddress for the helm deployment.
UNAUTHENTICATED errors in validator, sv and scan app
A log of the form below in the SV, scan or validator app logs indicates an authenitcation error on the connection to the participant. Check the participant logs which will contain more details on why the request got rejected.Node has identity X, but identifier Y was expected
A log of the form below in the validator or SV app indicates that you tried to change the identifier used for your participant (or for SVs sequencer, mediator) after it was already initialized. Note that for validators the node identifier defaults to yourvalidatorPartyHint so changing that also produces this error. For SVs it defaults to the SV name. If this is a new node, the easiest option is to reset your node by dropping the respective databases of the participant and validator or for SVs sequencer, participant, mediator, validator, sv and scan app. After you dropped the databases bring up your node again.
If this is not a new node, change the values back to what you had before.
MemberDisabled error when connecting to sequencer
A log of the form below in your participant indicates that it has been down longer than the 30 day sequencer pruning window so the SVs have disabled it. Any attempts to connect will fail with the same error. You can recover your CC balance by spinning up a new node viavalidator_reonboard.
Error Escalation
When you encounter an error, use this decision path:- Check the category. Categories 1 and 2 are transient — retry with backoff. If retries fail for more than a few minutes, move to step 2.
- Check connectivity. Verify network connectivity, VPN status (for DevNet), DNS resolution, and that the target sequencer endpoint is reachable.
- Check resources. Look for
DB_STORAGE_DEGRADATION,SERVER_OVERLOADED, orSEQUENCER_BACKPRESSUREin logs. These point to resource constraints. - Category 4 or 5 errors require investigation. Gather full logs, the error code, correlation ID, and node version. Do not repeatedly restart a node showing category 4 errors without understanding the cause.
- Contact support with the error code, full correlation ID, timestamps, node version, and relevant log excerpts. Support channels:
- Discretionary support: da-support@digitalasset.com
- SLA-based support: support@digitalasset.com
- Community: Slack
#validator-operationschannel
When sharing logs with support, redact private keys, passwords, and JWT tokens, but preserve error codes, correlation IDs, and timestamps.
Escalation Path
If self-diagnosis does not resolve the issue, escalate in this order:- Self-service documentation — search this troubleshooting guide and the cheat sheet
- Community Slack channels — post in
#validator-operationsor#gsf-global-synchronizer-appdevwith your error message, logs (redacted), and environment details - Email support — contact da-support@digitalasset.com for best-effort discretionary support
- Paid support with SLAs — contact support@digitalasset.com, which opens a tracked Jira ticket
- Your validator ID and network (DevNet, TestNet, or MainNet)
- The Splice / SDK version you are running
- Relevant log excerpts (redact private keys, passwords, and JWT tokens)
- A timeline of when the issue started and any recent changes