Incident report · INC-2041
SEV-2
On Jul 24 2026 the booking API could not reach the PMS connector for 43 minutes because its internal TLS client certificate expired. Every booking, reschedule, and auto-fill offer attempted in that window failed with a 502; 3,900 requests were rejected across 61 clinics. Patients saw a generic booking error, and front desks fell back to phoning patients directly.
No data was lost or corrupted. Confirmation messages queued during the outage were re-sent within 25 minutes of resolution. Two clinics reported that patients gave up rather than retrying; we cannot measure how many did so silently, which is the honest impact statement.
certificate has expired. Root cause identified.Why did booking fail?
The API could not complete a TLS handshake with the PMS connector.
Why did the handshake fail?
The API’s client certificate had expired at 14:02.
Why did it expire?
The nightly rotation job did not renew it, and no alert fired on the miss.
Why did rotation skip it?
The job selects certificates by a common-name filter. This certificate was issued in 2024 with a legacy CN that the filter does not match.
Why did nobody notice the gap?
We alert on rotation job failure, not on certificate expiry. A skipped certificate looks identical to a successful run.
Certificate lifecycle was monitored by proxy — we watched the job, not the certificates. Any certificate the job did not select was invisible to us until it failed in production.
| Item | Owner | Due | Status |
|---|---|---|---|
| Alert on certificate expiry directly, at 21 and 7 days remaining, for every internal certificate | Ines Okonkwo | Jul 31 2026 | Done |
| Replace the CN filter with an inventory-driven rotation list | Devon Okafor | Aug 7 2026 | In progress |
| Re-issue the three remaining legacy-CN certificates | Ines Okonkwo | Aug 14 2026 | In progress |
| Add a handshake-failure runbook entry with the exact remediation commands | Priya Wendt | Aug 5 2026 | Open |
| Surface a clearer patient-facing error and a retry prompt on booking failure | Mara Chen | Aug 21 2026 | Open |