error: {
"type": "APIStatusError",
"message": "LiveKit Adaptive Interruption error: prediction failed: bargein prediction failed: Provider livekit error (status 0): Unhandled HTTP status: 0 - retryable: false",
"stack":
APIStatusError: LiveKit Adaptive Interruption error: prediction failed: bargein prediction failed: Provider livekit error (status 0): Unhandled HTTP status: 0 - retryable: false
"body": null,
"retryable": true,
"name": "APIStatusError",
"statusCode": 2006,
"requestId": null
}
at handleMessage (…./inference/interruption/ws_transport.js:209:11)
at WebSocket.<anonymous> (…./interruption/ws_transport.js:90:9)
Could you please give a bit more background about what led to that error?
I’m trying to implement adaptive interruption based on the documentation, but I’m not sure if it’s actually working.
When I speak normally, interruptions sometimes work, but other times they don’t, and I can’t figure out why. To test it, I tried using short acknowledgment phrases like “mhm”, “right”, and “cool” (as shown in the example video for adaptive interruption). However, when I use those, I get an error related to adaptive interruption.
Interestingly, when I speak in full sentences or more naturally, I don’t get that error. I’m not sure if that’s just a coincidence or not, but the error is breaking the interruption system.
I’m trying to understand whether adaptive interruption is actually working correctly.
Here’s the relevant part of my setup:
const session = new voice.AgentSession({
llm,
vad,
turnHandling: {
turnDetection: new turnDetector.MultilingualModel(),
interruption: {
mode: "adaptive",
},
},
stt: "elevenlabs/scribe_v2_realtime",
});
if (tts) {
session.tts = tts;
}
The best way I have found to test if it is actually working is to use the Playground, https://agents-playground.livekit.io/, and then when you connect with an agent a debug window will be shown at the bottom of the screen. That debug window will show visually when a backchannel occurs vs an actual interrupt.
If you don’t see the window, it means the version of LiveKit agents used by your agent is not high enough (NodeJS requires version 1.2.0 or higher)
You can see a screenshot of the debug window I am talking about at the bottom of this blog: Solving unwanted interruptions with Adaptive Interruption Handling | LiveKit
the error still happening.
I am trying to reproduce this. I am able to successfully run our node starter in dev mode, GitHub - livekit-examples/agent-starter-node: A complete voice AI starter app for LiveKit Agents with Node.js · GitHub
Going down the list of requirements, from the docs:
-
Agent is deployed to LiveKit Cloud or running in dev mode. –> It’s not clear to me where you have deployed your agent, but regardless, I would not expect to see ‘ERROR’
-
VAD is enabled. –> looks like you have this enabled
-
LLM is not a realtime model. –> Presumably not, it would be a very strange Session config if you were.
-
STT model supports aligned transcripts. –> You’re using an STT that supports this
Another thing to try is to omit the ‘interruption’ parameter entirely, it should be ‘adaptive’ by default.
[15:27:41.117] ERROR (74993): InterruptionDetectionError: failed to detect interruption after 3 attempts (label=AdaptiveInterruptionDetector, timestamp=1774528061117, recoverable=false)
still happens.
agent is running in dev mode currently.
silero vad is enabled, i am sure i have downloaded the required files.
llm is not realtime.
elevenlabs stt model is in use.
removing interruption parameter didn’t change anything.
using a vpn fixed the problem.
do you have any idea what is causing that, or can we somehow debug this.
Interesting, since using a VPN fixed it, the failure is almost certainly network access to LiveKit Cloud’s adaptive interruption inference service.
Where are you geographically? And where are you connecting to with your VPN? Are you on a corporate network or outbound proxy?
I live in Turkey, i don’t use any VPN, and it is my local home internet.
The location of the VPN I tested is Netherland.
There is a country-wide block for Discord in Turkey, so i am using some Cloudflare services, such as WARP/DNS to bypass the Discord block, thats all.
Livekit cloud works fine except for the adaptive interruption service.
Thanks for sharing those details, let me ask internally