Stuck with AWS s3 lambda 500 Internal Service Error? We can help you.
This error occurs if Lambda function’s resource-based policy doesn’t include permission for your API to invoke the function.
As part of our AWS Support Services, we assist our customers with several AWS queries.
Today, let us see how to fix this error.
AWS s3 lambda 500 Internal Service Error
Typically, when we try to set up Amazon API Gateway to invoke an AWS Lambda function using a stage variable. API returns an “Internal server error” and a 500 status code.
When you build an API Gateway API with standard Lambda integration using the API Gateway console, the console automatically adds the required permissions.
However, when you set up a stage variable to call a Lambda function through your API, you must manually add permissions.
How to resolve AWS s3 lambda 500 Internal Service Error?
Today, let us see the steps followed by our Support Techs to resolve the issue.
Firstly, to verify that the error is caused by missing permissions, review your API’s logs.
For REST APIs and WebSocket APIs, check the execution logs for a message similar to “Invalid permissions on Lambda function.
For HTTP APIs, check the access logs for a similar message about permissions.
The integrationErrorMessage context variable ($context.integrationErrorMessage) includes the error message to review.
How to add the required permissions?
To add the lambda:InvokeFunction permission for your API, run the Lambda add-permission command from the AWS Command Line Interface (AWS CLI).
Replace the following variables in the example command:
- Firstly, replace arn:aws:lambda:region:account-id:function:function-name with your Lambda function’s Amazon Resource Name (ARN).
- Then, replace statement-id-guid with a unique statement ID, such as api-gateway-invoke.
- Then, replace arn:aws:execute-api:region:account-id:api-id/*/GET/lambdasv1 with the ARN of the API Gateway resource that invokes your function.
aws lambda add-permission --function-name arn:aws:lambda:region:account-id:function:function-name --statement-id statement-id-guid --action lambda:InvokeFunction --source-arn arn:aws:execute-api:region:account-id:api-id/*/GET/lambdasv1
[Need assistance with AWS error? We are available 24*7]
In short, This error occurs if Lambda function’s resource-based policy doesn’t include permission for your API to invoke the function. Today, we saw how our Support Techs fixed it.