Incident Library
  • Root cause
  • Component
  • Symptom
  • Contributing factor
  • Case

Cases7 cases

1 to 5 of 7

  1. Symptoms

    On 7 October 2025 MongoDB reported a delay in the metric ingestion pipeline of MongoDB Atlas and Cloud Manager. Metrics in Atlas dashboards arrived late or went missing, Host Down alerts did not fire, and Atlas cluster management operations such as provisioning and resizing were delayed, while customer clusters themselves stayed healthy and available.

    Trigger

    The rollout of an updated internal software version caused a temporary spike in resource demand on the internal database cluster.

    Root cause
    Component
    Contributing factor
    Remediation
    • Took corrective actions to stabilise the system and monitored their effect
    • Implemented a fix and monitored the results until the incident was resolved
    Action items
    • Shard the collections with concentrated load to spread traffic over more nodes
    • Optimise inefficient queries
    • Provision additional infrastructure capacity for higher traffic
    • Refine capacity planning to anticipate future load spikes, using metrics from this event
    • Redesign software rollouts to account for the predictable rise in resource demand during a rollout
    • Keep monitoring how the sharding and query changes resolve the hotspots
    • Expand the detection of elevated load conditions for faster anomaly detection and response
  2. Symptoms

    At 15:26 UTC on 8 May 2025, the Bitbucket Cloud website and API became slow because the primary database was overloaded. Atlassian's real-time monitoring detected the problem at once.

    Trigger

    A high-scale backfill job run by an internal Atlassian service sent a large volume of calls to certain Bitbucket API endpoints, which ran expensive queries against the primary database.

    Root cause
    Component
    Contributing factor
    Detection

    Atlassian's real-time monitoring detected the incident as soon as it started.

    Remediation
    • Stopped the high-intensity backfill job
    • Primary database failed over automatically, and Bitbucket services recovered within 15 minutes
    • Applied several measures after the failover to shed database load
    Action items
    • Route more reads to read replicas instead of the write primary database
    • Adjust rate limits for internal API endpoints that run resource-intensive database operations
    • Optimise database queries so they run more efficiently
    • Tune the retry policies of downstream services
  3. Symptoms

    The BurstBalance of an RDS instance began to fall rapidly and finally ran out, and the database's performance dropped sharply. The instance ran MySQL 5.7.44 on db.t3.medium with general purpose SSD (gp2) storage of 30GiB.

    Trigger

    A complex SELECT query began writing large amounts of data to temporary tables, which raised WriteIOPS and used up the burst credits.

    Root cause
    Component
    Contributing factor
    Action items
    • Consider tuning the query by reviewing indexes and rewriting it
    • Consider moving the storage from gp2 to gp3 or increasing its size to raise the baseline IOPS
    • Consider adjusting tmp_table_size and max_heap_table_size
    • Consider moving to a more powerful instance type
    • Consider monitoring BurstBalance with CloudWatch alerts and adding external monitoring such as Pingdom
    Lessons

    A complex query can have a large effect on I/O, so database design and queries need continuous improvement, and query performance needs regular monitoring.

  4. Symptoms

    At 13:36 BST on Friday August 11th 2023, minutes after MailPace reran its data clean-up job with more memory, notifications arrived that all database transactions were failing across multiple services. The managed Postgres database had gone offline, did not come back when restarted, and reported that it was out of space.

    Trigger

    The daily retention clean-up job, which had been failing with killed, was rerun with its memory raised from 1gb to 8gb, and its large destroy_all deletions filled the database disk.

    Root cause
    Component
    Contributing factor
    Detection

    Notifications that all database transactions were failing across multiple services arrived as soon as the outage began; the provider was automatically notified at 99% storage. MailPace's two status pages did not detect the outage.

    Remediation
    • Contacted the managed database provider's support
    • Notified users on Twitter and Mastodon
    • Prepared an offsite backup from six hours earlier on a new database instance as a fallback
    • The provider migrated the database to a larger instance
    • Removed the old data in production by hand, day by day, with an updated query
    Action items
    • Delete old data in batches of 50 records with in_batches in the clean-up job
    • Run the clean-up job four times a day instead of once
    • Stay on a much larger database instance with room to grow
    • Add cron monitoring to all cron jobs
    • Point the status pages at a /health endpoint that checks database access and returns a 500 error on failure
    • Investigate a hot-replica database for automated failover
    Lessons

    Several causes came together: a clean-up job that failed silently, a naive deletion that grew huge once data had piled up, a database plan without headroom for growth, and status pages that missed the outage, presumably because https://app.mailpace.com still answered 200 while the database was down. MailPace also advises that critical services such as email sending be set up with more than one provider.

  5. Symptoms

    On March 16, 2022 at 14:09 UTC, write operations across GitHub stopped working, including git operations, webhooks, pull requests, API requests, issues, GitHub Packages, GitHub Codespaces, GitHub Actions and GitHub Pages. Under peak-hour load, the database proxy in front of the shared mysql1 MySQL database had reached its maximum number of connections.

    Trigger

    Increased load on mysql1 during peak hours, combined with poor query performance in specific circumstances, pushed the database proxy to its maximum number of connections.

    Root cause
    Component
    Contributing factor
    Remediation
    • Failed over mysql1 to a healthy replica on March 16
    • Reset the application connections to the new primary on March 17
    • Added an index that fixed the main query performance problem
    • Performed a primary failover on March 22
    • Performed a primary failover on March 23
    • Throttled webhook traffic to reduce load
    Action items
    • Keep throttling webhook traffic at peak load times
    • Audit the load patterns of mysql1 during peak hours and make performance fixes based on the audits
    • Move traffic to other databases to reduce load and speed up failover
    • Review change management, particularly monitoring and changes during high load in production
    • Shard the databases and scale up hardware
Check your cluster for this

These 7 cases involve Database and PostgreSQL vacuum. 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