Founder runbook
Internal: every breakable thing + the fix. Pin this on launch day.
### Anthropic API outage
**Signal**: chat returns errors like "rate_limit_error" or 5xx from anthropic.com.
**Fix**: temporarily fall back to claude-sonnet-4-6 by setting `ANTHROPIC_MODEL=claude-sonnet-4-6` in env. Restart.
### Render queue stuck
**Signal**: jobs sitting at "running" >10min, no progress updates.
**Fix**: `pkill -f hyperframes` then `pkill -f chrome-headless-shell`. The in-process queue will retry from the DB row.
### Stripe webhook failing
**Signal**: subscriptions don't activate after checkout.
**Fix**: check Stripe dashboard → Developers → Webhook events. Replay failed events. Verify `STRIPE_WEBHOOK_SECRET` matches.
### Database lock (SQLite)
**Signal**: API requests hang or return "database is locked".
**Fix**: SQLite WAL is enabled but extreme write bursts can stall. Wait 30s. If persistent, check for stuck SQLite processes.
### Worker offline (when implemented)
**Signal**: user complains renders aren't running on their machine.
**Fix**: their auth token expired (>24h since last poll). Have them restart the worker; it re-authenticates.
### Launch-day on-call hours
- 8:00–12:00 — Twitter + PH comments
- 12:00–14:00 — support inbox
- 14:00–16:00 — bug triage + Loom replies
- 16:00–20:00 — second wave + onboarding interviews