v4.1.4
📦 datadog-sdkView on GitHub →
🐛 5 fixes🔧 3 symbols
Summary
This release focuses on bug fixes across profiling, LLM Observability, and the Anthropic integration, including resolving issues related to lock subclassing, asyncio race conditions, and multiprocessing pickling on Python 3.14+.
Migration Steps
- If using multiprocessing.Manager() with lock profiling on Python 3.14+, ensure your code is compatible with the new default 'forkserver' start method, as lock profiler wrappers now properly support pickle serialization.
🐛 Bug Fixes
- anthropic: Handle empty content field when tracing the beta client.
- LLM Observability: Resolves an issue in activate_distributed_headers() where distributed requests missing a LLM Observability trace ID would be incorrectly propagated twice.
- profiling: Fixes a bug where code that sub-classes our wrapped locks crashes with TypeError during profiling (e.g., neo4j's AsyncRLock).
- profiling: Resolves a race condition leading to incorrect stacks being reported for asyncio parent/child Tasks (e.g. when using asyncio.gather).
- profiling: Fixes a PicklingError when using multiprocessing.Manager() with lock profiling enabled on Python 3.14+ due to changes in the default multiprocessing start method.