Skip to content

Commit fd5ee62

Browse files
defensive checks
1 parent de5305b commit fd5ee62

1 file changed

Lines changed: 22 additions & 12 deletions

File tree

sentry_sdk/integrations/anthropic.py

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -143,12 +143,15 @@ def _collect_ai_data(
143143
model = event.message.model or model
144144

145145
incoming_usage = event.message.usage
146-
usage.input_tokens = incoming_usage.input_tokens
147146
usage.output_tokens = incoming_usage.output_tokens
148-
usage.cache_write_input_tokens = (
149-
incoming_usage.cache_creation_input_tokens
147+
usage.input_tokens = incoming_usage.input_tokens
148+
149+
usage.cache_write_input_tokens = getattr(
150+
incoming_usage, "cache_creation_input_tokens", None
151+
)
152+
usage.cache_read_input_tokens = getattr(
153+
incoming_usage, "cache_read_input_tokens", None
150154
)
151-
usage.cache_read_input_tokens = incoming_usage.cache_read_input_tokens
152155

153156
return (
154157
model,
@@ -161,14 +164,21 @@ def _collect_ai_data(
161164
usage.output_tokens = event.usage.output_tokens
162165

163166
# Update other usage fields if they exist in the event
164-
if event.usage.input_tokens is not None:
165-
usage.input_tokens = event.usage.input_tokens
166-
if event.usage.cache_creation_input_tokens is not None:
167-
usage.cache_write_input_tokens = (
168-
event.usage.cache_creation_input_tokens
169-
)
170-
if event.usage.cache_read_input_tokens is not None:
171-
usage.cache_read_input_tokens = event.usage.cache_read_input_tokens
167+
input_tokens = getattr(event.usage, "input_tokens", None)
168+
if input_tokens is not None:
169+
usage.input_tokens = input_tokens
170+
171+
cache_creation_input_tokens = getattr(
172+
event.usage, "cache_creation_input_tokens", None
173+
)
174+
if cache_creation_input_tokens is not None:
175+
usage.cache_write_input_tokens = cache_creation_input_tokens
176+
177+
cache_read_input_tokens = getattr(
178+
event.usage, "cache_read_input_tokens", None
179+
)
180+
if cache_read_input_tokens is not None:
181+
usage.cache_read_input_tokens = cache_read_input_tokens
172182
# TODO: Record event.usage.server_tool_use
173183

174184
return (

0 commit comments

Comments
 (0)