I have a simple AWS Lambda function for which nothing is reported to Sentry when exceptions occur. Below is my code which triggers a ZeroDivisionError. I have tried with several other errors as well, but none of them are reported to Sentry. What’s weird is that if I do
sentry_sdk.capture_message('test'), it works just fine. So Sentry is set up just fine and the the connection must be fine, as are the environment variables. Exceptions are just not caught.
import os import sentry_sdk from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration def init(): sentry_sdk.init( dsn=os.environ['SENTRY_DSN'], integrations=[AwsLambdaIntegration()], environment=os.environ['ENVIRONMENT'] )
from logging_setup import init as sentry_init sentry_init() # Configure Sentry def my_handler(event, context): from test_package.listener import handler return handler(event, context)
def handler(event, context): # Trigger ZeroDivisionError. Doesn't end up in Sentry. Neither do other exceptions. if 58 / 0 == 1: raise Exception('...')
Am I missing any limitations for the Python SDK? FWIW, I’ve had this in production for a year and I have previously received errors within Sentry. Today I upgraded my Lambda function to Python 3.8 and updated the SDK to the latest verrsion, and now nothing, although I’m not sure if it’s related.
I can see the errors in my CloudWatch logs just fine, e.g.:
[ERROR] ZeroDivisionError: division by zero Traceback (most recent call last): File "/var/task/handlers.py", line 6, in my_handler return handler(event, context) File "/var/task/test_package/listener.py", line 3, in handler if 58 / 0 == 1:
Any ideas? Thanks!