conductor/docs/TROUBLESHOOTING.md
Victor Wiebe ade2b10033
Some checks failed
Release production image / production-image (push) Has been cancelled
Add production packaging and operations
2026-08-07 16:48:40 -04:00

1.8 KiB

Troubleshooting

Container exits immediately

Inspect logs. Production intentionally refuses to start when CONDUCTOR_SECRET_KEY is not a valid 32-byte base64/hex value or CONDUCTOR_SESSION_KEY is shorter than 32 bytes.

Container is unhealthy

docker compose --env-file .env -f compose.production.yml ps
docker compose --env-file .env -f compose.production.yml logs --tail=200 conductor
curl -v http://127.0.0.1:8080/api/health

Confirm /data is writable by UID/GID 10001. Restore tooling resets database ownership to 10001:10001 and mode 0600.

Stored credential no longer works after restore

The restored database and CONDUCTOR_SECRET_KEY likely do not match. Restore the complete archive, including its .env/.secrets. Credential encryption cannot be bypassed or recovered without the original key.

The reverse proxy must send all non-API paths to Conductor rather than serving static files independently. Test the container directly at /apps/<app>/<page> and use the Caddy/NGINX examples in docs/INSTALL.md.

REST request is blocked

Read the safe error code and docs/PROXY_SECURITY.md. Private/internal destinations are denied unless their exact origin is configured in CONDUCTOR_PROXY_INTERNAL_ORIGINS. Do not add broad exceptions.

Browser shows old controls after upgrade

Confirm the running image tag/digest, then perform a hard browser refresh. The production index.html is sent with no-cache; hashed assets may be cached safely.

Backup refuses to run

The application container must be running and the environment file must exist because it contains recovery keys. Check Compose project selection and paths. SkeletonWorks commands require the exact --fqdn used during setup.