Postmortem: checkout outage, September 19
For 38 minutes (14:02–14:40 UTC) about 30% of checkout attempts failed with a price-mismatch error. A release rollback skipped our cache purge, so checkout validated carts against stale prices for 212 products. A manual purge fixed it; rollbacks now purge automatically.
timeline --utc
- Release 2026.09.19-3 rolled backdeploy
A feature flag misbehaved in the product page; the release was rolled back from the deploy console.
- Rollback completes, cache purge does not run
The purge hook only listens for
deploy.succeeded. Rollbacks emitdeploy.rolled_back. - Checkout starts rejecting cartsimpact starts
The price cache expires on its normal schedule for most products, but 212 changed products keep stale prices and fail validation.
- Alert fires, on-call paged
Checkout error rate above 5% for 3 minutes. Priya is paged.
- SEV-2 declared
Incident channel opened; status page updated at 14:15.
- Rollback identified as trigger
Errors started ten minutes after the rollback; every failing cart contained a recently repriced product.
- Pricing cache purged manuallymitigated
Using the existing runbook. Error rate drops within two minutes.
- Error rate back to baselineresolved
Monitoring continued for an hour before closing the incident.
root-cause --chain
deploy.succeededreview
What went well
- The alert fired four minutes after impact began.
- The cache-purge runbook was current and worked first time.
- Status page was updated within six minutes of the page.
What didn't
- Rollbacks take a different code path than deploys, and nobody had tested it with the purge hook.
- The checkout error message gave customers nothing to act on.
- Our dashboards don't show deploys and cache purges next to error rates.
action-items
| Action | Owner | Due | Priority | Status |
|---|---|---|---|---|
| Purge the pricing cache on every deploy state change, including rollbacks | MMarco | Sep 26 | P1 | Done |
| Run a synthetic checkout after every deploy and rollback | PPriya | Oct 3 | P1 | In progress |
| Replace the generic error with "Prices changed, please review your cart" | LLena | Oct 10 | P2 | In progress |
| Annotate deploys and cache purges on the checkout dashboard | SSam | Oct 17 | P3 | Not started |
Example from the MintPage showcase · fictional company, sample incident · any agent can publish a page like this with one publish_page call