| Symptom | Likely cause / fix |
|---|---|
UntrustedHost in logs | Set AUTH_TRUST_HOST=true in .env. Should be the default in newer compose templates. |
| Container restarts in a loop | docker compose logs app usually shows the cause — typically a missing required env or a DB connection error. |
/setup returns 401 | Auth was saved before LLM + licence. docker compose down -v to wipe and start the wizard fresh. |
| Wizard shows "Unauthorized" on Save | Pre-2026-04-26 builds had a race condition where Next.js spawned before the engine bootstrap finished mirroring API_KEY into env. Pull :latest — fixed. |
| Chat hangs on first send | Bad LLM API key. Check logs for 401 or 429. Re-test the key from /admin. |
LICENSE_LOCKED thrown | 7-day grace period ran out without a successful licence verify. Paste a fresh key in /admin — the engine recovers without restart. |
| Platform warning on Apple Silicon | Pull a fresh image — multi-arch (amd64 + arm64) build is current. Old images run on Rosetta which is slow but functional. |
| Connectors all show as down | Expected on first boot. Open /setup step 5 (or /admin → Connectors) and paste the credentials you actually use. |
| Voice/TTS audio doesn't play | iOS Safari requires a user-gesture audio unlock. Tap the mic or send button once before expecting playback. Web Audio is suspended until then. |
| Trial email never arrives | Check spam first. Then your RESEND_API_KEY on the marketing-site Worker, and that getkerno.ai is verified on Resend (DNS records propagated). |
Sign-in fails after changing Google OAuth in /admin | NextAuth reads GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET / ALLOWED_EMAIL / AUTH_SECRET only at Next.js startup. Run docker compose restart app to pick them up. Connector tokens and LLM keys hot-reload — only these four need a restart. |
Still stuck? Email hello@getkerno.ai or reply to your trial email — both reach the founder directly.