Lambda is throttled at the account limit
After this you can answer: Why can a capped SQS worker still be throttled by the account's Lambda quota?
Symptom
Section titled “Symptom”Troubleshooting scenario: Lambda Throttles rises, messages wait, and direct callers may see
TooManyRequestsException. Historical context: docs/40-aws-job-pipeline.md records this
account’s concurrency quota as 10 on 2026-10-15 and a refused reservation. That is not a
general AWS default or a current quota reading.
Read the error first
Section titled “Read the error first”Lambda refused an invocation for lack of concurrency: simultaneous executions. Under Reach /
Allowed / Password, this is capacity; the request reached Lambda, and a password or IAM allow
cannot add capacity. An IAM AccessDenied with missing allow or explicit deny is a different
failure. Check whether the limit is account-wide or function-specific.
Decide
Section titled “Decide”flowchart TB A["Lambda throttles"] --> B{"Function reservation exhausted?"} B -->|"yes"| C["Compare reservation with all its triggers"] B -->|"no"| D{"Regional shared quota exhausted?"} D -->|"yes"| E["Check other functions and quota"] D -->|"no"| F["Inspect scaling-rate or other throttle reason"] C --> G["Align capacity, consumers and downstream limits"] E --> GLikely causes
Section titled “Likely causes”Ranked for rising throttles while shared concurrency is full.
- Other functions consume the Region’s available shared concurrency.
- A function reservation is too small for its combined triggers, or zero disables execution.
- A burst reaches a scaling-rate limit before total concurrency is full; read the throttle reason.
How to check
Section titled “How to check”Lambda → Account settings: current Regional quota. CloudWatch: compare account concurrency with each function’s ConcurrentExecutions and Throttles. Check Configuration → Concurrency and each SQS trigger’s maximum concurrency; correlate queue age and receive failures.
Use the stack’s Region, us-east-1; these read limits and trigger settings.
export AWS_PROFILE=ticketliteaws lambda get-account-settings --region us-east-1 --query '{Limit:AccountLimit.ConcurrentExecutions,Unreserved:AccountLimit.UnreservedConcurrentExecutions}'aws lambda get-function-concurrency --function-name minitickets-dev-worker --region us-east-1aws lambda list-event-source-mappings --function-name minitickets-dev-worker --region us-east-1Search PutFunctionConcurrency, DeleteFunctionConcurrency and UpdateEventSourceMapping
for configuration changes. These cannot show simultaneous usage; use CloudWatch metrics.
Ordinary Event history does not contain every invocation.
Coordinate quota and allocations before increasing consumers. Current mappings cap email at 5 and tickets at 2 concurrent batches; these reserve no capacity. The committed config sets no worker reservation. After any approved quota increase, review SES/DynamoDB limits too.
Prevent
Section titled “Prevent”Monitor throttles, shared concurrency and queue age. Keep mapping caps within available capacity; repeated receives during throttling can move healthy messages toward the DLQ.
infra/src/jobs/queue-trigger.ts → createQueueTrigger;
Inspect the email mapping →.
Say it in 30 seconds
Section titled “Say it in 30 seconds”Advanced: Three concurrency settings, three jobs
The Regional account quota limits the pool. Reserved concurrency allocates and caps a
function’s share; a mapping’s maximum concurrency caps that queue’s use without reserving
capacity. Provisioned concurrency initializes environments and costs money; it does not
replace the account quota.
The historical quota of ten came from a read-only account-settings check in
docs/40-aws-job-pipeline.md, not a
witnessed production throttling incident. No current account query was performed for this page.
AWS documents account concurrency metrics
and reservation versus provisioned concurrency.
Do not generalize an old account-specific reservation refusal into AWS’s current universal
minimum; read the present quota and service response.
infra/src/jobs/worker-lambda.ts → createWorkerLambda;
infra/src/tickets/lambda.ts → createTicketLambda.
Read this book online: https://book.theversehub.in/