Cases3 cases
1 to 3 of 3
IL-0119ChatGPT web service pods crash-looped on failing health checks after a Cosmos DB failure, leaving too few healthy pods to serve the web layerOpenAI2025- Symptoms
From 3:30am to 7:08am PT, chatgpt.com and a small number of OpenAI APIs returned elevated error rates. The status page classed the incident as a full outage.
- Trigger
A failure of Cosmos DB in ChatGPT, at OpenAI's service provider.
- Root cause
- Component
- Contributing factor
- Remediation
- the service provider recovered the affected Cosmos DB databases at 4:25am PT
- fixed the web server's health checking logic, which ended the pod crash loop
- Action items
- Change the web systems to degrade more gracefully when they fail, including concurrency control and better load shedding
- Make the database layer more resilient to service provider outages (described as already underway)
- Lessons
The database came back at 4:25am PT, yet users saw errors until 7:08am PT: the web tier's own health checks kept removing pods after the dependency had recovered. The planned changes target the web tier's behaviour under failure, with concurrency control and load shedding, rather than the database alone.
IL-0145A power sag and chiller failure in one Australia East availability zone took down the AKS control plane's compute and its non-zone-redundant SQL Database operation queue, blocking AKS create, update and delete operations in Australia East and Australia SoutheastMicrosoft Azure2023- Symptoms
From about 10:30 UTC on 30 August 2023, customers had trouble accessing or using Azure, Microsoft 365 and Power Platform services in Australia East. The affected Azure services included Azure Kubernetes Service (AKS) along with storage, SQL Database, Cosmos DB, virtual machines and Azure Resource Manager.
- Trigger
At 08:41 UTC a lightning strike on electrical infrastructure about 18 miles away caused a utility voltage sag that shut down the cooling chillers of datacenters in one Australia East availability zone; 13 chillers failed to restart automatically and five could not be restarted, so two data halls overheated and their infrastructure was shut down.
- Root cause
- Component
- Contributing factor
- Detection
Cosmos DB impact was detected by monitoring at 10:47 UTC, first automated communications went to Azure Service Health at 10:48 UTC, the public Azure Status page was updated at 11:30 UTC, and all subscriptions in Australia East were sent portal communications at 11:36 UTC.
- Remediation
- shut down the remaining networking, compute and storage in the two affected data halls so the chilled water loop could cool down
- restarted the five chillers manually at 12:12 UTC
- restored power to all hardware by 15:10 UTC and brought infrastructure back in phases
- restored AKS operations through the recovery of the SQL Database operation queue, with no other mitigation
- Action items
- AKS: convert all operation queue SQL Database databases to be zone redundant (estimated September 2023)
- AKS: replace all cross-region SQL Database queue usage with zone-redundant Service Bus queues (estimated September 2023)
- Change the control timing logic of the Chiller Management System so chillers do not fail to restart after voltage fluctuations
- Change the emergency procedure for manual restarts of simultaneous chiller failures from an adjacent sequence to a load-based sequence per data hall
- Increase technician staffing at the datacenter as a temporary measure for manual chiller restarts
- Storage: optimise the large-scale recovery process and update troubleshooting guides (estimated December 2023)
- Azure Service Fabric: improve reliability of SQL Database tenant ring recovery (estimated December 2023)
- SQL Database: review the trigger criteria of auto-failover groups (estimated October 2023)
- SQL Database: upgrade internal tooling to enable mass migration of databases (estimated December 2023)
- Cosmos DB: optimise Service Managed Failover for single-region-write accounts (estimated November 2023)
- ARM: complete the migration of its storage layer to the zonally redundant architecture (estimated December 2023)
- Incident management: harden readiness, process and playbook for power-down scenarios (estimated October 2023)
- Lessons
A control plane spread across availability zones still fails with a zone when one of its dependencies, here the SQL Database operation queue, is not zone redundant. When a second region uses the same database, the failure crosses into that region as well. Workloads already running were not expected to be affected; what stopped was everything that needs the managed service's control plane, such as scaling and cluster changes.
IL-0193A GCP persistent disk degradation took down a Cassandra StatefulSet whose OrderedReady policy blocked recovery, and Metrictank could not reconnect to the recreated pods, causing a 23-hour Graphite query outageGrafana Labs2019- Symptoms
An alert fired because some Metrictank instances could not drain their write queue, which meant they could not write to Cassandra. Google had not yet published an incident, but a team member's Discord server, also hosted on GCP, was down, which pointed at GCP; Google confirmed an SSD persistent disk incident about 90 minutes after it began.
- Trigger
A Google Cloud incident in which SSD persistent disks performed so poorly that many I/O operations failed for an extended period.
- Root cause
- Component
- Contributing factor
- Detection
An alert that Metrictank write instances could not flush their write queue to Cassandra. Error rates alone rose too slowly to notice quickly, because most queries were served from memory.
- Remediation
- Added compute nodes hoping new nodes could attach the disks, which did not work
- Deleted and recreated the Cassandra StatefulSet with an updated pod management policy, so all pods but one started
- Raised Kafka topic retention to avoid data loss during the long downtime
- Temporarily added nodes so Metrictank restarts were not slowed by CPU starvation
- Restarted all Metrictank instances, which took more than 20 hours, so they connected to the new Cassandra IPs
- Action items
- Re-instantiate the gocql connection in Metrictank when it is detected dead, so it reconnects even when all Cassandra IPs change
- Fix the Metrictank write-queue deadlock by updating an internal data structure with atomics instead of a lock
- Lessons
An OrderedReady StatefulSet cannot recover past a single pod whose volume will not attach; when every pod is down, the ordering that protects normal start-up blocks the whole cluster. A client that learns peer addresses only from live peers needs a way to go back to the service name when all peers are replaced at once. A long-tolerated bug with a config workaround can surface at the worst time; this one turned out to have a simple fix. Writing incoming data to a Kafka write-ahead log first meant all data could still be ingested after recovery, and Kafka on non-SSD disks escaped the disk incident. With both Metrictank bugs fixed, the team expects a similar event to take less than 3 hours to recover from instead of 23.
These 3 cases involve Application database and AKS control plane. kubegap audits a Kubernetes cluster for gaps like these, read-only, from Claude Code or Codex; its checks cite public reports like the ones in this library.
By root cause1
Cloud provider outage3 cases
- Component
- Contributing factor
- Organisation
IL-0119ChatGPT web service pods crash-looped on failing health checks after a Cosmos DB failure, leaving too few healthy pods to serve the web layerOpenAI2025IL-0145A power sag and chiller failure in one Australia East availability zone took down the AKS control plane's compute and its non-zone-redundant SQL Database operation queue, blocking AKS create, update and delete operations in Australia East and Australia SoutheastMicrosoft Azure2023IL-0193A GCP persistent disk degradation took down a Cassandra StatefulSet whose OrderedReady policy blocked recovery, and Metrictank could not reconnect to the recreated pods, causing a 23-hour Graphite query outageGrafana Labs2019