Lambda Invoke API returns 429 Too Many Requests during batch processing for invoice automation

We’re hitting 429 throttling errors when invoking Lambda functions via the Invoke API during our nightly batch processing. Our ERP system triggers about 500 Lambda invocations in parallel to process order updates, but we consistently get throttled after ~100 requests.

lambda_client.invoke(
    FunctionName='order-processor',
    InvocationType='RequestResponse',
    Payload=json.dumps(order_data)
)
# Error: An error occurred (TooManyRequestsException)

We’ve set reserved concurrency to 200 for the function, but the API throttling happens before we even hit Lambda concurrency limits. Our automation delays are causing missed SLAs. Is there a separate API rate limit we’re missing?

Yes, there’s a Lambda Invoke API throttle limit that’s separate from function concurrency. By default it’s around 10 requests per second per account per region for synchronous invocations. You’re likely hitting this before reaching your function’s concurrency limit. Consider switching to asynchronous invocation or using SQS to queue the requests.

Have you looked into Step Functions for orchestrating your batch? It can handle the throttling and retries automatically, and you won’t hit the Invoke API limits since Step Functions has its own integration with Lambda that bypasses the public API rate limits.

Check your account’s Lambda concurrency quotas in Service Quotas console. Reserved concurrency of 200 doesn’t help if your account-level concurrent execution quota is lower. Also, RequestResponse invocations are synchronous and will queue if you exceed available concurrency, but the API itself has rate limits. You might want to batch your invocations or use Event invocation type instead.