AWS Error TooManyRequestsException: Lambda Rate Exceeded (throttled)
Lambda throttled the invoke because the function's reserved concurrency or the account's regional concurrency limit (default 1,000) is used up. Raise reserved concurrency or the quota, and retry with backoff.
Identify: does your log match?
An error occurred (TooManyRequestsException) when calling the Invoke operation (reached max retries: 2): Rate Exceeded.
{
"Reason": "ReservedFunctionConcurrentInvocationLimitExceeded",
"Type": "User",
"message": "Rate Exceeded."
}- High
Reserved concurrency set too low
A function with reserved concurrency 10 throttles the 11th concurrent invoke (Reason ReservedFunctionConcurrentInvocationLimitExceeded).
- Medium
Account concurrency exhausted
All functions in the region share the account limit. One noisy function can starve others (Reason ConcurrentInvocationLimitExceeded).
- Low
Burst scaling limit
Each function can add at most 1,000 concurrent executions every 10 seconds; sudden spikes beyond that throttle.
Fix
Inspect and raise concurrency
aws lambda invoke --function-name image-resize out.json # throttled
aws lambda get-function-concurrency --function-name image-resize aws lambda get-account-settings --query 'AccountLimit.ConcurrentExecutions' aws lambda put-function-concurrency --function-name image-resize \ --reserved-concurrent-executions 200
Shows whether a per-function reservation or the account limit is the ceiling. Request a quota increase in Service Quotas if the account limit is too low.
Verify: reproduce it on purpose
$ aws lambda put-function-concurrency --function-name my-fn --reserved-concurrent-executions 0 && aws lambda invoke --function-name my-fn /tmp/out.jsonRun it against a dev environment to trigger TooManyRequestsException on purpose and test your error handler.
Prevent
- Put SQS in front of bursty Lambda workloads.
- Alarm on the Throttles CloudWatch metric.
- Set SQS event source maximum concurrency below reserved concurrency.
FAQ
What is the default Lambda concurrency limit?
1,000 concurrent executions per Region per account, shared by all functions. New accounts may start lower.
Do async invocations fail on throttle?
No. Lambda retries throttled async events for up to 6 hours, then sends them to a DLQ or on-failure destination if configured.
Why is reserved concurrency 0 throttling everything?
Setting reserved concurrency to 0 disables the function. Use delete-function-concurrency to remove the reservation.
Related errors
Last verified 2026-10-17 · Source: botocore service models (errors per operation) · Official docs ↗ · ~5,400 searches/mo