# What changed in sentry-sdk

> 235 changes in sentry-sdk 2 from its official release notes, upgrade guides and advisories: 13 breaking, 6 deprecations, 14 security, 43 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/pypi/sentry-sdk/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## sentry-sdk 2

### Breaking changes

- Stacktraces are no longer attached to check-ins. (2.69.2) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.2)
- This option is now a no-op. Automatic log collection is off by default; opt in using capture_sentry_logs on LoggingIntegration or LoguruIntegration. (2.68.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.0)
- The prompt name is no longer added to arguments. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The integration supports the MCP SDK v2 handler signature and its removal of request_ctx. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- The integration gates url.full and http.query on send_default_pii. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- ASGI query strings and client IP are gated behind send_default_pii. (2.63.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.63.0)
- Removes 0000 trace_id fallbacks. (2.63.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.63.0)
- The patch for Agent.run_stream_events() has been removed. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- Hosted MCP tool spans are no longer created. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- Invoke Agent spans no longer have tokens set. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- Only built-in sequences are serialized by iteration, avoiding side effects from custom __iter__ implementations. Custom sequence classes can be registered with add_repr_sequence_type. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- Span streaming sets code.namespace and code.function instead of code.function.name. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- Potentially sensitive data, including GraphQL documents, is gated behind send_default_pii. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)

### Security

- The scrubber now scrubs request bodies that are JSON arrays. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- The clickhouse_driver breadcrumb only sets db.result when sensitive data is opted in. (2.69.2) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.2)
- The integration gates url.full, url.path, and url.query on send_default_pii. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- The integration gates url.full, url.query, and url.fragment on send_default_pii. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- The integration gates url.full, url.query, and url.fragment on send_default_pii. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- The integration gates url.full and url.query on send_default_pii. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- The integration gates url.full, url.query, and url.fragment on send_default_pii. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- The integration gates url.full, url.path, and http.query on send_default_pii. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- The integration gates url.full, url.path, and url.query on send_default_pii. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- The integration gates url.full, url.path, and http.query on send_default_pii. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- The integration guards setting method. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- Binary data in inline_data is redacted, and multi-part message extraction is fixed. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- Base64 data URLs in image_url content blocks are redacted. (2.58.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.58.0)
- Response extraction is guarded in the google-genai integration. (2.57.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.57.0)

### Deprecations

- Deprecates ai.monitoring.record_token_usage(). (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- Deprecates the send_default_pii option. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- Deprecates transaction profiling. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- The enable_logs option is deprecated and will be removed in the next major release; logger.X works regardless, and auto-collection can be opted into through integration-level options. (2.68.1) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.1)
- ai_track() is deprecated. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- Deprecates OpenTelemetryIntegration in favor of OTLPIntegration. (2.62.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.62.0)

### New APIs and options

- Exports DataCollectionUserOptions from sentry_sdk.types for users who need to import this type. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- Inbound filters receive sentry.is_localhost across ASGI, WSGI, aiohttp, Sanic, and Tornado integrations. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- Adds the ServiceExtension class to the Boto3 integration. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- The TypeSafe integration records gen_ai.output.messages. (2.71.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.71.0)
- Adds integration support for system_one() patches. (2.71.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.71.0)
- Adds a TypeSafe integration that can be enabled in the sentry_sdk.init integrations list. (2.71.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.71.0)
- Adds fine-grained control over what data the SDK collects; when defined, it takes precedence over send_default_pii. (2.70.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.70.0)
- Adds a Mistral integration that patches Chat.complete and Chat.complete_async and records GenAI messages, system instructions, request parameters, and token usage. (2.70.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.70.0)
- The Django integration adds the http.route attribute. (2.69.1) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.1)
- aiohttp adds the http.route attribute. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Bottle adds the http.route attribute. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Falcon adds the http.route attribute. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- FastAPI adds the http.route attribute. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Flask adds the http.route attribute. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Pyramid adds the http.route attribute. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Quart adds the http.route attribute. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Starlette adds the http.route attribute. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- SpanJSON is now exported for developers to import and use. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Adds failed_request_status_codes to Django integration configuration. (2.68.1) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.1)
- Adds the capture_sentry_logs boolean option to explicitly enable automatic log collection; it defaults to False. (2.68.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.0)
- Adds the capture_sentry_logs boolean option to explicitly enable automatic log collection; it defaults to False. (2.68.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.0)
- Streaming now supports the ai_track decorator. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- before_send_span is now available as a top-level option. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The DRF integration adds a span for authentication. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- OpenAI spans now include this reasoning-level attribute. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- A top-level set_attributes API is available. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- Promoted ignore_spans to a top-level option. (2.66.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.66.0)
- Promoted trace_lifecycle to a top-level option. (2.66.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.66.0)
- Adds an aiomysql integration that can be enabled by adding AioMySQLIntegration() to the integrations list. (2.62.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.62.0)
- Adds out-of-the-box support for HTTPX2, automatically enabling the Sentry integration when the package is used. (2.62.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.62.0)
- Integrations can define control flow exceptions. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- The asyncpg integration adds cursor span support by patching the BaseCursor method. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- Adds a transport for debug logging of envelopes. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- Enables extracting gen_ai spans from a transaction and sending them as v2 envelope items; truncation is removed when this option is enabled, helping avoid dropped spans when transaction payloads exceed size limits. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- Adds async callbacks for LiteLLM. (2.58.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.58.0)
- Adds tracing instrumentation for pyreqwest. (2.58.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.58.0)
- An experimental async transport is available. (2.57.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.57.0)
- ASGI adds an option to disable suppressing chained exceptions. (2.56.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.56.0)
- Logging now has separate ignore lists for events and breadcrumbs versus Sentry logs. (2.56.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.56.0)
- Anthropic spans now include the gen_ai.response.id attribute. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- Anthropic spans now include the gen_ai.system attribute. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- MonitorConfig now has an owner field. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- OTLPIntegration now accepts a collector_url option. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)

