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
-
Disable string truncation for events by default by @alexander-alderman-webb in #6290
Following a previous significant increase of the string truncation limit, we've now completely removed the limit by default.
In case you have large strings in your events, you should now be able to see them.In rare cases, if you have really long strings (or a lot of them), you might see envelopes being dropped because of their size.
If that happens, you can set themax_value_lengthinitoption to the previous value of100_000:sentry_sdk.init( ..., max_value_length=100_000, )
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 #6304Previously, we'd attempt to serialize any
Sequenceby walking through it by calling its__iter__function.
We've now changed the serializer to only serialize built-in sequences (like lists, tuples, and sets) to avoid
triggering side-effects from custom__iter__implementations.This might mean some objects might be serialized differently. If you want to continue serializing a specific
custom sequence class the old way, you can register it viasentry_sdk.serializer.add_repr_sequence_type(see
here). -
Memory 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