Analytics API 400 on Data Action trace context filter

Problem

I’m querying Data Action execution metrics via /api/v2/analytics/details/query in us-east-1 using OTel Python SDK 1.24.0. The endpoint consistently drops records when the OTel trace context exceeds 64 bytes. I’m trying to maintain accurate span propagation across Data Actions for Jaeger correlation, but the validation layer is intercepting the full context injection payload.

Code

query = {"interval": "2024-05-01/2024-05-02", "view": "dataActionExecution", "filter": {"type": "expression", "expression": "traceContext = '00-1234567890abcdef1234567890abcdef-1234567890abcdef-01'"}}

Error

Gateway logs confirm the request reaches the endpoint successfully before the validation layer rejects it, returning a 400 with:

{"code":"invalid_filter","message":"Context injection payload exceeds schema limit"}

Truncating the trace ID breaks Jaeger correlation, which makes the truncated IDs completely useless for distributed tracing.

Question

What’s the recommended approach for handling context injection payloads that exceed the 64-byte schema limit without breaking trace continuity? I want to ensure proper W3C trace context propagation through the analytics query. Should I be adjusting the context injection pattern for Data Actions, or is there a backend configuration in Jaeger/Zipkin that can accommodate larger payloads? I’m eager to learn the best practice here to keep my distributed tracing pipeline intact.

The Analytics API documentation explicitly caps trace context headers at 64 bytes for the details endpoint to prevent query payload bloat. Your request is failing because the OTel baggage field is expanding the filter object beyond that hard limit. The system rejects anything over the byte count immediately. You have to strip the extra metadata from the trace string before pushing it to the endpoint. Keep only the trace ID and span ID in the value. This reduces the size enough to pass the schema validation without losing the link to the interaction. Don’t try to force the full baggage through, it just causes the 400 error every time.

{
 "groupBy": [],
 "interval": "PT1H",
 "filter": {
 "type": "and",
 "clauses": [
 {
 "type": "match",
 "field": "traceContext",
 "value": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
 }
 ]
 },
 "select": ["id"]
}