From 89639f0a95ae5c0a963f39b6e6a4afacf9557923 Mon Sep 17 00:00:00 2001 From: Rodrigo Basoalto Date: Mon, 14 Oct 2024 15:34:40 -0300 Subject: [PATCH] fix(langchain): handle case when parent span wasn't traced It's possible for the parent span to not have been traced (or have been GCd) so a KeyError would be raised when trying to fetch the span for the parent run_id. Now we defensively `.get()` the parent span instead of subscripting it. --- sentry_sdk/integrations/langchain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/langchain.py b/sentry_sdk/integrations/langchain.py index 11cf82c000..431fc46bec 100644 --- a/sentry_sdk/integrations/langchain.py +++ b/sentry_sdk/integrations/langchain.py @@ -138,7 +138,7 @@ def _create_span(self, run_id, parent_id, **kwargs): watched_span = None # type: Optional[WatchedSpan] if parent_id: - parent_span = self.span_map[parent_id] # type: Optional[WatchedSpan] + parent_span = self.span_map.get(parent_id) # type: Optional[WatchedSpan] if parent_span: watched_span = WatchedSpan(parent_span.span.start_child(**kwargs)) parent_span.children.append(watched_span)