# Possible audio TurnDetector cancellation stall in Python Agents 1.6.4

**URL:** https://community.livekit.io/t/possible-audio-turndetector-cancellation-stall-in-python-agents-1-6-4/1597
**Category:** Getting Started
**Created:** [July 11, 2026, 1:30am UTC](https://community.livekit.io/t/possible-audio-turndetector-cancellation-stall-in-python-agents-1-6-4/1597 "2026-07-11T01:30:29Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Alexander\_Mehregan](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/alexander_mehregan/32/157_2.png) [@Alexander\_Mehregan](https://community.livekit.io/u/Alexander_Mehregan)
#### Post date: [July 11, 2026, 1:30am UTC](https://community.livekit.io/t/possible-audio-turndetector-cancellation-stall-in-python-agents-1-6-4/1597/1 "2026-07-11T01:30:29Z")

</div>

Hi LiveKit team,

We have been observing repeated end-of-turn stalls in a production Arabic/English session using:

- `livekit-agents==1.6.4`
- `inference.TurnDetector()` using the Cloud `v1` model
- Soniox `stt-rt-v5` with English/Arabic hints and diarization
- Silero VAD with 0.7s minimum silence
- endpointing min/max of 1.8s/2.7s
- `preemptive_generation=True`
- `allow_interruptions=False`

Our watchdog arms only after `user_state` transitions from `speaking` to `listening`, so VAD had already emitted end-of-speech. Despite that, six turns did not commit for 10.5s, 23.3s, 26.1s, 16.3s, 10.5s, and 86.5s. These turns emitted no EOU metric and generally resolved only when the user spoke again.

Routine model latency does not explain this: median LLM TTFT was 0.62s and p90 was 0.90s.

This appears related to **[PR #6274](https://github.com/livekit/agents/pull/6274)**, which says EOT cancellation could be triggered by inference completion and become flaky under background noise. Can you confirm whether 1.6.4 is affected and whether upgrading to 1.6.5 should address this pattern?

The documentation says an audio detector prediction timeout should commit the turn after about one second and fall back from `v1` to `v1-mini`. That did not appear to occur. Which logs or callbacks can expose:

- active detector version (`v1` vs `v1-mini`)
- prediction request/cancellation IDs
- timeout/fallback events
- the reason a turn remained uncommitted after VAD end-of-speech?

We also saw speech dropped with “current speech generation cannot be interrupted.” Since interpretation output should finish but patient speech must not be lost, is `allow_interruptions=False` with `discard_audio_if_uninterruptible=False` the intended configuration?

We can provide a sanitized audio reproduction and detailed logs through our Slack channel if needed. Would you recommend 1.6.5 with the audio detector, or `turn_detection="vad"` as the temporary mitigation? We are downgrading back to MultilingualModel for now until this is resolved.

---

<div class="post-metadata">

### Author: ![Muhammad\_Usman\_Bashir](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/muhammad_usman_bashir/32/1149_2.png) [@Muhammad\_Usman\_Bashir](https://community.livekit.io/u/Muhammad_Usman_Bashir)
#### Post date: [July 11, 2026, 8:05am UTC](https://community.livekit.io/t/possible-audio-turndetector-cancellation-stall-in-python-agents-1-6-4/1597/2 "2026-07-11T08:05:52Z")

</div>

@Alexander_Mehregan, Your understanding is correct, and the versioning is definitive. PR #6274 dropped the flaky path: EOT cancellation used to be triggerable by the inference-done event, which background noise made unreliable, and it now keys only on STT/VAD start-of-speech ([#6274](https://github.com/livekit/agents/pull/6274)). That commit is not in `1.6.4` but is contained in `1.6.5` ([released 2026-07-09](https://pypi.org/project/livekit-agents/)), so `1.6.4` is affected and `1.6.5` is the targeted fix for exactly your pattern. Upgrade there first rather than dropping to `turn_detection="vad"`, which loses the semantic model.

On the config, your intent is right: audio is only discarded when the speech is uninterruptible AND `discard_audio_if_uninterruptible=True` ([agent\_activity.py#L1193](https://github.com/livekit/agents/blob/main/livekit-agents/livekit/agents/voice/agent_activity.py#L1193)), so `allow_interruptions=False` with `discard_audio_if_uninterruptible=False` preserves the patient’s audio. The “cannot be interrupted” log is expected under that setting; the reply is skipped while the agent speaks but the transcript is still captured, so it is not the stall.

If 1.6.5 still shows uncommitted turns, that is the point to share the sanitized repro and logs, since the rest is session-specific.

---

<div class="post-metadata">

### Author: ![darryncampbell](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/darryncampbell/32/20_2.png) [@darryncampbell](https://community.livekit.io/u/darryncampbell)
#### Post date: [July 13, 2026, 8:35am UTC](https://community.livekit.io/t/possible-audio-turndetector-cancellation-stall-in-python-agents-1-6-4/1597/3 "2026-07-13T08:35:01Z")

</div>

Just so it’s publicly visible, also responded to your internal DM on Slack. As Muhammad says above, I suggest testing with `1.6.5` and we can investigate further if the issue is still present.

---

<div class="post-metadata">

### Author: ![system](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/system/32/26_2.png) [@system](https://community.livekit.io/u/system)
#### Post date: [July 28, 2026, 8:35am UTC](https://community.livekit.io/t/possible-audio-turndetector-cancellation-stall-in-python-agents-1-6-4/1597/4 "2026-07-28T08:35:05Z")

</div>

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.
