Troubleshooting
Start with the smallest truth source: health, status, config, then worker preflight. Do not jump to live dispatch while basic checks are failing. If topology or terminology is unclear, start with the current runtime snapshot before debugging a specific symptom.API will not start
Check thatENOCH_CONFIG points to readable JSON, required callback/token fields are set, control_api_bearer_token is set, and configured paths are valid for the service user.
Dashboard returns unauthorized
Use the configuredcontrol_api_bearer_token as a bearer token. Do not confuse it with completion_callback_token or worker_wake_gate_bearer_token. The HTML shell is served at /dashboard; dashboard data routes require token-bearing requests.
Dispatch is blocked
Read status first:Worker preflight fails
Check the worker URL, token, firewall, and worker service logs. Then run the preflight endpoint withstrict:false to separate reachability from stricter readiness requirements.
Worker gate never completes
Possible causes include active child processes, strict CPU/GPU thresholds, unavailable or noisy GPU telemetry, wrong workload profile, or stale-process reaper markers that are too narrow. Inspect processes and telemetry before lowering thresholds.Paper drafting fails
Check that paper/evidence records exist, evidence sync paths are reachable when enabled,paper_writer_provider is valid, provider API keys are available for synthetic.new, and fallback behavior is understood.