Skip to content

Lambda is throttled at the account limit

2 min read · main part only; folded sections are optional

After this you can answer: Why can a capped SQS worker still be throttled by the account's Lambda quota?

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.

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.

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 --> G

Ranked for rising throttles while shared concurrency is full.

  1. Other functions consume the Region’s available shared concurrency.
  2. A function reservation is too small for its combined triggers, or zero disables execution.
  3. A burst reaches a scaling-rate limit before total concurrency is full; read the throttle reason.

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.

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.

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 →.

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/