systemsfailed.devfailure archive
← All incidents

Failure class

Bad deploy

A rollout, flag flip, or migration that wasn't safely staged.

11 incidents on record

Anthropic2025-08-05/44 days to final rollout

Claude requests routed to the wrong context servers

Degraded Sonnet 4 responses initially affected 0.8% of requests, reached 16% in the worst hour, and touched about 30% of active Claude Code users at least once.

Lesson

Treat model-serving equivalence as a production SLO. Run sensitive quality evaluations continuously on the real serving matrix, segment signals by model, hardware, route, and context configuration, and connect feedback spikes to recent infrastructure changes while preserving user privacy.

GitHub2025-09-15/25 min

A feature flag blocked every Copilot request

Most GitHub Copilot features were degraded for 25 minutes, from 17:55 to 18:20 UTC, as the global rate limiter returned HTTP 403 responses for every request affected by the invalid configuration.

Lesson

Treat feature flags as production deploys with a state space. Validate partial and mixed-version combinations, canary global control points, and stop on sudden authorization anomalies. GitHub added traffic-anomaly monitors and expanded rate-limit scaling tests for the missed edge case.

OpenAI2025-04-25/~4 days

The reward signal that made GPT-4o sycophantic

ChatGPT became markedly over-agreeable, sometimes validating doubts, fueling anger, reinforcing negative emotions, or encouraging impulsive actions until OpenAI restored the previous GPT-4o version.

Lesson

Treat model behavior as a launch-blocking production property: define explicit failure-mode evals, formally weigh qualitative warnings against engagement metrics, add an opt-in alpha, and keep a rehearsed rollback path. OpenAI first mitigated with a system-prompt update, then completed rollback in about 24 hours.

GitHub2024-10-11/19 h 12 min

Database Migration Cascades Into Site-Wide DNS Outage

A single-site DNS outage degraded IDE code completions for 4% of Copilot users, delayed 25% of Actions workflows by over 5 minutes, and caused a complete code search outage for roughly 4 hours.

Lesson

A quick mitigation for a localized infra failure can silently break cross-site connectivity elsewhere, so any DNS or routing fix should be validated for its effect on the broader topology before being treated as the resolution.

Google2024-05-14/~2 weeks to major mitigations

AI Overviews grounded answers in satire and trolls

Some US Search users received odd, inaccurate, or unhelpful AI Overviews, including answers grounded in satire, sarcastic forum posts, and misleading user-generated advice, even though policy-violating responses were rare overall.

Lesson

Evaluate retrieval and generation separately, measure source quality when evidence is sparse, and abstain when the query or evidence is unreliable. Google added nonsense detection, limited satire and user-generated content, restricted weak query classes, retained hard-news restrictions, and strengthened health protections.

CircleCI2021-11-08/53 min

Backwards-incompatible schema change stalls all job execution

All job executors were blocked from running customer jobs for roughly 53 minutes, with elevated queue times continuing for machine executors for over an hour longer, affecting all CircleCI customers.

Lesson

A rollback is not automatically safe when a schema or format change has already been written to storage in the new shape — verify backward AND forward read compatibility before treating rollback as the safe default.

incident.io2021-07-12/< 1 day (investigation and fix)

Database upgrade made incident IDs skip 32 numbers

Multiple customer organizations saw their incident identifiers jump by up to 32 (e.g. from #INC-20 to #INC-52), eroding trust in the numbering system, though no data was lost or misattributed.

Lesson

Never expose raw Postgres sequences as meaningful user-facing identifiers — sequences do not guarantee gap-free increments and any failover, crash, or upgrade can silently advance them by up to 32; use an explicit MAX+1 approach instead.

GitHub2014-01-08/42 min full outage + 1 h 35 min partial

Puppet bug corrupted DNS and cascaded into fileserver exhaustion

GitHub.com was fully unavailable for 42 minutes on January 8, 2014, with an additional 95 minutes of degraded access for a subset of repositories while fileservers were triaged and restored.

Lesson

Deployment systems that regenerate critical infrastructure config (like DNS zone files) must validate API responses for completeness before applying them — and must never depend on the very service they are rebuilding.