Fix: "agent_user has previous active 3-way calls" when starting a 3-way
This error is a safety check firing on leftover 3-way calls. Here is what tw_check does, why it blocks you, and how to clear the stale conference.
You try to start a new 3-way and the transfer is blocked with agent_user has previous active 3-way calls. This is not a malfunction; it is a guard rail doing its job. The system found a leftover 3-way still marked active for that agent and refused to stack a new conference on top of it. Knowing what flips that check on tells you exactly how to clear it.
What tw_check does
When you start a dialing 3-way through the transfer-conference function, you can pass an optional tw_check set to YES. With it on, the function checks for still-active previous 3-way calls on that Agent and shows an error if any are found. That error is the message you are seeing. There is a parallel option, md_check, that does the same thing for the multi-dial press-1 path. A closely related response, agent_user has current active 3-way call, points at the same underlying problem: a conference that was never cleaned up.
Cause, check, fix
flowchart TD
A[previous active 3-way calls] --> B[tw_check is set to YES]
B --> C{Is there a real leftover 3-way}
C -->|Yes| D[Hang up the stale third party line]
D --> E[Confirm conference is cleared]
E --> F[Start the new 3-way]
C -->|No| G{Is the flag stale in the data}
G -->|Yes| H[Clear the stuck session state]
H --> F
G -->|No| I[Set tw_check to NO only if intended]First decide whether the leftover conference is real. Most of the time it is: the agent started a Three-way call earlier, never hung up the third party, and moved on. The fix is to clean up that call first. Hang up the stale third-party line, confirm the conference is gone, and then start the new one. The check exists precisely so an agent does not pile a fresh conference onto a stuck one, which is a classic way to get one-way audio and orphaned channels on a busy floor.
If you are certain no real conference is live, the flag may be stale in the session data after an odd disconnect, such as a dropped network connection mid-handoff that left the records out of step with the actual channels. Clearing the stuck session state for that agent resets it. Resist the urge to simply set tw_check to NO to push past the warning, because turning the guard off does not fix the underlying stuck call; it just lets you stack on top of it and trade one warning today for a harder mess later. Only disable the check when you have a deliberate reason and you know the leftover is genuinely gone.
Keeping conferences clean
The long-term fix is workflow, not flags. Train agents to hang up the third party before they leave a call, give them a clear button to do it, and where you script transfers through the Agent API, keep tw_check on so a stale conference is caught early instead of compounding. A short cleanup step at the end of every handoff is cheaper than chasing stuck channels later, and it keeps your reporting honest because orphaned conferences distort talk-time numbers. For how 3-way calls start in the first place, see the 3-way call with customer flow, and for the full handoff chain see the transfers and closers guide.
If stuck conferences and stale flags are a recurring headache, a managed dialer tuned for clean handoffs takes the guesswork out. Our pricing has the details.
About VICIfast LLC
VICIfast LLC operates a managed VICIdial hosting + BYOI service for outbound and inbound call centers. We run the dialers, the carriers, the recordings pipeline, and the compliance plumbing so operators don’t have to.
Citing this article
VICIfast Engineering. “Fix: "agent_user has previous active 3-way calls" when starting a 3-way”. VICIfast LLC, June 24, 2026. Retrieved from https://vicifast.com/blog/fix-vicidial-previous-active-3-way-call
Have questions?
Related posts
You might be interested in
Operations
Transfer vs 3-way call in VICIdial: what stays on the line and what doesn't
Operations
The recording API: starting and stopping a recording mid-transfer
Operations
Using AXFER to blind-transfer a customer into an AGI or IVR
Operations
The transfer_conference API: scripting transfers and 3-way calls
VICIfast newsletter
Liked this? Get the next one in your inbox.
We ship the kind of stuff you just read — concrete, numbers-first, no drip. One email when a new post goes live. Unsubscribe in one click.
Comments
No comments yet — be the first.