How a Lambda bill goes from $0 to five figures overnight
Every developer who has used AWS Lambda for more than a year has a version of this story, or knows someone who does. Here's the pattern behind the ones that actually made the news.
The recursive loop
The most common cause by far: a Lambda function writes to the same S3 bucket (or SNS topic, or SQS queue) that triggers it. The write re-triggers the function. The function writes again. What starts as a small bug in event-source wiring becomes thousands of invocations per second within minutes. Teams have reported bills in the ten-thousand-dollar range accumulating in under an hour from exactly this shape of bug — and in at least one widely-discussed case, a recursion bug reportedly ran up $75,000 in 48 hours before anyone noticed. AWS shipped automatic recursive-loop detection for Lambda-to-S3 chains in late 2024, which helps — but it only covers that one specific pairing, chains of roughly 16 hops or more, and it doesn't apply to every runtime or every combination of triggering services.
The retry storm
A function that retries on failure, combined with a downstream dependency that is slow rather than fully down, can multiply invocations without ever technically "looping." A webhook handler that times out before completing, for example, can cause the caller (Telegram, Stripe, GitHub — anything with its own retry policy) to keep resending the same event, each attempt spinning up a new invocation that also times out.
The traffic spike nobody was watching
Not every expensive incident is a bug. Sometimes it's just success, or the wrong kind of attention: a link goes viral, or a bot starts hammering an endpoint that has no rate limiting in front of it. One widely-shared account describes a static site's owner waking up to a $104,000 bill after exactly this kind of spike — no bug in the code at all, just unmanaged demand hitting metered infrastructure.
The common thread
In every one of these stories, the underlying AWS service worked exactly as designed. Lambda scaled to meet demand — that's the entire selling point of serverless. The cost wasn't a malfunction; it was the absence of a ceiling. None of these teams had a dollar figure anywhere in their infrastructure that said "stop here."
That's the specific gap a budget-and-kill-switch tool is meant to fill: not better observability into what happened, but a hard stop on what's allowed to happen next.