Postmortem ยท Sample: an illustrative incident, not a real event

Exports hung for 47 minutes on a confined Chromium

Reviewed

SEV3Incident INC-0420 (sample)Authors: export maintainers

Image exports from CI runners that picked up a snap-packaged Chromium waited until the 60-second protocol timeout, then failed, for 47 minutes. 312 export jobs failed. A preference order that tried snap Chromium last, and a clearer error, fixed it.

Impact

MeasureValueSource
Duration47 minutesCI job timestamps (sample)
Export jobs failed312CI job log (sample)
Users affectedTeams exporting on Ubuntu runnersSupport tickets (sample)

Timeline (UTC)

TimeEvent
09:12Runner image updated; /snap/bin/chromium is now the first browser found.
09:20First export job fails with a protocol timeout.
09:41On-call notices the failure rate and starts investigating.
09:52Snap confinement identified: the browser can't read the hidden .open-design/ folder.
09:59Mitigated by setting OPEN_DESIGN_BROWSER_PATH on the runners.

Root cause

  1. Browser discovery returned the first executable it found.
  2. Snap's confinement blocks hidden directories under $HOME and gives the browser a private /tmp.
  3. The page never loaded, so export waited for the full protocol timeout instead of failing fast.

Contributing factors

What went well

What went badly

Action items

ActionOwnerPriorityDue
Try snap Chromium last in discoveryExportP1Done
Name the browser path in every export errorExportP1Done
Alert on export failure rate in CIPlatformP22 weeks

Sources

This is a sample written to show the format. A real postmortem lists its incident notes, chat timeline, dashboards and the commits that caused and fixed the issue. The snap-confinement behaviour itself is real and is documented in packages/core/src/export/browserDiscovery.ts.