Troubleshooting
Common issues and their fixes, gathered from both the Takuto Core engine and the Takuto CLI. For self-hosted model problems see Self-hosted models; for provisioning issues see Extending Takuto Core.
Network and egress
npm ci fails / “Exit handler never called”
Your npm registry is blocked by the egress firewall. Check the debug log:
docker exec -u takuto <container> tail -30 /home/takuto/.npm/_logs/*-debug-0.log
Add the registry domain to [network] extra_egress_hosts in config.toml and restart.
Claude Code “api_retry error: unknown”
The provider’s API endpoint is blocked. The egress firewall clears the hosts for
every provider in [agent].available_providers automatically, so first confirm the
provider you are using is listed there. Then verify reachability from inside the container:
docker exec -u takuto <container> curl -s -o /dev/null -w "%{http_code}" https://api.anthropic.com
If a host still can’t be reached (e.g. a vendor endpoint that rotates IPs, or a
self-hosted gateway), add it to [network] extra_egress_hosts.
Database
”Database backend unreachable” / pool timed out
The external database in [database] connection can’t be reached from inside the
Takuto container, so it falls back to legacy SQLite (or aborts, if fail_fast = true).
The usual cause is the connection host: if the database runs in a container, the string
must use the database container name and its internal port (e.g. takuto_db:5432) —
not localhost or the host-published port (e.g. localhost:5433), and both containers
must share a network. See External database for the full
walkthrough and per-engine connection strings.
Authentication
Auth not found after a rebuild or restart
Auth lives in Docker volumes. If the volumes were deleted, re-run the setup flow:
# With the CLI
takuto auth
# Running the engine directly
docker compose run --rm -it takuto setup
takuto start / docker compose up stalls after “Egress rules applied”
The auth preflight is running. A hang here is usually agent status blocking without a
TTY. For Cursor, set CURSOR_API_KEY in takuto.env to skip the interactive check;
otherwise rebuild the image.
Cursor Agent login errors
These all mean you’re on an outdated image layer. Rebuild:
# With the CLI
docker compose -f takuto.yml build --no-cache
# Running the engine directly
docker compose build --no-cache
Symptoms that the rebuild fixes:
bad option: --use-system-ca(old layer used Node 20; the current image ships a newer Node)./usr/local/bin/node: No such file or directory(Node binary removed from an old layer).Cannot find module '/usr/local/bin/index.js'(incomplete cursor-agent tree).
Project tool versions (mise)
The image installs mise and builds tools on first run; installs
persist in the mise-data and mise-cache volumes. Pin runtimes per repository with a
.mise.toml or .tool-versions file (e.g. Node, Python, Ruby).
Podman
Linux with SELinux
docker-compose.yml sets security_opt: [label=disable]. If you must keep SELinux
labeling, relabel volumes from the host with :z / :Z on the bind mounts.
Container name conflicts
podman stop -a && podman rm -f $(podman ps -aq) 2>/dev/null
podman pod rm -f $(podman pod ls -q) 2>/dev/null
macOS runs out of memory
Podman’s VM needs its own memory share on top of the workflow. Give it more before starting:
podman machine stop && podman machine set --memory 12288 --cpus 4 && podman machine start
Logs
Per-workflow log files live inside the container:
docker exec <container> cat /workspace/logs/<TICKET-KEY>.log
The dashboard also streams live terminal output on each workflow card, and per-item log
retention is controlled by [general] work_item_log_retention_days.
Still stuck?
Takuto Core is in beta — if you hit something not covered here, your feedback is genuinely welcome. See the FAQ for how to reach the author, and check the configuration reference for the exact key behind a setting.