UnreservedConcurrentExecution below its minimum value of [100]

sls deploy --stage stg, giving me the following error and im not sure what exactly the issue :
Serverless Error ---------------------------------------

An error occurred: AddDashemployeesDashcsvDashforDashcompanyDashprivateLambdaFunction - Specified ReservedConcurrentExecutions for function decreases account’s UnreservedConcurrentExecution below its minimum value of [100]. (Service: AWSLambdaInternal; Status Code: 400; Error Code: InvalidParameterValueException; Request ID: 9b3180b3-ec3e-4f8d-935c-e5202d6c0496).

if i need to guess the error says => (ConcurrentExecutionLimit - sum all reservedConcurrency) > 100
any idea ? :confused: if this related to account limit what is the limit i need to increase

Hi, can you share serverless.yml config you are using?

Either you should remove or lower reservedConcurrency of your functions or increase the concurrency account limit by contacting AWS support.

If you want to increase the limit go to: https://console.aws.amazon.com/support/cases#/create

  • Service limit increase:
    • Case classification
      • Limit type: Lambda
    • Requests
      • Limit: Concurrent Requests (Expected Duration * Expected Requests per Second)
1 Like

Thank you, i raise the limit and it did fix the issue, for future visit the calculation is as follow:
ConcurrentExecutionLimit = default 1000
lets say we have 40 function that we limit with reservedConcurrency 23 so we get 920 (80 left)
for function without reservedConcurrency limit aws will save 100 invocation free so we had 920 + 100 = 1020 so in this case we going to get an error.

1 Like

Just thought I would share a quick experience with this issue as I had this error today during a deployment. I added some new functions and reduced the reserved concurrency one one function and made that available to the new functions. I believe I received this error because the new concurrency is assigned before it is removed from the existing function.

As an example, this is my before state:
Maximum concurrency: 1000
Function A: reserved concurrency: 800

New state, deployed via Serverless framework:

Function A: 400
Function B: 200
Function C: 200

I receive the error because it tries to assign the concurrency to Function B and C before reducing Function A. It thinks the new concurrency adds up to 1200 (800 + 200 + 200) so of course it throws an error.

The work around was lower the concurrency for Function A first to 400, deploy that and then add reserved concurrency to the new functions.

Hope this helps someone having the same issue.