From 1f7d1a119a185a65bdd1bc4dc69506af71b59e47 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Mon, 25 Aug 2025 11:56:12 +0200 Subject: [PATCH] Wrap span restoration in __exit__ in capture_internal_exceptions --- sentry_sdk/tracing.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sentry_sdk/tracing.py b/sentry_sdk/tracing.py index c9b357305a..0d1fcc45da 100644 --- a/sentry_sdk/tracing.py +++ b/sentry_sdk/tracing.py @@ -8,6 +8,7 @@ from sentry_sdk.consts import INSTRUMENTER, SPANSTATUS, SPANDATA, SPANTEMPLATE from sentry_sdk.profiler.continuous_profiler import get_profiler_id from sentry_sdk.utils import ( + capture_internal_exceptions, get_current_thread_meta, is_valid_sample_rate, logger, @@ -418,10 +419,11 @@ def __exit__(self, ty, value, tb): if value is not None and should_be_treated_as_error(ty, value): self.set_status(SPANSTATUS.INTERNAL_ERROR) - scope, old_span = self._context_manager_state - del self._context_manager_state - self.finish(scope) - scope.span = old_span + with capture_internal_exceptions(): + scope, old_span = self._context_manager_state + del self._context_manager_state + self.finish(scope) + scope.span = old_span @property def containing_transaction(self):