From 3d61930512bb9bfce55b8221fa234ba5cddf7737 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Fri, 20 Mar 2026 09:38:58 +0100 Subject: [PATCH 1/2] fix(anthropic): Only finish relevant spans in .create() patches --- sentry_sdk/integrations/anthropic.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/sentry_sdk/integrations/anthropic.py b/sentry_sdk/integrations/anthropic.py index 7900870940..02f175c993 100644 --- a/sentry_sdk/integrations/anthropic.py +++ b/sentry_sdk/integrations/anthropic.py @@ -633,6 +633,7 @@ def _sentry_patched_create_sync(f: "Any", *args: "Any", **kwargs: "Any") -> "Any exc_info = sys.exc_info() with capture_internal_exceptions(): _capture_exception(exc) + span.__exit__(None, None, None) reraise(*exc_info) if isinstance(result, Stream): @@ -720,6 +721,7 @@ async def _sentry_patched_create_async( exc_info = sys.exc_info() with capture_internal_exceptions(): _capture_exception(exc) + span.__exit__(None, None, None) reraise(*exc_info) if isinstance(result, AsyncStream): @@ -778,13 +780,7 @@ def _sentry_wrapped_create_sync(*args: "Any", **kwargs: "Any") -> "Any": integration = sentry_sdk.get_client().get_integration(AnthropicIntegration) kwargs["integration"] = integration - try: - return _sentry_patched_create_sync(f, *args, **kwargs) - finally: - span = sentry_sdk.get_current_span() - if span is not None and span.status == SPANSTATUS.INTERNAL_ERROR: - with capture_internal_exceptions(): - span.__exit__(None, None, None) + return _sentry_patched_create_sync(f, *args, **kwargs) return _sentry_wrapped_create_sync From dc4056af4b588c7ec792d468cdd96d0e17fb41ae Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Fri, 20 Mar 2026 09:39:51 +0100 Subject: [PATCH 2/2] . --- sentry_sdk/integrations/anthropic.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/sentry_sdk/integrations/anthropic.py b/sentry_sdk/integrations/anthropic.py index 02f175c993..9aa3825037 100644 --- a/sentry_sdk/integrations/anthropic.py +++ b/sentry_sdk/integrations/anthropic.py @@ -14,7 +14,7 @@ get_start_span_function, transform_anthropic_content_part, ) -from sentry_sdk.consts import OP, SPANDATA, SPANSTATUS +from sentry_sdk.consts import OP, SPANDATA from sentry_sdk.integrations import _check_minimum_version, DidNotEnable, Integration from sentry_sdk.scope import should_send_default_pii from sentry_sdk.tracing_utils import set_span_errored @@ -874,13 +874,7 @@ async def _sentry_wrapped_create_async(*args: "Any", **kwargs: "Any") -> "Any": integration = sentry_sdk.get_client().get_integration(AnthropicIntegration) kwargs["integration"] = integration - try: - return await _sentry_patched_create_async(f, *args, **kwargs) - finally: - span = sentry_sdk.get_current_span() - if span is not None and span.status == SPANSTATUS.INTERNAL_ERROR: - with capture_internal_exceptions(): - span.__exit__(None, None, None) + return await _sentry_patched_create_async(f, *args, **kwargs) return _sentry_wrapped_create_async