POST /api/v2/recordings/recordings/{recordingId}/state returns 409 for active calls

Trying to programmatically pause a recording mid-call using the Recording API. The docs say I can toggle the state, but the endpoint keeps rejecting me.

Here’s the setup:

  1. Call starts, recording kicks in automatically via Architect.
  2. I grab the recordingId from the conversation:update webhook.
  3. I fire off a POST request to /api/v2/recordings/recordings/{recordingId}/state.

Payload:

{
 "state": "paused"
}

Headers include standard Bearer auth. I’ve verified the token has the recording:read and recording:write scopes.

The response is always a 409 Conflict:

{
 "errorCode": "recordings_conflict",
 "message": "Recording is currently active and cannot be modified in this state."
}

I’ve checked the recording:write scope docs again. It seems like this endpoint is meant for post-call edits, not real-time control. Is there a different endpoint for real-time pause/resume, or am I missing a specific flag in the initial recording configuration?

Tried using the JavaScript SDK recordingsApi.updateRecordingState(recordingId, body) too. Same 409 error. Feels like a permissions gap or maybe I’m hitting the wrong resource type entirely.