agents icon indicating copy to clipboard operation
agents copied to clipboard

speech_handle's _wait_for_generation hangs forever if cancelled before playout

Open simllll opened this issue 2 weeks ago • 2 comments

if a speech handle gets cancelled before the playout has started, it's "on the queue", and authorization is cleared, but then the _wait_for_generation is never finished.

I'm not sure if this is the real fix, but at least it works..maybe someone of the python gurus has a better idea?

I had this issue already in the typescript version, but was wondering why there is nothing like this in the python version... and now I also stumbled upon this in the PY version.

see also https://github.com/livekit/agents-js/pull/842

Added a test suite to reproduce the issue.

disclaimer: new to agent's python sdk ;-)

simllll avatar Nov 25 '25 16:11 simllll

a related fix https://github.com/livekit/agents/pull/3169 to avoid deadlock when speech is interrupted before _authorize_generation called.

I am wondering do you see any other issues caused by _wait_for_generation from the agents?

longcw avatar Nov 26 '25 05:11 longcw

With this fix in place, I had no further issues in typescript. I haven't looked at the other PR in detail,but I'm pretty sure it's not applied in the TS version and therefore I was not affected by it.

This fix is quite easy, and I can't see any side effects so far.

What we could question: what is when a speech out is playing,and cancelled, .. while wait for generation is running. But as we cancel it anyway, I guess there is nothing wrong with it.

simllll avatar Nov 26 '25 09:11 simllll