Skip to content

OpenCodeHub Incident Postmortem Template

Date of incident: YYYY-MM-DD Date of postmortem: YYYY-MM-DD Duration: X hours Y minutes Severity: P0 / P1 / P2 / P3 Prepared by: @username Reviewers: @username, @username


Brief (2-3 sentence) description of what happened, who was affected, and the impact.

Example: On 2026-04-21, the CI/CD pipeline failed for 3 hours, blocking all merges to main. ~50 PRs were queued and 12 deployments were delayed. No data loss occurred.


MetricValue
DurationX hours Y minutes
Users affectedN (X% of active users)
Deployments blockedN
Data lossYes / No
Revenue impact$X / None

TimeEvent
HH:MMAlert fired — first symptoms noticed
HH:MMOn-call paged
HH:MMRoot cause identified
HH:MMMitigation applied
HH:MMService restored
HH:MMPostmortem created

Explain the technical root cause in plain language. What actually broke, not just symptoms.

Example: A recent migration added a NOT NULL constraint to workflow_secrets.encrypted_value without a default, but existing rows had NULL values. On deploy, the constraint check failed, preventing the migration from running, leaving the app in a half-upgraded state.


  • Factor 1
  • Factor 2
  • Factor 3

  • Monitoring alerted quickly (within X minutes)
  • Runbook was followed correctly
  • Communication was timely and clear
  • Mitigation was effective while investigation continued

  • More comprehensive monitoring for [specific symptom]
  • Runbook missing steps for [scenario]
  • Communication could be faster
  • Testing didn’t catch this scenario

ActionOwnerDue DatePriority
Add migration rollback guardrail@userYYYY-MM-DDP1
Add monitoring for [metric]@userYYYY-MM-DDP2
Update runbook section@userYYYY-MM-DDP2
Add test coverage for [scenario]@userYYYY-MM-DDP2
Add alerting for [condition]@userYYYY-MM-DDP2

What did we learn as a team from this incident?


Link any related past incidents for context.


Status: Open / Closed Next review: YYYY-MM-DD (30-day check-in)