PATCH /api/v2/conversations/calls/{conversationId}/participants returns 400 Bad Request when transferring call to queue

We are building a custom agent desktop widget using the .NET Embeddable Client App SDK. The goal is to allow agents to transfer an active call to a specific queue programmatically from our UI. We have tried using the PATCH endpoint for conversation participants, but we keep getting a 400 Bad Request error. The documentation says we need to set the wrapUpCode and remove the routing object, but the response is not clear.

Here is the code we are using in our C# service:

var client = new PureCloudPlatformClientV2();
var apiInstance = new ConversationApi(client);

var body = new ParticipantRequest()
{
 Routing = new Routing()
 {
 QueueId = "our-target-queue-id-here"
 },
 WrapUpCode = null
};

try
{
 var result = apiInstance.PatchConversationCallParticipant(
 conversationId: "active-conversation-id",
 participantId: "agent-participant-id",
 body: body
 );
}
catch (ApiException ex)
{
 Console.WriteLine(ex.Message);
}

The error payload we receive looks like this:

{
 "errors": [
 {
 "code": "invalid_request",
 "message": "Invalid participant request. You cannot change routing for a call participant that is not in a queue."
 }
 ]
}

We have checked the participant status and it is active. We are not sure if we need to use a different endpoint or if the Routing object structure is wrong. We have also tried setting WrapUpCode to an empty string, but that did not help. The call remains with the agent and the transfer does not happen.

Is there a specific flag or property we are missing? We are using the latest version of the .NET SDK. Any help would be appreciated.