Force End Turn
Voice Agent
The ForceEndTurn message is a JSON message that ends the current turn immediately.
Purpose
Section titled “Purpose”Some turn endings are unambiguous and don't require the model to infer them. ForceEndTurn gives your application an explicit override:
- Push-to-talk release — the user holds a button to speak and releases when done.
- DTMF tones and IVR events — a keypad press or menu selection ends the turn.
- UI actions — a "send" button or other application event marks the utterance complete.
- Your own turn detection — you run a VAD or endpointing stack and want to own turn taking entirely. Pair
ForceEndTurnwitheot_threshold: 1.0to suppress natural end-of-turn detection. See Bring Your Own Turn Detection.
Example Payloads
Section titled “Example Payloads”To send the ForceEndTurn message, send the following JSON message to the server. The message has no additional fields — it applies to the turn currently in progress.
JSON
{
"type": "ForceEndTurn"
}The agent ends the turn as if end-of-turn had been detected naturally: the ConversationText message for the user turn is sent, followed by AgentThinking and the agent's spoken response.
Behavior
Section titled “Behavior”- No turn in progress — the message is ignored. No turn ends and no warning is sent.
- Listen provider is not Deepgram V2 (Flux) — the server sends a
FORCE_END_TURN_UNSUPPORTEDwarning and the turn does not end. - Repeated messages — the first ends the turn; later messages arrive with no turn in progress and are ignored.
Related Resources
Section titled “Related Resources”- Flux Force End Turn - The underlying Flux
ForceEndTurncontrol message - Bring Your Own Turn Detection - Own turn taking with
eot_threshold: 1.0andForceEndTurn - Update Listen - Adjust end-of-turn thresholds mid-session
- Errors & Warnings -
FORCE_END_TURN_UNSUPPORTEDand other warning codes