2026-04-23 · partial outage · 38 min
Lingua educator surface returned 503 for ~38 minutes during a Supabase Edge Function deploy. Root cause: deploy collision with concurrent migration. Affected: ~200 educator-side requests. Fix: deploy lockfile + migration-guard pre-check. Post-mortem published 2026-04-28.
2026-02-15 · email digest delay · 6 hours
Sunday-evening parent digest emails delivered ~6 hours late due to Google Workspace SMTP quota. ~3,400 emails affected. No data loss. Fix: rate-limiting in digest fanout worker + sender pool. Post-mortem published 2026-02-19.
2025-12-04 · auth session refresh bug · 22 min
Session renewal settings drifted during a release; ~12 tutors were logged out mid-lesson over 22 min. Fix: release-time configuration parity check. Post-mortem published 2025-12-09.
2025-11-12 · pronunciation engine stale cache · 4 hours
Pronunciation lab returned cached scores from previous-day's deployment for ~4 hours after morning deploy. Affected: ~1,400 pronunciation attempts (scores were stale, not wrong). Fix: cache versioning tied to deploy hash. Post-mortem published 2025-11-15.
Format of post-mortems
Each post-mortem follows the same format: what happened, root cause, what we missed in the lead-up, what we changed in response, what's still open. Available to anyone via trust@koydo.app for the full text.
What's NOT here
Security vulnerabilities that did not result in customer-data exposure are tracked privately + remediated; not all of them get published incident reports. Our pen-test summary at /trust-center includes the public-facing summary of vulnerabilities found + fixed annually.