Skip to content

Troubleshooting

Start with the boundary that failed. A green web page is not proof that the API is ready, the worker is consuming jobs or a provider action completed.

Triage commands

bash
docker compose ps
docker compose logs --tail=200 api
docker compose logs --tail=200 worker
curl -i http://localhost:34001/healthz
curl -i http://localhost:34001/readyz
curl -i http://localhost:8080/

healthz checks API process liveness. readyz performs a PostgreSQL query. If readyz is 503, inspect PostgreSQL health and DATABASE_URL. If the API is healthy but jobs remain pending, inspect Redis health, REDIS_URL, worker logs and the corresponding BackgroundJobRecord.

Common symptoms

SymptomLikely boundaryCheck
API starts but readiness failsPostgreSQLdocker compose ps, database logs, credentials and migration state
Jobs do not progressRedis or workerRedis password/URL, worker health, queue logs, job record
ENTITLEMENT_MISSINGOrganization lifecycle/limits/api/v1/me/entitlements, activation status and platform review
Account is healthy but no live resourcesMock/live boundaryaccount mode, cloud.live, provider adapter implementation and sync result
Plan cannot applyApproval, expiry or snapshot driftrun status, policy decision, approval age and current observation
Agent is offlineHeartbeat or revocationlast heartbeat, agent key status, outbound connectivity and clock
Webhook is FAILINGDestination or signatureresponse status, warning alert, endpoint timeout and HMAC verification
UI says unauthorized after a role changeSession cacherefresh session or revoke/re-authenticate; server remains authoritative

Do not paste credential payloads, bearer tokens, refresh tokens, API keys or unredacted provider responses into an issue. Include request IDs and timestamps instead.

Built for safe infrastructure operations.