Why does this setting of participantAttributes via the PATCH /api/v2/conversations/web/{conversationId}/participants/{participantId} endpoint consistently return a 400 Bad Request when the flow is already active? Dynamic attribute injection becomes mandatory after the initial connect event fires in my inbound message architecture. Documentation suggests a shallow merge, yet the server rejects the operation entirely. I verified the conversationId and participantId extraction using standard {{conversationId}} and {{participantId}} architect expressions. Only the attributes object exists inside the JSON body.
- I tested sending a raw
PATCHrequest through Postman using a PAT withconversation:writescope, and the endpoint succeeded immediately. - I attempted to wrap the payload in a
datawrapper and adjust theContent-Typetoapplication/json-patch+json, but the400response persists with aninvalid_request_bodyerror code.
Server logs claim the attributes field remains unexpected during an active state. Does the PATCH method require a full participant object reconstruction instead of a shallow merge? Perhaps a specific merge flag belongs in the header. My current implementation relies on this exact structure:
{
"attributes": {
"routing_priority": "high",
"callback_eligible": "true"
}
}
Values must update before routing reaches the next skill group. Since the native architect SetParticipantAttribute block operates solely pre-connection, the REST proxy call stays mandatory. Clarification regarding the correct payload shape for mid-session updates would resolve the blocking error.