×


AWS s3 lambda 500 Internal Service Error - Fix it Now ?

AWS s3 lambda 500 Internal Service Error happens when Lambda function's resource-based policy doesn't include permission for your API to invoke the function.

Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform related AWS queries.

In this context, we shall look into this Server error.


Nature of 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 fix AWS s3 lambda 500 Internal Service Error ?

Apply the steps below 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:

1. Firstly, replace arn:aws:lambda:region:account-id:function:function-name with your Lambda function's Amazon Resource Name (ARN).

2. Then, replace statement-id-guid with a unique statement ID, such as api-gateway-invoke.

3. 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 fixing AWS errors ? We are available 24*7. ]


Conclusion

This article covers methods to resolve AWS s3 lambda 500 Internal Service Error.

Basically,  this error occurs if Lambda function's resource-based policy doesn’t include permission for your API to invoke the function.

This error occurs if your Lambda function's resource-based policy doesn't include permission for your API to invoke the function.

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 these permissions.

Finally, To verify that the error is caused by missing permissions, review your API's logs.