Skip to content
Developer docs

Troubleshooting

Start with observable evidence, narrow the fault domain, and recover without hiding the original failure.

Start with the request ID

  1. Check /api/health for process liveness and /api/ready for dependency readiness.
  2. Capture the X-Request-Id from the failing response.
  3. Search structured logs for that ID and identify the first failing boundary.
  4. Inspect the audit history before retrying a mutating operation.

Failure patterns

The API will not start

Check configuration parsing, database path permissions, migration status, and whether the configured port is already in use.

The console cannot authenticate

Verify the API origin, cookie/session settings, CORS configuration, clock skew, and that browser code is not reading server secrets.

A provider call fails

Check the selected model, provider endpoint, secret injection, timeout, outbound policy, and provider response logs. Redact credentials before sharing diagnostics.

A release is blocked

Read the validation and evaluation result, approval requirement, policy decision, and current release state. Do not bypass a gate by editing persistence directly.

The website link is broken

Check the generated route under the configured base path. Internal links must use Astro’s base URL rather than an origin-root path.

Recover safely

If user impact is ongoing, route traffic back to the last verified content hash, preserve evidence, and open an incident record. Restore the database and CAS together; restoring only one can break manifest identity and audit interpretation.

Read the full operations guide →