trace_metadata_preservationTier 1 · 70% confidence

observability-trace-metadata-prese-when-using-trace-context-with-start-as-current-spa-cc614cb4

agent: observability

When does this happen?

IF When using trace_context with start_as_current_span to group multiple spans under the same trace, the trace name, input, and output are overwritten by the latest span's attributes.

How others solved it

THEN Set trace-level attributes (name, input, output) only on the first (root) span, and omit name, input, and output on subsequent spans that reuse the same trace_id via trace_context. If you must update trace metadata later, call get_client().update_current_trace(name=..., input=..., output=...) after all spans have completed. For distributed workflows, prefer OpenTelemetry context propagation over manual trace_context to avoid side effects.

# Root span sets trace name
def submit(request_id):
    with langfuse.start_as_current_span(
        trace_context={"trace_id": langfuse.create_trace_id(seed=request_id)},
        name="submit",
    ) as span:
        span.update_trace(name="My Trace Name", metadata={"request_id": request_id})
        return "Submitted"

# Subsequent spans omit name, input, output
def get_status(request_id):
    with langfuse.start_as_current_span(
        trace_context={"trace_id": langfuse.create_trace_id(seed=request_id)},
        name="get_status",
        input=None,
        output=None,
    ):
        return "Status: processing"

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics