releases.shpreview

2.48.0

$npx -y @buildinternet/releases show rel_EM6lxeipulj3PMjrMWTeg

Middleware spans are now disabled by default in Django, Starlette and FastAPI integrations. Set the middleware_spans integration-level option to capture individual spans per middleware layer. To record Django middleware spans, for example, configure as follows

  import sentry_sdk
  from sentry_sdk.integrations.django import DjangoIntegration

  sentry_sdk.init(
      dsn="<your-dsn>",
      integrations=[
          DjangoIntegration(middleware_spans=True),
      ],
  )

New Features ✨

  • feat(ai): add single message truncation by @shellmayr in #5079

  • feat(django): Add span around Task.enqueue by @sentrivana in #5209

  • feat(starlette): Set transaction name when middleware spans are disabled by @alexander-alderman-webb in #5223

  • feat: Add "K_REVISION" to environment variable release check (exposed by cloud run) by @rpradal in #5222

Langgraph

  • feat(langgraph): Response model attribute on invocation spans by @alexander-alderman-webb in #5212
  • feat(langgraph): Usage attributes on invocation spans by @alexander-alderman-webb in #5211

OTLP

  • feat(otlp): Optionally capture exceptions from otel's Span.record_exception api by @sl0thentr0py in #5235
  • feat(otlp): Implement new Propagator.inject for OTLPIntegration by @sl0thentr0py in #5221

Bug Fixes 🐛

Integrations

  • fix(django): Set active thread ID when middleware spans are disabled by @alexander-alderman-webb in #5220

  • fix(integrations): openai-agents fixing the input messages structure which was wrapped too much in some cases by @constantinius in #5203

  • fix(integrations): openai-agents fix multi-patching of get_model function by @constantinius in #5195

  • fix(integrations): add values for pydantic-ai and openai-agents to _INTEGRATION_DEACTIVATES to prohibit double span creation by @constantinius in #5196

  • fix(logs): Set span_id instead of sentry.trace.parent_span_id attribute by @sentrivana in #5241

  • fix(logs, metrics): Gate metrics, logs user attributes behind send_default_pii by @sentrivana in #5240

  • fix(pydantic-ai): Stop capturing internal exceptions by @alexander-alderman-webb in #5237

  • fix(ray): Actor class decorator with arguments by @alexander-alderman-webb in #5230

  • fix: Don't log internal exception for tornado user auth by @sl0thentr0py in #5208

  • fix: Fix changelog config by @sentrivana in #5192

Internal Changes 🔧

  • chore(django): Disable middleware spans by default by @alexander-alderman-webb in #5219

  • chore(starlette): Disable middleware spans by default by @alexander-alderman-webb in #5224

  • ci: Unpin Python version for LiteLLM tests by @alexander-alderman-webb in #5238

  • ci: 🤖 Update test matrix with new releases (12/15) by @github-actions in #5229

  • chore: Ignore type annotation migration in blame by @alexander-alderman-webb in #5234

  • ref: Clean up get_active_propagation_context by @sl0thentr0py in #5217

  • ref: Cleanup outgoing propagation_context logic by @sl0thentr0py in #5215

  • ci: Pin Python version to at least 3.10 for LiteLLM by @alexander-alderman-webb in #5202

  • test: Remove skipped test by @sentrivana in #5197

  • Convert all remaining type annotations into the modern format by @zsol in #5239

  • Convert sentry_sdk type annotations into the modern format by @zsol in #5206

Fetched March 31, 2026