@@ -921,22 +921,21 @@ def _wrap_message_stream_manager_enter(f: "Any") -> "Any":
921921
922922 @wraps (f )
923923 def _sentry_patched_enter (self : "MessageStreamManager" ) -> "MessageStream" :
924- stream = f (self )
925924 if not hasattr (self , "_max_tokens" ):
926- return stream
925+ return f ( self )
927926
928927 integration = sentry_sdk .get_client ().get_integration (AnthropicIntegration )
929928
930929 if integration is None :
931- return stream
930+ return f ( self )
932931
933932 if self ._messages is None :
934- return stream
933+ return f ( self )
935934
936935 try :
937936 iter (self ._messages )
938937 except TypeError :
939- return stream
938+ return f ( self )
940939
941940 span = get_start_span_function ()(
942941 op = OP .GEN_AI_CHAT ,
@@ -959,6 +958,15 @@ def _sentry_patched_enter(self: "MessageStreamManager") -> "MessageStream":
959958 tools = self ._tools ,
960959 )
961960
961+ try :
962+ stream = f (self )
963+ except Exception as exc :
964+ exc_info = sys .exc_info ()
965+ with capture_internal_exceptions ():
966+ _capture_exception (exc )
967+ span .__exit__ (* exc_info )
968+ reraise (* exc_info )
969+
962970 stream ._span = span
963971 stream ._integration = integration
964972
@@ -1008,22 +1016,21 @@ def _wrap_async_message_stream_manager_aenter(f: "Any") -> "Any":
10081016 async def _sentry_patched_aenter (
10091017 self : "AsyncMessageStreamManager" ,
10101018 ) -> "AsyncMessageStream" :
1011- stream = await f (self )
10121019 if not hasattr (self , "_max_tokens" ):
1013- return stream
1020+ return await f ( self )
10141021
10151022 integration = sentry_sdk .get_client ().get_integration (AnthropicIntegration )
10161023
10171024 if integration is None :
1018- return stream
1025+ return await f ( self )
10191026
10201027 if self ._messages is None :
1021- return stream
1028+ return await f ( self )
10221029
10231030 try :
10241031 iter (self ._messages )
10251032 except TypeError :
1026- return stream
1033+ return await f ( self )
10271034
10281035 span = get_start_span_function ()(
10291036 op = OP .GEN_AI_CHAT ,
@@ -1046,6 +1053,15 @@ async def _sentry_patched_aenter(
10461053 tools = self ._tools ,
10471054 )
10481055
1056+ try :
1057+ stream = await f (self )
1058+ except Exception as exc :
1059+ exc_info = sys .exc_info ()
1060+ with capture_internal_exceptions ():
1061+ _capture_exception (exc )
1062+ span .__exit__ (* exc_info )
1063+ reraise (* exc_info )
1064+
10491065 stream ._span = span
10501066 stream ._integration = integration
10511067
0 commit comments