Running into a weird issue with updating participant attributes on a live voice call.
We have a Python service handling the tracing context via OpenTelemetry. When a specific event fires, we need to drop a custom attribute (trace_id) onto the participant object so it shows up in the recording metadata later.
I’m hitting PATCH /api/v2/conversations/voice/{conversation_id} with this payload:
{
"participants": [
{
"id": "participant-uuid-here",
"attributes": {
"trace_id": "0af7219e6e4d..."
}
}
]
}
The call returns a 200 OK. The response body confirms the attribute is set. But when I immediately GET the conversation details, the attributes field on that participant is empty.
If I wait about 10-15 seconds and GET again, the attribute appears. This lag is breaking our real-time correlation logic in the tracing backend. We need the attribute to be available immediately for downstream processors.
Is there a specific header or query param to force synchronous persistence? Or am I missing a step in the API contract for live interactions?