diff --git a/packages/opentelemetry-instrumentation-langchain/opentelemetry/instrumentation/langchain/callback_handler.py b/packages/opentelemetry-instrumentation-langchain/opentelemetry/instrumentation/langchain/callback_handler.py index 68fb2b460c..d1253a28e1 100644 --- a/packages/opentelemetry-instrumentation-langchain/opentelemetry/instrumentation/langchain/callback_handler.py +++ b/packages/opentelemetry-instrumentation-langchain/opentelemetry/instrumentation/langchain/callback_handler.py @@ -181,11 +181,14 @@ def _end_span(self, span: Span, run_id: UUID) -> None: child_span = self.spans[child_id].span if child_span.end_time is None: # avoid warning on ended spans child_span.end() + self.spans.pop(child_id, None) span.end() token = self.spans[run_id].token if token: context_api.detach(token) + self.spans.pop(run_id, None) + def _create_span( self, run_id: UUID,