### Performance

- Log records are no longer formatted when Sentry logs are off. (2.69.2) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.2)

### Behavior and default changes

- Adds common OpenTelemetry AWS client attributes to Boto3 instrumentation. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- Adds response, retry, and error span attributes for Boto3 instrumentation. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- Boto3 tracing now covers the complete botocore client-call lifecycle. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- Returns None when capture_checkin sends nothing. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- The TypeSafe integration records gen_ai.input.messages. (2.71.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.71.0)
- The TypeSafe integration records gen_ai.response.model. (2.71.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.71.0)
- The TypeSafe integration sets token usage attributes. (2.71.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.71.0)
- Breadcrumbs are set in the streaming trace lifecycle. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- The httpx and httpx2 integrations always capture a breadcrumb. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- MCP and LangChain add a mechanism to captured exceptions. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- SQLAlchemy span data supports more database system names. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Starlette uses the url transaction source for host routing. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- This option is now a no-op, so metrics emitted using the metrics API will be emitted regardless of its value. (2.68.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.0)
- LangChain records cached token usage attributes. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- Pydantic AI records output messages, including ThinkingPart. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- OpenAI Responses API spans now set this attribute. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- OpenAI Chat Completions API spans now set this attribute. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The OpenAI Agents integration now sets this attribute. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The batcher can trigger a global flush based on summed size estimates. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The batcher adds a hard limit on spans. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- LangChain records reasoning token usage. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- sentry-trace now takes precedence over baggage. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The span attribute now includes the query string and fragment. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- Huey consumer spans now set the messaging.destination.name attribute. (2.65.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.65.0)
- Huey producer spans now set the messaging.destination.name attribute. (2.65.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.65.0)
- arq consumer spans now set the messaging.destination.name attribute. (2.65.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.65.0)
- Dramatiq consumer spans now set the messaging.destination.name attribute. (2.65.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.65.0)
- RQ consumer spans now set the messaging.destination.name attribute. (2.65.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.65.0)
- When multiple sentry-trace headers are supplied, tracing now uses the first one. (2.65.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.65.0)
- set_user now drops user attribute values that are None. (2.65.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.65.0)
- Gen AI spans are streamed as v2 envelope items by default, avoiding transaction-size drops and truncation of AI message data. Set this to False to restore previous behavior or for self-hosted Sentry instances that may not ingest streamed spans. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- Sets user.ip_address on telemetry when it is present. (2.63.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.63.0)
- The integration uses Sentry span attribute name conventions. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- String truncation is disabled by default. Set max_value_length to 100_000 to restore the previous limit if large envelopes are dropped. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- Root gen_ai spans are automatically wrapped for openai, cohere, langgraph, and huggingface_hub. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- Transformed spans include server.address when stream_gen_ai_spans=True. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- The integration passes along the conversation ID for OpenAI responses calls. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- Filtered fields receive substitute values in span-streaming mode. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- The stdlib integration instruments response body reads for chunked HTTP responses. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- Database integration spans now include db.driver.name. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- FastAPI supports span streaming in active thread tracking. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- Langchain chat and tool spans record the agent name as gen_ai.agent.name. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- Langchain instrumentation records run_name as gen_ai.function_id on invoke-agent, tool, chat-model, and text-completion spans. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- The async gRPC server interceptor now adds isolation_scope. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- Langchain AI provider detection now extends beyond OpenAI and Anthropic. (2.57.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.57.0)
- LLM spans now use gen_ai.generate_text as their operation. (2.57.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.57.0)
- LLM spans now set gen_ai.operation.name. (2.57.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.57.0)
- LLM spans now set gen_ai.pipeline.name. (2.57.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.57.0)
- The streaming attribute is now always set for OpenAI Responses. (2.57.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.57.0)
- The streaming attribute is now always set for OpenAI Completions. (2.57.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.57.0)
- The Responses API now uses max_output_tokens. (2.57.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.57.0)
- List-based message content is now truncated in AI monitoring. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- Pydantic AI execute_tool spans now include the tool description. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- Anthropic AI monitoring spans now record finish reasons. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- Pydantic AI span instrumentation now supports ImageUrl content. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- Asynchronous Anthropic messages.stream() now emits gen_ai.chat spans. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- Synchronous Anthropic messages.stream() now emits AI Client Spans. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)

