Failure pattern · 8 documented incidents
Retry amplification and runaway resource consumption
Retries, loops or an expensive input multiply load until a partial failure becomes a full outage or a runaway bill.
See it happen
Watch how this failure unfolds, then switch to the same situation with the safeguard in place. Click any step to replay it.
Scroll the diagram sideways to see every system.
A brief slowdown has become a full outage.
What goes wrong:
- The database slows down for a moment.
- Every client times out and retries at the same moment.
- The retries time out too, and retry again, multiplying the load.
- A brief slowdown has become a full outage.
With the safeguard:
- The database slows down for a moment.
- Clients back off with random jitter and stop after a small retry budget.
- A circuit breaker sheds the excess before it reaches the database.
- The database recovers and traffic flows normally again.
What it is
Something slows down for a moment, and every client retries at once. The retries add load, which causes more timeouts, which cause more retries. A small hiccup turns into a full outage, or a bill nobody expected.
How it happens
- Many clients share the same timeout and retry settings
- Retries fire immediately and without a limit
- Nothing upstream sheds load when a dependency struggles
What it causes
- A brief slowdown becomes an outage across services
- Autoscaling and cloud costs spike
- Recovery takes far longer because traffic never lets up
Warning signs
- Request volume climbs while successful responses fall
- Retry counts rising together across many clients
- Queues growing faster than they can drain
How to prevent it
Bound retries, loops and expensive work. Use capped exponential backoff with jitter, retry budgets and circuit breakers, and put hard limits on iterations, cost and CPU per request.
- Clients retry with exponential backoff and random jitter, and give up after a small budget
- Circuit breakers stop calls to a struggling dependency and fail fast
- Expensive work has limits on cost, time and concurrency
Key ideas:Exponential backoff with jitterCircuit breaker
Check your system against the full launch checklistReal incidents with this pattern
Documented incidents first. Each links to its public source.
Latent race condition in DNS automation leaves DynamoDB's regional endpoint with an empty record (AWS, 2025)
A latent race condition in DynamoDB's DNS management system produced an empty DNS record for the regional endpoint that the automation could not repair, so clients could not resolve the endpoint.
Safeguard: Make control-plane automation safe against stale plans
Third-party storage outage behind Workers KV takes down many Cloudflare services (2025)
Workers KV relied on a central data store, partly backed by a third-party cloud provider; when that provider had an outage, cold reads and writes to KV failed.
Safeguard: Remove single dependencies on infrastructure you do not own
New Consul streaming feature under heavy load and a BoltDB issue cause a 73-hour outage (Roblox, 2021)
Enabling a relatively new streaming feature in Consul under unusually high read and write load caused excessive contention, compounded by a pathological performance issue in BoltDB when handling large writes.
Safeguard: Roll out new infrastructure features gradually under realistic load
Valid customer configuration change triggers a latent software bug across a CDN (Fastly, 2021)
A software deployment on May 12, 2021 introduced a bug that a specific valid customer configuration could trigger; on June 8 a customer pushed such a change.
Safeguard: Canary software changes and watch for latent bugs
Holiday traffic surge overloads a Transit Gateway and stalls autoscaling provisioning (Slack, 2021)
After the holidays, an unusual surge of traffic from clients with cold caches overloaded one of Slack's AWS Transit Gateways.
Safeguard: Load-test scale-up paths, not just steady state
Regular expression in a WAF rule exhausts CPU on every edge server (Cloudflare, 2019)
A new WAF managed rule for XSS detection contained a regular expression that caused catastrophic backtracking and exhausted CPU.
Safeguard: Deploy rules through staged rollouts
Mistyped input to a capacity-removal command takes down S3 in us-east-1 (AWS, 2017)
An engineer ran a command meant to remove a small number of servers from an S3 subsystem, but one input was entered incorrectly and more capacity was removed than intended.
Safeguard: Enforce minimum-capacity limits inside the tool
Design reference: AWS guidance on timeouts, retries and backoff with jitter
AWS describes retries as powerful but dangerous: when a dependency is struggling, too many retries can amplify load and turn a partial failure into a retry storm.
Safeguard: Use capped exponential backoff with jitter
222 security advisories and illustrative scenarios with this pattern
Software component issue could make the service unavailable
A public security advisory describes this issue. Review the linked source for the technical details and remediation guidance.
Software component issue could make the service unavailable
A public security advisory describes this issue. Review the linked source for the technical details and remediation guidance.
Software component issue could make the service unavailable
pupnp is an SDK for development of UPnP device and control point applications. Prior to 2.0.2, rawtoint in upnp/src/genlib/net/http/httpparser.c parses Content-Length with strtol and casts the resulting long to a 32-bit…
Software component issue could make the service unavailable
A flaw was found in libtirpc. An authenticated remote attacker could exploit this vulnerability by sending oversized wrapped data requests to an RPC (Remote Procedure Call) service configured with RPCSECGSS (Remote…
Security issue reported in lopdf
lopdf::Document::loadmem (and the other load entry points) parses nested PDF arrays and dictionaries with unbounded recursion.
Software component issue could make the service unavailable
A NULL pointer dereference vulnerability has been reported to affect Qsync Central. If a remote attacker gains a user account, they can then exploit the vulnerability to launch a denial-of-service (DoS) attack.
Software component issue could make the service unavailable
A NULL pointer dereference vulnerability has been reported to affect Qsync Central. If a remote attacker gains a user account, they can then exploit the vulnerability to launch a denial-of-service (DoS) attack.
Security issue reported in Software component
A remote attacker may send a specially crafted network packet that causes the
Software component issue could make the service unavailable
TLS 1.3 embeds the actual record type as the last non-zero byte of the decrypted payload, optionally followed by zero padding.
Software component issue could make the service unavailable
In Eclipse Vert.x versions [4.0.0, 4.5.34] or [5.0.0,5.0.12] or [5.1.0,5.1.9] or [5.2.0, 5.2.0], the Vert.x MySQL client (vertx-mysql-client) pre-allocates an array for column definitions based on a server-declared…
Security issue reported in Software component
In Eclipse Vert.x versions [4.0.0, 4.5.34] or [5.0.0,5.0.12] or [5.1.0,5.1.9] or [5.2.0, 5.2.0], the PostgreSQL message decoder reads the 4-byte message length field from the PostgreSQL wire protocol without any maximum…
Software component issue could make the service unavailable
undici is an HTTP client library for Node.js. In versions 8.11.0 and 8.11.1, its experimental WebSocket client, which is enabled by default when HTTP/2 is allowed, mishandles a failed WebSocket handshake over HTTP/2: the…
In the standards
CollectSEA's mapping; not an official determination by the standards bodies.