NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #235 most downloaded on PyPI
Python client for Sentry (https://sentry.io)
Last release 6 days ago
15 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
8 years old
349 releases · first in 2018
Fix timezone bugs in GCP integration.
Fix timezone bugs in AWS Lambda integration.
timeout_warning.One column per quarter.
Breaking change: Remove the traceparent_v2 option. The option has been ignored since 0.16.3, just remove it from your code.
csrf_exempt applied.urllib3 would cause the SDK
to enter an infinite loop on networking and SSL errors.traceparent_v2 option. The option has been
ignored since 0.16.3, just remove it from your code.Fix a bug that caused Django apps to crash if the view didn't have a __name__ attribute.
__name__ attribute.Add experiment to avoid trunchating span descriptions. Initialize with init(_experiments={"smart_transaction_trimming": True}).
init(_experiments={"smart_transaction_trimming": True}).Fix AWS Lambda support for Python 3.8.
traceparent_v2. This change should have zero impact. The flag will be removed in 0.17.New (optional) integrations for richer stacktraces: pure_eval for additional variables, executing for better function names.
pure_eval for
additional variables, executing for better function names.Flask integration: Fix a bug that prevented custom tags from being attached to transactions.
Breaking change: Revamping of the tracing API.
before_send is no longer called for transactions.Fix fatal crash in Pyramid integration on 404.
Breaking change: The ASGI middleware will now raise an exception if contextvars are not available, like it is already the case for other asyncio integ…
gevent. This will fix a few instances of wrong request data being attached to events while using an asyncio-based web framework.capture_exception.Fix bugs in transport rate limit enforcement for specific data categories. The bug should not have affected anybody because we do not yet emit rate li
capture_event where it would crash if given additional kwargs.
Thanks to Tatiana Vasilevskaya!Attempt to use a monotonic clock to measure span durations in Performance/APM.
capture_event instead of configuring the scope.Fix a crash in Django Channels instrumentation when SDK is reinitialized.
Fix a crash in the Django integration when used in combination with Django Rest Framework's test utilities for request.
Show ASGI request data in Django 3.0
Fix trace continuation bugs in APM.
asyncio.CancelledError as part of AIOHTTP integration.Fix package classifiers to mark this package as supporting Python 3.8. The SDK supported 3.8 before though.
None inside request data was skipped/omitted.Fix an issue with the ASGI middleware that would cause Uvicorn to infer the wrong ASGI versions and call the wrapped application with the wrong argume
tornado.application logger.Fix a bug in APM that would cause wrong durations to be displayed on non-UTC servers.
Add new global functions for setting scope/context data.
Remove an old deprecation warning (behavior itself already changed since a long time).
Various performance improvements to event sending.
Fix a crash with ASGI (Django Channels) when the ASGI request type is neither HTTP nor Websockets.
Temporarily remove sending of SQL parameters (as part of breadcrumbs or spans for APM) to Sentry to avoid memory consumption issues.
Sentry now has a Discord server! Join the server to get involved into SDK development and ask questions.
subprocess.Popen objects.aiocontextvars from PyPI to make it work again.Fix a bug where the SDK would throw an exception on shutdown when running under eventlet.
Remove a faulty assertion (observed in environment with Django Channels and ASGI).
Fix type hints for the logging integration. Thansk Steven Dignam!
gevent with its threading monkeypatch. The fix is to avoid usage of contextvars in such environments. Thanks Ran Benita!ThreadingIntegration that led to exceptions on interpreter shutdown. Thanks Guang Tian Li!subprocess.LoggingIntegration that would send breadcrumbs timestamps in the wrong timezone.AiohttpIntegration now sets the event's transaction name.Fix a bug where a log record with non-strings as extra keys would make the SDK crash.
extra keys would make the SDK crash.celery-once was deadlocking when used in combination with the celery integration.Fix bug where the SDK would yield a deprecation warning about collections.abc vs collections.
collections.abc vs collections.Massive refactor in preparation to tracing. There are no intentional breaking changes, but there is a risk of breakage (hence the minor version bump).…
traces_sample_rate and traceparent_v2 have been added.
Do not change the defaults in production, they will bring your application
down or at least fill your Sentry project up with nonsense events.Do not use getargspec on Python 3 to evade deprecation warning.
getargspec on Python 3 to evade deprecation
warning.Revert a change in 0.9.3 that prevented passing a unicode string as DSN to init().
unicode
string as DSN to init().Include user agent header when sending events.
init().Fix a bug in the Django integration that would prevent the user from initializing the SDK at the top of settings.py.
Fix a bug in the Django integration that would prevent the user
from initializing the SDK at the top of settings.py.
This bug was introduced in 0.9.1 for all Django versions, but has been there for much longer for Django 1.6 in particular.
Fix a bug on Python 3.7 where gunicorn with gevent would cause the SDK to leak event data between requests.
before_send.__tracebackhide__. Thanks Matt Millican!py.typed file). Thanks
Ran Benita!The SDK now captures SystemExit and other BaseExceptions when coming from within a WSGI app (Flask, Django, ...)
SystemExit and other BaseExceptions when coming from
within a WSGI app (Flask, Django, ...)Fix infinite recursion bug in Celery integration.
Fix performance issues when attaching large data to events. This is not really intended to be a breaking change, but this release does include a rewri…
Fix crash when using Celery integration (TypeError when using apply_async).
TypeError when using
apply_async).Fix a bug where Ignore raised in a Celery task would be reported to Sentry.
Ignore raised in a Celery task would be reported to Sentry.Read from X-Real-IP for user IP address.
X-Real-IP for user IP address.http_proxy="". Thanks Marco Neumann!Fix a bug that would send errno in an invalid format to the server.
errno in an invalid format to the server.-O flag.extra
keys called data.Log Sentry's response body in debug mode.
in_app_exclude without
setting in_app_include.New integration for the Bottle web framework. Thanks to Stepan Henek!
Add support for Sanic versions 18 and 19.
Fix a bug that would not capture request bodies if they were empty JSON arrays, objects or strings.
max_tasks_per_child = 1)repring locals whose __repr__ simultaneously changes the
WSGI environment or other data that we're also trying to serialize at the
same time.Fix a bug where artificial frames for Django templates would not be marked as in-app and would always appear as the innermost frame. Implement a heuri
render or parse invocation.Fix bug into Tornado integration that would send broken cookies to the server.
with_locals.Read release and environment from process environment like the Raven SDK does. The keys are called SENTRY_RELEASE and SENTRY_ENVIRONMENT.
SENTRY_RELEASE and SENTRY_ENVIRONMENT.serverless integration where it would not push a new scope
for each function call (leaking tags and other things across calls).Fix crash in AIOHTTP integration when integration was set up but disabled.
flush on hubs and clients. New global flush function.Fix celery.exceptions.Retry spamming in Celery integration.
celery.exceptions.Retry spamming in Celery integration.Fix UnboundLocalError crash in Celery integration.
UnboundLocalError crash in Celery integration.Properly display chained exceptions (PEP-3134).
QuerySet when trying to capture local variables.
Also an internal hook was added to overwrite repr for local vars.Second attempt at fixing the bug that was supposed to be fixed in 0.6.8.
Second attempt at fixing the bug that was supposed to be fixed in 0.6.8.
No longer access arbitrary sequences in local vars due to possible side effects.
No longer access arbitrary sequences in local vars due to possible side effects.
Sourcecode Django templates is now displayed in stackframes like Jinja templates in Flask already were.
before_send would crash the SDK and app.extra data would crash the SDK.Un-break API of internal Auth object that we use in Sentry itself.
Auth object that we use in Sentry itself.Capture WSGI request data eagerly to save memory and avoid issues with uWSGI.
django.request logger.Your coding agent can read these notes before it upgrades. Set up the MCP server →