3131
3232from ddtrace import patch
3333from ddtrace import __version__ as ddtrace_version
34- from ddtrace .propagation .http import HTTPPropagator , _DatadogMultiHeader
34+ from ddtrace .propagation .http import HTTPPropagator
3535from ddtrace .trace import Context , Span , tracer
3636
3737from datadog_lambda .config import config
@@ -548,6 +548,12 @@ def extract_context_from_step_functions(event, lambda_context):
548548
549549
550550def _extract_context_from_durable_checkpoint (operation ):
551+ # Checkpoint data is written by the dd-trace-py in Datadog style
552+ # (x-datadog-* headers). Extraction goes through the standard
553+ # propagator.extract path, which honors DD_TRACE_PROPAGATION_STYLE_EXTRACT.
554+ # The default extract list (datadog, tracecontext, baggage) already
555+ # includes datadog. Customers who override the extract list MUST keep
556+ # datadog in it.
551557 if not isinstance (operation , dict ):
552558 return None
553559
@@ -565,9 +571,7 @@ def _extract_context_from_durable_checkpoint(operation):
565571 if not isinstance (result , dict ):
566572 return None
567573
568- # Checkpoints are written by dd-trace-py as x-datadog-* headers, so extract
569- # directly and bypass DD_TRACE_PROPAGATION_STYLE_EXTRACT on purpose.
570- return _DatadogMultiHeader ._extract (result )
574+ return propagator .extract (result )
571575
572576
573577def extract_context_from_durable_execution (event ):
0 commit comments