Configuration errors are among the most common reasons a validator fails to start. They range from HOCON syntax mistakes to subtle environment variable conflicts.Documentation Index
Fetch the complete documentation index at: https://docs.canton.network/llms.txt
Use this file to discover all available pages before exploring further.
HOCON Parsing Errors
Canton uses HOCON (Human-Optimized Config Notation) for its configuration files. Syntax errors prevent the validator from starting and produce messages like:- Missing closing brace. HOCON files can be deeply nested. Use an editor that highlights matching braces, or run a linter before deploying.
- Unquoted special characters. Values containing
://,=, or#must be quoted.
- Wrong value types. If the schema expects a duration and you provide an integer without a unit, parsing fails.
- Trailing commas. HOCON is more forgiving than JSON, but some constructs still break on trailing commas inside arrays.
File Permission Issues
The validator process must be able to read its configuration files. On Linux and in containers, this often means adjusting ownership or permissions.Kubernetes Secrets Not Mounted
If a configuration file references a Kubernetes Secret that is not mounted into the pod, the validator fails with aFileNotFoundException on the expected path. Verify:
- The secret name in the Helm values does not match the actual secret name.
- The secret was created in a different namespace.
- A
subPathmount is pointing to a key that does not exist in the secret.
Environment Variable Conflicts
Canton and Splice components read configuration from both files and environment variables. When both are set, environment variables take precedence, which can produce unexpected behavior.DPM_SDK_VERSION Overriding daml.yaml
If you set DPM_SDK_VERSION as an environment variable, it overrides the sdk-version field in your project’s daml.yaml. This can cause version mismatch errors during builds:
daml.yaml:
Conflicting .env Files
Docker Compose loads .env from the working directory. If you have multiple .env files (e.g., from a previous deployment), stale values can override current configuration.
SPLICE_APP_VERSION— must match the Helm chart or Docker image versionPARTICIPANT_HOST— must resolve from inside the container, not just from the hostAUTH_URL— must be reachable from the validator container
Debugging Configuration Resolution
To see the final merged configuration that Canton will use:DEBUG level on startup. Temporarily set canton.monitoring.logging.api.level = DEBUG to capture it.