Skip to main content
This page covers common installation problems you may encounter when setting up a Canton Network development environment, including Nix shell failures, Docker configuration, and memory allocation.

Nix Problems

Nix shell fails to start

If nix-shell exits with a hash mismatch or download error, your local Nix cache may be stale.
When nix-shell hangs during evaluation, check that your NIX_PATH is set correctly and that no conflicting Nix channels exist:
Remove any unexpected channels and re-run nix-shell.

”command not found: nix” after installation

Your shell profile may not source the Nix environment. Add the following to your ~/.bashrc or ~/.zshrc:
Alternatively, restart your terminal session entirely. On macOS, after a system update Nix sometimes needs reinstallation:

PATH conflicts between Nix and system packages

If a system-installed tool (e.g., a different Java version) takes precedence over the Nix-provided one, verify your PATH ordering:
Inside nix-shell, Nix prepends its paths to $PATH. If you still see system binaries, check whether your shell profile appends paths after Nix or overrides them.

Docker Configuration

Insufficient memory for LocalNet

LocalNet runs a full Canton topology locally and needs significant resources. If containers crash with OOM (Out of Memory) kills or fail to start, increase Docker’s memory allocation. Minimum requirements for LocalNet:
  • Memory: 16 GB
  • CPU: 4 cores
  • Disk: 50 GB free
Docker Desktop: Settings > Resources > set Memory to 16 GB or higher, then Apply & Restart. Colima (macOS):

Volume mount permission errors

On Linux, Docker containers may fail to write to mounted volumes if your user ID does not match the container’s expected UID. Fix this by ensuring the host directory has appropriate permissions:
Or run Docker with the --user flag matching your host UID:

Docker Compose version mismatch

Canton Quickstart requires Docker Compose 2.26.0 or higher. If you see:
Upgrade Docker Compose:

Memory Allocation

JVM heap for sandbox

The Daml sandbox runs on the JVM and defaults to conservative heap settings. If you encounter java.lang.OutOfMemoryError: Java heap space, increase the heap:

OOM kills on LocalNet

When Docker kills containers silently, check for OOM events:
If this returns true, you need to increase Docker’s memory allocation (see the Docker section above). You can also check system-level OOM events:

Resource limits summary

EnvironmentMin MemoryRecommended MemoryMin CPU
Sandbox only4 GB8 GB2 cores
LocalNet16 GB24 GB4 cores
cn-quickstart8 GB16 GB4 cores
Before running cn-quickstart, you must execute make setup and make build before make start. Skipping these steps causes startup failures that can look like resource problems.