Incident Library

IL-0373 Heroku · 2024-07-27databaseobservability

Heroku Postgres Essential-tier databases in the EU region ran out of memory and refused connections, twice in four days

A third-party vendor deployed a monitoring change with a memory leak to the monitoring agent on Heroku's Postgres database clusters. Available memory on 33 clusters in the EU (Dublin) region fell steadily until the databases became inaccessible, and some Essential-tier customers could not connect. The first outage, found through customer support tickets nine hours after it began, was fixed only temporarily on 28 July by allocating more resources and restarting the clusters. A second outage began on 30 July. At 16:47 UTC that day a support engineer from the vendor joined and confirmed that a monitoring agent using up all available resources caused both outages. The technology team provisioned the previous version of the vendor's software, which did not have the leak, memory was reclaimed and the clusters returned to a healthy state, and Heroku was declared out of impact at 17:56 UTC on 30 July; the resolving status update gives the second impact window as 06:04 to 16:28 UTC. The vendor provided a temporary fix and was working on a permanent one.

Severity
–
Scope
33 Heroku Postgres clusters; some Essential-tier customers could not connect to their databases
Users affected
–
Region
EU (Dublin)
Time to detect
9h 19m
Time to resolve
15h 45m

Symptoms

From 22:31 UTC on 27 July 2024, 33 Heroku Postgres clusters in the EU (Dublin) region could not serve requests and ran into memory problems, and some Essential-tier customers could not connect to their databases. Customers trying to reach an affected database received out of memory errors.

Heroku Support paged the technology team with customer support tickets at 07:50 UTC on 28 July; at that point 33 databases were inaccessible or out of memory. Adding resources and restarting the clusters brought them back by 14:16 UTC on 28 July, but the problem returned on 30 July, when Heroku Support escalated it to the technology team at 06:04 UTC.

Symptom Memory pressureService outage

Root cause

Root cause Software defect

Contributing factor Monitoring blind spot
Trigger
A third-party vendor deployed a change to a monitoring agent that runs on Heroku's Postgres database clusters.

Detection

Heroku Support paged the technology team at 07:50 UTC on 28 July based on customer support tickets. The second occurrence also reached the technology team as an escalation from Heroku Support.

Remediation

Action items

Lessons

–

Sources

Related cases

Check your cluster for this

kubegap audits a Kubernetes cluster for conditions like the ones in this case, Database, Telemetry agent among them, read-only, from Claude Code or Codex. Its checks cite public reports like this one.

For AI tools and scripts

The API needs no key. The MCP server offers search_incidents, get_incident, list_incidents, get_topic and vocab; both are explained on API and MCP.