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

Cases6 cases

3 to 6 of 6

  1. Symptoms

    From 17:03 UTC on January 27, 2026, a small subset of Intercom customers, fewer than 1%, saw inconsistent latency and stale data when reading from the platform. At 17:25 UTC an alarm on an excessive message backlog in a worker declared an incident automatically.

    Trigger

    An internal app deletion process, running more concurrent deletion steps per app than usual with no rate limiting, and the ETL data pipeline both put heavy load on the same database shard at the same time.

    Root cause
    Component
    Contributing factor
    Detection

    An alarm on an excessive message backlog in a worker fired at 17:25 UTC and declared an incident automatically.

    Remediation
    • Disabled ETL processing to reduce load on the affected shard
    • Scaled the app deletion workers to zero
    • Re-enabled ETL carefully once monitoring showed stable metrics
    Action items
    • Increase the capacity of shards to leave headroom for unexpected load spikes
    • Add rate limiting and resource controls to the app deletion process so it backs off when database load is high
    • Review how background work such as ETL and maintenance tasks competes with customer-facing operations for database capacity
    • Alert on replication lag earlier and link it to specific workloads
    • Communicate proactively with affected customers in incidents with a limited blast radius
    Lessons

    Because data is spread across many independent shards, the overload stayed on one shard and reached fewer than 1% of customers instead of the whole platform.

  2. Symptoms

    A reader of Repro's Aurora MySQL cluster restarted for no known reason, and right after that the writer's insert latency rose to about seven times normal and writer performance stayed badly degraded for a long time. This happened more than once, twice within two weeks by 11 November 2019. While the writer was slow, the applications that process data collected by the Repro SDK fell behind, and the team could only watch until the writer recovered.

    Trigger

    Long-running queries on the reader; the author recalls that the cause was a query sent to the reader from Redash.

    Root cause
    Component
    Contributing factor
    Remediation
    • Waited for writer performance to return, since the rollback segment release could not be sped up
    Action items
    • Add a monitor on the rollback segment, mysql.innodb.history_list_length in Datadog
    • Kill queries that run long enough to make the reader restart as soon as they are found
    • Set max_execution_time so queries are stopped after a fixed time
    Lessons

    Once the rollback segment has grown large, nothing speeds up its release across the cluster, so the way to avoid the latency is to keep transactions small and stop long-running queries before the rollback segment grows.

  3. Symptoms

    On Wednesday, February 9, 2017 at 12:30PM PT, inserts of new entries into the bookmarks table of Instapaper's MySQL database on Amazon RDS started to fail with an error. The bookmarks table, which stores the articles Instapaper users save, had grown past 2TB, and the Instapaper service was down until Thursday, February 10 at 7:30pm PT.

    Trigger

    At 12:30PM PT on February 9 the bookmarks table grew past the 2TB file size limit of the instance's filesystem.

    Root cause
    Component
    Contributing factor
    Remediation
    • Dumped the production database to a 5.5TB RAID-0 disk on an i2.8xlarge instance with Pinterest's SRE team
    • Launched a temporary production instance with limited access to archives
    • Set up an Aurora read replica of the old database as one recovery path
    • Imported the data into a new MySQL RDS instance without secondary indexes, then built the indexes
    • Had an Amazon engineer rsync the data from the ext3 filesystem to an ext4 filesystem mounted on the failed database
    • Synced the new ext4 database with the temporary production database through row-based replication
    • Promoted the new database to master and pointed the application at it
    Action items
    • Define a workflow that escalates system-wide Instapaper outages immediately to Pinterest's SRE team
    • Test MySQL backups every month instead of every three months
    • Put a process in place with Pinterest's SRE team to recover from this type of failure
    Lessons

    A filesystem limit that Instapaper did not know about and could not see made both the production database and all its backups useless, and the only way out was to restore the data onto a new filesystem. Because the hosted database could only be reached through MySQL, filesystem-level fixes such as rsync needed Amazon engineers. Even with a perfect response, rebuilding the database would have taken at least 10 hours. The lack of a disaster recovery plan for this kind of failure, and the estimate of the dump time from row counts, made the downtime and recovery longer than necessary, and the response could have drawn better on Pinterest's and AWS's people. The new escalation workflow and monthly backup tests would not have prevented this failure but would speed up the response to a future one.

  4. Symptoms

    Reports came in of more WORKER_JOB_ERROR errors, which tell Transloadit there is a communication problem between its Uploaders, the machines that receive files and orchestrate Assemblies, and its Drones, the machines that run encoding tasks. Many Assemblies became much slower because retries with exponential back-off kicked in, and a few could not be replayed.

    Trigger

    A steep increase in HLS traffic, together with more Drones online processing the same volume faster, which put more load on the central Redis nodes.

    Root cause
    Component
    Contributing factor
    Detection

    Reports of an increased number of WORKER_JOB_ERROR errors.

    Remediation
    • Re-added lost messages and relaxed heartbeat monitoring as a stopgap
    • Upgraded Redis to the latest stable version
    • Doubled the Redis cluster to six nodes and then added three more, which made it worse
    • Brought the number of read replicas down to one, which cut traffic and failure rates
    • Capped how far Drones scale up in each region
    Action items
    • Add logging and alarms for approaching saturation
    • Find ways to decentralise the traffic between the Redis nodes and the Drones and Uploaders
    • Add sharding per Uploader on top of the sharding per region
    Lessons

    To handle more traffic Transloadit had to use fewer Redis nodes, not more: each added replica multiplied the replication traffic from the single leader that takes every write, so scaling up the number of nodes was the wrong call. Bandwidth had not been among the monitored Redis metrics.

Check your cluster for this

These 6 cases involve Database replication and Database. 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