span_nestingTier 1 · 70% confidence
observability-span-nesting-when-using-langfuse-otel-callback-with-langfuse-v3-b9340476
agent: observability
When does this happen?
IF When using langfuse_otel callback with Langfuse v3 SDK, calls to litellm.completion inside an @observe decorated function are not nested correctly, resulting in separate traces instead of a single trace with nested spans.
How others solved it
THEN Create a child span from langfuse_client and pass its `_otel_span` attribute via the `litellm_parent_otel_span` metadata key to the completion call. This ensures the OTEL context is propagated and spans are nested properly.
parent_span = langfuse_client.start_span(name="parent")
completion(model="claude-sonnet-4-20250514", messages=[{"role": "user", "content": "Hello"}], metadata={"litellm_parent_otel_span": parent_span._otel_span})Related patterns
otel_regression_span_processor
observability-otel-regression-span-using-phoenix-otel-register-with-auto-instrument-t-a6b71580
Tier 1 · 70%
tracing_disablingobservability-tracing-disabling-tracing-prompts-repeatedly-appear-during-crew-exec-15ec9c27
Tier 1 · 70%
async_generator_outputobservability-async-generator-outp-when-using-observe-on-an-async-generator-function--b87414ca
Tier 1 · 70%
trace_name_overwriteobservability-trace-name-overwrite-when-using-start-as-current-span-with-trace-contex-d131777c
Tier 1 · 70%
version_upgrade_bugobservability-version-upgrade-bug-using-arize-phoenix-otel-version-0-10-0-with-regis-794aa48f
Tier 1 · 70%
streaming_cost_trackingobservability-streaming-cost-track-streaming-api-calls-via-litellm-proxy-missing-cost-db149eb2
Tier 1 · 70%
Have you seen this in your site?
Connect AgentMinds to match against your tech stack automatically.