Troubleshooting
Start with local diagnostics:
tako doctor
For remote state:
tako servers status
tako logs --env production
tako logs --env production --tail
Use --verbose for a timestamped transcript and --ci for deterministic non-interactive output.
tako dev Will Not Start
If the daemon cannot start, Tako reports the last lines from the dev-server log. Common causes:
- The HTTPS daemon port
127.0.0.1:47831is already in use. - macOS launchd dev proxy setup needs repair or sudo approval.
- Linux redirect rules or systemd-resolved setup are missing.
- The local CA is not installed or trusted yet.
Run:
tako doctor
tako dev
On macOS, doctor checks the dev proxy, boot helper, loopback alias, launchd load state, local DNS, and TCP reachability on the loopback HTTP/HTTPS ports.
.test Hostnames Do Not Resolve
Tako manages DNS for .test and .tako.test only. External development routes are routed by the proxy but must resolve to your machine through your own DNS or tunnel setup.
If .test conflicts with an existing resolver on macOS, Tako leaves the existing resolver alone and .tako.test remains available as a fallback. On Linux, ensure the systemd-resolved route for ~test and ~tako.test points at the local DNS listener.
Vite Dev Never Becomes Ready
Direct Vite dev commands must use the tako.sh/vite plugin so the dev server can signal readiness on fd 4. Tako does not scrape Vite stdout URLs as readiness.
Add the Vite plugin and use a preset or command that runs Vite through the project install:
runtime = "bun"
preset = "vite"
Deploy Fails Before Building
Deploy performs validation before build work starts. Check for:
- Target environment missing from
[envs.<env>]. - Missing
routeorrouteson a non-development environment. - Unknown servers in
[envs.<env>].servers. - Missing or invalid server
arch/libcmetadata. Re-add the server with SSH checks enabled. - Expired app secrets, S3 credentials, or provider credentials.
- Missing
ssl.cloudflarefor wildcard Let’s Encrypt routes or Cloudflare SSL. - Missing
postgres_urlfor multi-server channel/workflow deployments. - Local storage used in a multi-server deploy environment.
Use:
tako credentials list
tako secrets list
tako servers list
Missing Runtime Entrypoint
Tako resolves main from tako.toml, then the runtime manifest field such as package.json main, then the preset. If none resolve, deploy and dev fail with guidance.
For JS frameworks, make sure your preset matches the build output. TanStack Start expects dist/server/tako-entry.mjs; Next.js expects .next/tako-entry.mjs. Those files are emitted by the corresponding Tako adapters/plugins.
Container Release Does Not Start
Container releases require Podman on the target server. tako servers add --install installs it, and server upgrade installs it when missing.
The container must:
- Listen on
HOST=0.0.0.0andPORT=3000. - Use a Tako SDK so
/statushandles the internal health probe. - Read secrets and storage bindings through SDK bootstrap, not individual env vars.
In v0, container HTTP instances do not receive fd 3, fd 4, the internal socket, or TAKO_DATA_DIR.
TLS Or Certificate Problems
Let’s Encrypt exact routes use HTTP-01 by default, so public port 80 must reach the server’s HTTP listener. If you use wildcard routes, or if exact routes should use DNS-01, set:
tako credentials set ssl.cloudflare --env production
For ssl = "cloudflare", use a Cloudflare token with Origin CA certificate edit permission. Cloudflare Origin CA certificates are intended for Cloudflare-proxied traffic; direct browser connections to the origin will not trust them.
Logs Are Empty Or Incomplete
tako logs reads app current.log and previous.log over signed HTTP management. History mode shows the last three days by default:
tako logs --env production --days 7
Use --tail for streaming and --json for JSONL:
tako logs --env production --tail
tako logs --env production --json
Remote fetch failures are command failures, not empty log results.
Backups Fail
Backups require a private S3-compatible storage resource and current storage credentials:
[envs.production]
backup = { storage = "private_backups" }
Set or rotate credentials with:
tako storages credentials private_backups --env production
tako backups status --env production
tako backups now --env production
Backup storage must not use public_base_url, and local cannot be used as a backup target.
Secret Or Credential Key Problems
Secrets, storage credentials, and provider credentials are encrypted per environment. If another machine cannot decrypt them, import the environment key:
tako secrets key import --env production
On macOS, iCloud Keychain storage requires the signed Tako.app CLI. If Keychain entitlement is unavailable, reinstall Tako with the official installer.
Server Commands Fail
Normal app operations use signed HTTP management on the server’s private Tailscale address. SSH is used for setup, repair, reload, upgrade, and uninstall flows.
If a server is unreachable:
tako servers status
tako servers reload <name>
Use tako servers add --install <host> or tako servers add admin@host to install or repair a server before adding it to config.toml.