Release incident types: public reports, risk grades and tests

The playbook publishes 58 release incident types in 10 groups, backed by 163 accepted public reports.

An incident type is published only when at least two organisations have a dated public report of it, one within the last 5 years.

58 of 84 incident types published · 163 public reports

Incident types by group

Payments and billing

Checkout blocked for segmentLikelihood: low (2 public reports in 5 years)Impact: high (2 of 2 reports: money)2
Double charge after deployLikelihood: not published (1 public report in 5 years)Impact: high (2 of 2 reports: money)2
Subscription renewal skippedLikelihood: low (2 public reports in 5 years)Impact: high (2 of 2 reports: money)2
Tax calculation regressionLikelihood: low (2 public reports in 5 years)Impact: high (2 of 2 reports: money and compliance)2

Data and migrations

Encoding or timezone shiftLikelihood: not published (1 public report in 5 years)Impact: high (2 of 2 reports: data)2
Irreversible migration fails midwayLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 4 reports: availability)4
Long-running migration locks tableLikelihood: low (2 public reports in 5 years)Impact: medium (3 of 3 reports: availability)3
Missing index after migrationLikelihood: medium (3 public reports in 5 years)Impact: medium (4 of 5 reports: availability)5
ORM upgrade changes query semanticsLikelihood: low (2 public reports in 5 years)Impact: high (3 of 3 reports: data)3
Schema drift between servicesLikelihood: medium (4 public reports in 5 years)Impact: medium (2 of 4 reports: availability)4
Soft-delete flag ignoredLikelihood: low (2 public reports in 5 years)Impact: high (1 of 2 reports: data)2

Authentication and access

All sessions invalidatedLikelihood: medium (3 public reports in 5 years)Impact: medium (3 of 3 reports: availability)3
API key rotation breaks integrationsLikelihood: not published (1 public report in 5 years)Impact: medium (2 of 2 reports: availability)2
CORS policy blocks frontendLikelihood: medium (3 public reports in 5 years)Impact: medium (3 of 3 reports: availability)3
Password reset link brokenLikelihood: low (2 public reports in 5 years)Impact: medium (3 of 3 reports: availability)3
Permission escalation via role changeLikelihood: medium (3 public reports in 5 years)Impact: high (4 of 4 reports: data)4
SSO login brokenLikelihood: medium (5 public reports in 5 years)Impact: medium (5 of 5 reports: availability)5

Performance and capacity

Background job queue backlogLikelihood: medium (3 public reports in 5 years)Impact: low (2 of 3 reports: degraded)3
Cache invalidation stormLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)2
Cold start latency regressionLikelihood: low (2 public reports in 5 years)Impact: low (2 of 2 reports: degraded)2
Connection pool exhaustedLikelihood: medium (3 public reports in 5 years)Impact: medium (3 of 4 reports: availability)5
Memory leak in new releaseLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)3
Thundering herd on restartLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)2

Configuration and feature flags

Config change without restart semanticsLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)2
Environment mismatch: production points to stagingLikelihood: low (2 public reports in 5 years)Impact: unrated (fewer than 2 reports state impact)2
Flag default flips on missing configLikelihood: low (2 public reports in 5 years)Impact: low (2 of 2 reports: degraded)2
Flag enabled for wrong segmentLikelihood: low (2 public reports in 5 years)Impact: medium (1 of 2 reports: availability)3
Rate limit misconfiguredLikelihood: medium (4 public reports in 5 years)Impact: medium (4 of 4 reports: availability)4

Mobile release

API version dropped while old app liveLikelihood: not published (1 public report in 5 years)Impact: medium (2 of 2 reports: availability)2
App store rollback not possibleLikelihood: medium (5 public reports in 5 years)Impact: medium (2 of 5 reports: availability)5
Crash on older OS versionLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)2
Deep link broken after routing changeLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)2
In-app purchase receipt validation failsLikelihood: low (2 public reports in 5 years)Impact: high (2 of 2 reports: money)2
Push notification token resetLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)2

Third-party integrations

Certificate expiredLikelihood: medium (4 public reports in 5 years)Impact: medium (4 of 4 reports: availability)4
Dependency removed from registryLikelihood: not published (1 public report in 5 years)Impact: medium (3 of 3 reports: availability)3
Email or SMS provider template brokenLikelihood: not published (1 public report in 5 years)Impact: medium (1 of 2 reports: availability)2
OAuth callback URL not whitelistedLikelihood: low (2 public reports in 5 years)Impact: medium (3 of 3 reports: availability)3
Provider API change breaks contractLikelihood: medium (4 public reports in 5 years)Impact: medium (2 of 4 reports: availability)4
SDK upgrade changes behaviourLikelihood: medium (3 public reports in 5 years)Impact: medium (2 of 3 reports: availability)3
Third-party rate limit hitLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)2

Frontend web

Analytics event schema brokenLikelihood: low (2 public reports in 5 years)Impact: high (2 of 2 reports: data)2
Asset cache serves old bundleLikelihood: medium (3 public reports in 5 years)Impact: medium (2 of 3 reports: availability)3
Critical path broken in one browserLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)2
CSP blocks required scriptLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)2
Form submission silently failsLikelihood: not published (1 public report in 5 years)Impact: high (2 of 2 reports: data)2
Localisation strings missingLikelihood: low (2 public reports in 5 years)Impact: low (2 of 2 reports: degraded)2

Infrastructure and deploy

