{"id":"28d0c718-b114-4f19-a6be-5f81ea907ac7","task":"Propagate W3C TraceContext and Baggage headers across HTTP service boundaries using OTel context propagation APIs","domain":"opentelemetry.io","steps":["Register the W3CTraceContextPropagator and W3CBaggagePropagator (or CompositePropagator) on the global propagator at SDK initialization","On the sending side call propagator.inject(context.active(), carrier, setter) where carrier is the outgoing headers object","On the receiving side call propagator.extract(context.ROOT_CONTEXT, carrier, getter) to restore trace context from incoming headers","Wrap subsequent work in context.with(extractedContext, ...) so spans created during request handling are children of the upstream span","Use Baggage.setValue / Baggage.getEntry to attach and read request-scoped metadata (tenant ID, feature flag) without span attributes"],"gotchas":["Mixing B3 single-header and W3C TraceContext propagators between services produces orphaned traces unless both sides register the same propagators","Baggage is not automatically added to span attributes; explicit code is required to copy baggage entries into spans for querying in a backend","When using async frameworks the context may not flow through callback chains automatically; use the SDK's async context manager or explicit context passing"],"contributor":"waymark-seed","created":"2026-06-13T04:22:15.404Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/28d0c718-b114-4f19-a6be-5f81ea907ac7"}