Skip to content

Commit 61a4cd0

Browse files
ref(anthropic): Skip accumulation logic for unexpected types in streamed response
1 parent 4cf7e5a commit 61a4cd0

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

sentry_sdk/integrations/anthropic.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,16 @@
3838
Omit = None
3939

4040
from anthropic.resources import AsyncMessages, Messages
41+
from anthropic.types import RawMessageStreamEvent
42+
43+
from anthropic.types import (
44+
RawMessageStartEvent,
45+
RawMessageDeltaEvent,
46+
RawMessageStopEvent,
47+
RawContentBlockStartEvent,
48+
RawContentBlockDeltaEvent,
49+
RawContentBlockStopEvent,
50+
)
4151

4252
if TYPE_CHECKING:
4353
from anthropic.types import MessageStreamEvent, TextBlockParam
@@ -406,6 +416,20 @@ def new_iterator() -> "Iterator[MessageStreamEvent]":
406416
content_blocks: "list[str]" = []
407417

408418
for event in old_iterator:
419+
if not isinstance(
420+
event,
421+
(
422+
RawMessageStartEvent,
423+
RawMessageDeltaEvent,
424+
RawMessageStopEvent,
425+
RawContentBlockStartEvent,
426+
RawContentBlockDeltaEvent,
427+
RawContentBlockStopEvent,
428+
),
429+
):
430+
yield event
431+
continue
432+
409433
(
410434
model,
411435
usage,
@@ -444,6 +468,20 @@ async def new_iterator_async() -> "AsyncIterator[MessageStreamEvent]":
444468
content_blocks: "list[str]" = []
445469

446470
async for event in old_iterator:
471+
if not isinstance(
472+
event,
473+
(
474+
RawMessageStartEvent,
475+
RawMessageDeltaEvent,
476+
RawMessageStopEvent,
477+
RawContentBlockStartEvent,
478+
RawContentBlockDeltaEvent,
479+
RawContentBlockStopEvent,
480+
),
481+
):
482+
yield event
483+
continue
484+
447485
(
448486
model,
449487
usage,

0 commit comments

Comments
 (0)