Injecting OTel Trace Context into Guest API POST /api/v2/webmessaging/guests/messages

We’re trying to trace the full lifecycle of a web message from the moment a user sends it via our custom frontend implementation of the Guest API. We’ve bypassed the standard Messenger widget to build a lightweight chat interface, but we’re struggling to propagate our OpenTelemetry trace context through the Genesys Cloud platform.

Our flow is straightforward:

  1. Frontend generates a span.
  2. Frontend calls POST /api/v2/webmessaging/guests/messages to send the text.
  3. We expect the trace to continue into the routing engine and eventually the agent desktop.

We’re injecting the traceparent header into the HTTP request, just like we do with the REST API calls for Data Actions. The request succeeds with a 200 OK, and the message appears in the conversation. However, the trace breaks immediately after the gateway. The span ends at the API boundary, and we don’t see the continuation in Jaeger.

Here’s the payload structure we’re sending:

{
 "text": "Testing trace propagation",
 "traceparent": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
}

We also tried adding it as a custom property in the metadata:

{
 "text": "Testing trace propagation",
 "metadata": {
 "traceparent": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
 }
}

Neither approach works. The platform seems to strip or ignore the context. I’ve checked the network tab, and the header is definitely being sent. Is there a specific way to pass trace context for web messaging that I’m missing? Or does the Guest API simply not support span propagation like the Data Action REST endpoints do?

We need this for end-to-end latency analysis. The current gap makes it impossible to correlate frontend timing with backend routing delays.

Any ideas on how to force the context through?