Autoscaling policy misconfiguredLikelihood: medium (4 public reports in 5 years)Impact: medium (5 of 5 reports: availability)5
Container image base changeLikelihood: low (2 public reports in 5 years)Impact: medium (3 of 3 reports: availability)3
Disk full from new log volumeLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 3 reports: availability)3
DNS change propagation outageLikelihood: medium (3 public reports in 5 years)Impact: medium (3 of 3 reports: availability)3
IAM policy change blocks serviceLikelihood: medium (3 public reports in 5 years)Impact: medium (3 of 3 reports: availability)3
Rolling deploy mixed versionsLikelihood: not published (1 public report in 5 years)Impact: medium (1 of 2 reports: availability)2

Observability and rollback

Alerts silent after metric renameLikelihood: low (2 public reports in 5 years)Impact: unrated (fewer than 2 reports state impact)2
Error budget burned by retry stormLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)2
Partial rollback leaves inconsistent stateLikelihood: low (2 public reports in 5 years)Impact: low (2 of 3 reports: degraded)3
Release marker missing in monitoringLikelihood: not published (1 public report in 5 years)Impact: medium (2 of 2 reports: availability)3
Rollback fails due to forward-only changeLikelihood: low (2 public reports in 5 years)Impact: medium (2 of 2 reports: availability)4

Risk grid

Risk grid: count of incident types per likelihood and impact cell, from data/risk.json
Likelihood \ ImpactImpact: highImpact: mediumImpact: low
Likelihood: high000
Likelihood: medium1151
Likelihood: low7194
Impact unrated or likelihood not graded11
Table equivalent: incidents per cell
IncidentLikelihoodImpact
Checkout blocked for segmentlowhigh
Double charge after deploynot-publishedhigh
Subscription renewal skippedlowhigh
Tax calculation regressionlowhigh
Encoding or timezone shiftnot-publishedhigh
Irreversible migration fails midwaylowmedium
Long-running migration locks tablelowmedium
Missing index after migrationmediummedium
ORM upgrade changes query semanticslowhigh
Schema drift between servicesmediummedium
Soft-delete flag ignoredlowhigh
All sessions invalidatedmediummedium
API key rotation breaks integrationsnot-publishedmedium
CORS policy blocks frontendmediummedium
Password reset link brokenlowmedium
Permission escalation via role changemediumhigh
SSO login brokenmediummedium
Background job queue backlogmediumlow
Cache invalidation stormlowmedium
Cold start latency regressionlowlow
Connection pool exhaustedmediummedium
Memory leak in new releaselowmedium
Thundering herd on restartlowmedium
Config change without restart semanticslowmedium
Environment mismatch: production points to staginglowunrated
Flag default flips on missing configlowlow
Flag enabled for wrong segmentlowmedium
Rate limit misconfiguredmediummedium
API version dropped while old app livenot-publishedmedium
App store rollback not possiblemediummedium
Crash on older OS versionlowmedium
Deep link broken after routing changelowmedium
In-app purchase receipt validation failslowhigh
Push notification token resetlowmedium
Certificate expiredmediummedium
Dependency removed from registrynot-publishedmedium
Email or SMS provider template brokennot-publishedmedium
OAuth callback URL not whitelistedlowmedium
Provider API change breaks contractmediummedium
SDK upgrade changes behaviourmediummedium
Third-party rate limit hitlowmedium
Analytics event schema brokenlowhigh
Asset cache serves old bundlemediummedium
Critical path broken in one browserlowmedium
CSP blocks required scriptlowmedium
Form submission silently failsnot-publishedhigh
Localisation strings missinglowlow
Autoscaling policy misconfiguredmediummedium
Container image base changelowmedium
Disk full from new log volumelowmedium
DNS change propagation outagemediummedium
IAM policy change blocks servicemediummedium
Rolling deploy mixed versionsnot-publishedmedium
Alerts silent after metric renamelowunrated
Error budget burned by retry stormlowmedium
Partial rollback leaves inconsistent statelowlow
Release marker missing in monitoringnot-publishedmedium
Rollback fails due to forward-only changelowmedium

Data status

Page typePublishedWithheld
Incident pages58withheld 26
Group pages10withheld 0
Checklist pages58withheld 26

Withheld routes and the reason for each

Method

Each incident page follows the same 13 sections: definition, symptoms, root causes, public examples, test classes, risk, two checklists, catalogue entries, a fact found only on that page, related incidents and questions. Likelihood counts public reports from the last 5 years; impact follows the impact class each report states.

Methodology · Risk model

Questions

What are the types of production incidents?

The playbook groups release incident types into payments and billing, data and migrations, authentication and access, performance and capacity, configuration and feature flags, mobile release, third-party integrations, frontend web, infrastructure and deploy and observability and rollback. 58 of 84 types are published.

What bugs cause production incidents after a release?

Root causes on published pages are introduced at these stages: code (33), release-process (27), config (23), third-party (16), infra (8), migration (7), build (3). The count is incident types naming the stage.

Which pipeline stages introduce release incidents most often?

The code stage is named in 33 of 58 published incident types, more than any other stage.

How many incident types and public reports does the playbook document?

58 incident types are published, backed by 163 accepted public reports. 26 incident routes are withheld.

How are the likelihood and impact labels assigned?

Likelihood counts accepted public reports from distinct organisations in the last 5 years: 6 or more is high, 3 to 5 medium, 2 low. Impact follows the majority impact class the reports state: data, money or compliance is high, availability medium, degraded low.

Why is an incident type missing from the playbook?

An incident type is withheld when fewer than two organisations have an accepted public report of it, when no report is from the last 5 years, or when its page content fails validation. /methodology/not-published/ lists each withheld route with its reason.