sentry-python v2.61.1 Release Notes
Release Date: 2026-06-01 // 9 days ago-
Internal Changes 🔧
Rq
- ✅ Pin
fakeredis<2.36.0in tests by @alexander-alderman-webb in #6454 - ✅ Unpin
redisandfakeredisfor tests by @alexander-alderman-webb in #6443
Other
- (aiohttp) Unfurl spans explicitly instead of using pop() by @sentrivana in #6435
- (tox) Migrate from pip to uv via tox-uv by @sentry-junior in #6390
- 📌 Pin redis<8 for rq by @sl0thentr0py in #6438
- ✅ Pin
Previous changes from v2.61.0
-
🆕 New Features ✨
Add
server.addressto transformed spans whenstream_gen_ai_spans=Trueby @alexander-alderman-webb in #6307👍 Allow integrations to define control flow exceptions by @sentrivana in #6425
0️⃣ Disable string truncation for events by default by @alexander-alderman-webb in #6290
🐛 Bug Fixes 🐛
Langchain
- Stop setting transaction status when child span fails by @alexander-alderman-webb in #6301
- Catch
TypeErroronlangchain.agentsimport by @alexander-alderman-webb in #6268
Openai Agents
- 🖐 Handle
starting_agentkeyword argument in runner patches by @ericapisani in #6428 - ✂ Remove hosted MCP tool spans by @alexander-alderman-webb in #6391
- 👉 Use
name, notdescriptioninstart_spanby @sentrivana in #6323 - Stop setting transaction status when child span fails by @alexander-alderman-webb in #6303
Pydantic AI
- Stop setting tokens on Invoke Agent spans by @alexander-alderman-webb in #6320
- Stop setting transaction status when child span fails by @alexander-alderman-webb in #6302
- Remove
Agent.run_stream_events()patch by @alexander-alderman-webb in #6281
Strawberry
- Wrap yields in try-except to ensure span cleanup by @ericapisani in #6381
- 🛠 Fix
AttributeErrorongraphql_spaninresolveby @sentrivana in #6289
Other
(anthropic) Do not set
gen_ai.response.modeltoNoneby @alexander-alderman-webb in #6312(asyncpg) Use Sentry span attribute name conventions by @ericapisani in #6306
(boto3) Guard setting method by @sentrivana in #6288
(cohere) Stop setting transaction status when child span fails by @alexander-alderman-webb in #6300
(google-genai) Guard against
Noneresponse ID and response model by @alexander-alderman-webb in #6314(huey) Fix group and chord handling in enqueue by @ericapisani in #6392
(integrations) Auto-wrap root gen_ai spans for openai, cohere, langgraph, huggingface_hub by @constantinius in #6285
(serializer) Don't call
__iter__on arbitrary sequences by @sentrivana in #6304Memory leak in SentrySpanProcessor by @volodkindv in #6271
📚 Documentation 📚
- 🚚 (celery) Remove duplicated "is" in
beat.pydocstring by @quyentonndbs in #6266
Internal Changes 🔧
Langchain
- Deduplicate by removing
node.callspec.idmatching by @alexander-alderman-webb in #6426 - ✂ Remove
WatchedSpanclass by @alexander-alderman-webb in #6407
Openai Agents
- Deduplicate by removing
node.callspec.idmatching by @alexander-alderman-webb in #6424 - 🛠 Fix asyncio loop missing for sync tests by @sl0thentr0py in #6412
Pydantic Ai
- Support
Agent.run_stream_events()returning a context manager by @alexander-alderman-webb in #6322 - ✂ Remove test without assertions by @alexander-alderman-webb in #6321
Other
- (openai) Deduplicate by removing
node.callspec.idmatching by @alexander-alderman-webb in #6427 - Respect context manager lifecycles in
fake_record_sql_queriesby @alexander-alderman-webb in #6295