### Fixes and other changes

- Fixes span, metrics, and log client reports. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- Improves localhost detection for IPv6 addresses. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- Finishes the span for StreamingBody correctly. (2.72.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.72.0)
- Events are kept when a processor raises an exception. (2.71.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.71.0)
- User callbacks are isolated and client reports are emitted. (2.71.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.71.0)
- User info is now attached to streaming spans in the aws-lambda integration. (2.69.2) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.2)
- Avoids an infinite serialization loop in the bottle integration. (2.69.2) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.2)
- Fixes the type of disabled_integrations. (2.69.2) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.2)
- functions_to_trace now works when spans are streamed. (2.69.2) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.2)
- The integration now tolerates None candidates. (2.69.2) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.2)
- Pydantic AI no longer captures tool execution spans when validation fails. (2.69.2) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.2)
- The aiohttp integration preserves SigV4-signed propagation headers. (2.69.1) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.1)
- A failed flush no longer kills the flusher thread. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Fixes botocore SigV4 failures caused by post-sign trace propagation. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- The OpenAI Responses API integration now reads input_text parts. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Tool and prompt handlers now handle None arguments. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Quart skips quart-flask-patch and adjusts error handling for quart>=0.23. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- The OpenAI integration checks that Response.output is a list before iterating. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Stateless StreamableHTTP servers are no longer reported as stdio. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- Starlette sets the transaction name on the current scope in the sync handler. (2.69.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.69.0)
- When enable_logs=True, standard-library logging and Loguru integrations auto-collect and send logs to Sentry by default, preserving old behavior. (2.68.1) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.1)
- Anthropic, Google GenAI, LangChain, LangGraph, Hugging Face Hub, OpenAI, and OpenAI Agents gate this attribute on outputs rather than inputs. (2.68.1) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.1)
- LangChain uses this attribute when data collection is enabled. (2.68.1) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.1)
- The scope now receives the segment source when using NoOpStreamedSpan. (2.68.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.0)
- The scope now receives the segment name when using NoOpStreamedSpan. (2.68.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.0)
- The early return for NoOpStreamedSpan was removed, allowing set_transaction_name() to proceed for that span type. (2.68.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.0)
- Adds a global flush trigger based on the span number. (2.67.1) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.68.0), [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.1)
- Exceptions raised in before_breadcrumb no longer bubble up. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- Usage is no longer double-counted in multi-candidate responses. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The integration patches the correct run_single_turn_streamed reference. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The integration stops destructively wrapping tools. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The integration no longer records duplicate spans. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The AWS Lambda layer now supports Python 3.14. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The streaming set_conversation_id API now works. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- The segment source is set when it is unset. (2.67.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.67.0)
- Exceptions raised within traces_sampler and other callbacks are now handled. (2.66.1) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.66.1)
- Streaming paths skip child span creation when there is no current span across HTTP clients, task queues, databases, web frameworks, Django, and miscellaneous integrations. (2.66.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.66.0)
- Starlette AuthenticationMiddleware no longer overwrites a user set during the request. (2.65.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.65.0)
- Django async middleware process_* hooks no longer raise ValueError. (2.65.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.65.0)
- ASGI request span attributes now include url.path. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- Cursor iteration and fetch now use distinct span ops to prevent N+1 false positives. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- GraphBubbleUp exceptions are now ignored. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- The span is stored off-band rather than in forwarded metadata. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- Streaming traces no longer truncate data in the trace lifecycle. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- Streamed query spans now include db.query.text. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- URLs no longer duplicate scope["root_path"]. (2.64.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.64.0)
- Prevents sync handlers from being double-wrapped on FastAPI >= 0.137. (2.63.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.63.0)
- Uses the effective route context path for prefixed routers. (2.63.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.63.0)
- Control flow exceptions are no longer captured. (2.62.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.62.0)
- Handles baggage values containing '=' when parsing an incoming header. (2.62.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.62.0)
- Handles the string shorthand form of image_url when checking for image types with blob content. (2.62.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.62.0)
- Hooks are only used when ModelRequestContext.model exists. (2.62.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.62.0)
- Restores functools.wraps() for patched functions. (2.62.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.62.0)
- A failing child span no longer sets the transaction status. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- The Anthropic integration no longer sets gen_ai.response.model to None. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- The integration guards against a None response ID or response model. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- Fixes an AttributeError on graphql_span in resolve. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- Group and chord handling in enqueue is fixed. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- A failing child span no longer sets the transaction status. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- A TypeError during langchain.agents import is now caught. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- A failing child span no longer sets the transaction status. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- A failing child span no longer sets the transaction status. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- A memory leak in SentrySpanProcessor is fixed. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- OpenAI Agents uses name rather than description when calling start_span. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- OpenAI Agents runner patches now handle the starting_agent keyword argument. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- Yields are wrapped in try-except to ensure span cleanup. (2.61.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.61.0)
- http.server spans are now segments. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- The OpenAI integration guards against choices being None. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- A failing child span no longer sets the transaction status. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- Responses patches finish only relevant spans. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- Chat Completions patches finish only relevant spans. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- Adds overloads for the trace decorator to fix typing. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- Using proto version 2 fixes backfilled user agent and IP. (2.60.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.60.0)
- The batcher resets its lock and flusher in a child process after fork. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- Adding request source now exits early consistently. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- For openai-agents 0.14 and later, the integration resolves the agent from bindings. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- The profiler no longer nulls its buffer on teardown. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- The ASGI integration uses inspect.iscoroutinefunction on Python 3.14 and later. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- The Quart integration uses inspect.iscoroutinefunction when Quart does. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- Metrics and logs no longer attach span_id when there is no active span. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- The Starlette and FastAPI integrations use inspect.iscoroutinefunction when Starlette does. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- The context manager no longer double yields. (2.59.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.59.0)
- Anthropic .create() patches now finish only relevant spans. (2.58.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.58.0)
- WSGI request.url construction now respects HTTP_X_FORWARDED_PROTO. (2.58.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.58.0)
- Exceptions raised during Anthropic stream() calls are now captured. (2.58.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.58.0)
- LiteLLM streaming no longer exits spans twice. (2.58.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.58.0)
- A failing child span no longer sets the transaction status for Anthropic or Hugging Face Hub spans. (2.58.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.58.0)
- Cycle detection was added to exceptions_from_error. (2.57.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.57.0)
- Only types with _iterator are wrapped for streamed responses. (2.57.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.57.0)
- Patching AsyncMessageStream.close() ensures the associated span is finished. (2.56.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.56.0)
- Patching AsyncStream.close() ensures the associated span is finished. (2.56.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.56.0)
- Starlette integration now catches ImportError for Jinja2Templates. (2.56.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.56.0)
- Patching MessageStream.close() ensures the associated span is finished. (2.56.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.56.0)
- Patching Stream.close() ensures the associated span is finished. (2.56.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.56.0)
- Anthropic streaming spans now receive exception info when applicable. (2.56.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.56.0)
- LangChain wraps finish_reason in an array for the gen_ai span attribute. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- Anthropic spans are now closed on GeneratorExit. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- A deadlock in the log batcher is fixed. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- Prevents a buffer race condition during rapid profiler start/stop cycles. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- safe_serialize no longer double-serializes strings. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
- Celery now propagates headers set by the user. (2.55.0) — [release notes](https://github.com/getsentry/sentry-python/releases/tag/2.55.0)
