Otel context injection failing in open messaging quick replies

Trying to understand why my otel spans are breaking when sending structured messages via the open messaging api.

i have a python script using the genesys cloud sdk to post to /api/v2/conversations/messaging/participants/… with a quick reply payload. the http call works fine (200 ok) but the trace context i inject via headers is getting lost or malformed on the backend side.

here is my payload snippet:

{
 "messageType": "structured",
 "content": {
 "type": "quickReply",
 "text": "select option",
 "quickReplies": [
 { "title": "option 1", "value": "1" }
 ]
 }
}

i’m setting the traceparent header manually before the request. when i check jaeger, the span for the data action that triggered this shows as a root span instead of linking to the parent otel trace from the upstream api gateway.

is there a specific header format required for the open messaging api to preserve distributed tracing context? or is the sdk stripping it out? my timezone is asia/manila so maybe there’s a timestamp issue? no em dashes here. just hyphens. help appreciated.