JS SDK: Updating participant attributes on active voice legs via /api/v2/conversations/voice

Trying to push custom attributes to a live voice conversation leg using the JS SDK. The docs show PATCH /api/v2/conversations/{conversationId}/participants/{participantId} works for chat, but voice legs seem to ignore the attributes block in the request body.

const body = {
 attributes: {
 "cust_ref": "12345"
 }
};

await api.conversationsApi.patchConversationParticipant(
 convId,
 legId,
 body
);

Response is 204 No Content. No error. But checking the conversation details endpoint immediately after shows the attributes are still empty. Is there a different endpoint for voice, or does the SDK need a specific flag to persist these on the media server? Checking the raw network traffic shows the payload is sent correctly, so it’s not a serialization issue.