cold-soccer-35030
12/15/2025, 7:17 AMWARNING livekit.agents - skipping user input, speech scheduling is paused
Tell me all the places where this can happentall-airline-16756
12/15/2025, 7:17 AMtall-airline-16756
12/15/2025, 7:18 AMsession.interrupt() plus session.input.set_audio_enabled(False) during async work fits this case.
• Internal agent state: _scheduling_paused = True in AgentActivity
◦ AgentActivity has an internal flag that prevents scheduling new speech. When that flag is set, incoming input is ignored and the warning can be logged.
◦ This flag can be toggled during state transitions, error recovery, or interruption handling.
• False-interruption recovery window
◦ During false-interruption handling (agent paused while determining whether an interruption was real), speech scheduling can remain paused for the false-interruption timeout; input during that period can trigger the warning.
◦ Controlled by the false interruption timer/timeout.
• Misconfigured/custom input handler
◦ Custom text_input_cb or handlers that call session.interrupt() and disable audio without re-enabling it (e.g., missing set_audio_enabled(True) in a finally) will leave scheduling paused and cause the warning on subsequent input.
How to check and avoid it
• Search your code for set_audio_enabled(False), session.interrupt(), and places that toggle input.
• Ensure any pause is followed by set_audio_enabled(True) (use try/finally around async work).
• Inspect agent state where _scheduling_paused may be set or left true.
• Check false-interruption settings if the warning appears briefly during turn transitions.
If you want, tell me where you see the warning (logs, timeframe, or relevant code snippets) and I’ll point to the most likely cause and a concrete fix.
Sources: Text and transcriptions | LiveKit docs | Agents (Python) | livekit/livekit_composite | DeepWiki | Turn detection and interruptions | LiveKit Docsloud-park-66193
12/18/2025, 11:08 AMtall-airline-16756
12/18/2025, 11:08 AMsession.interrupt().
Short answer:
• You don't need an explicit "resume" call. session.interrupt() stops current agent speech and clears queued speech, and the session automatically returns to listening mode. Generate a new response with session.generate_reply() or session.say() (or their SDK equivalents) to continue.
Notes and tips:
• If you paused audio explicitly with session.input.set_audio_enabled(False) around the interrupt, re-enable it with session.input.set_audio_enabled(True).
• For false-interruption cases, if resume_false_interruption=True (default) the agent will automatically resume speaking if no valid transcript appears within false_interruption_timeout.
• Use try/finally when disabling input during background work to ensure you always re-enable input.
If you want, share the language/SDK and a short snippet of your flow and I’ll show the exact code to resume.
Sources: Turn detection and interruptions | LiveKit Docs | Agent speech and audio | LiveKit docs