Force End Turn

End the current turn immediately.
Voice Agent

The ForceEndTurn message is a JSON message that ends the current turn immediately.

ForceEndTurn requires a Deepgram V2 (Flux) listen provider — set agent.listen.provider.version to v2 in the Settings message. With any other listen provider the server replies with a FORCE_END_TURN_UNSUPPORTED warning and the turn does not end.

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 ForceEndTurn with eot_threshold: 1.0 to suppress natural end-of-turn detection. See Bring Your Own Turn Detection.

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
1{
2 "type": "ForceEndTurn"
3}

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

  • 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_UNSUPPORTED warning and the turn does not end.
  • Repeated messages — the first ends the turn; later messages arrive with no turn in progress and are ignored.