Critical issue: Squad handoff works on calls, brea...
# support
r
Hi Vapi team, We’re running into a critical issue with native squad handoff in chat. We have a squad-based setup where the primary assistant hands off to an assistant. The exact same handoff works well in call mode, but chat is inconsistent to the point that we can’t trust it. Setup: - Squad - Primary assistant - Hand off assistant - Native handoff tool inside the squad What works - In call mode, the handoff is solid. - The primary assistant hands off to Handoff assistant and the takeover behaves as expected. What breaks - In Vapi’s own chat testing interface, the handoff tool fires and the UI shows that the handoff was initiated. - But instead of a clean takeover by Tony’s assistant, the chat often loops into transfer-style language like: - “Connecting you to Tony (Assistant)…” - “Tony (Assistant) or a member of his team will be with you shortly…” - In other words, the handoff appears to start, but the active assistant in chat does not reliably transition the way it does in calls. We also see the same inconsistency in our own implementation. Sometimes it seems to work, and other times it falls back into the same loop/receptionist behavior. Questions - Is native squad handoff fully supported in chat today, or only in calls? - Is this a known issue in the Vapi chat tester and/or chat API? - After a handoff in chat, is
previousChatId
the recommended continuation path instead of
sessionId
? - Is there a supported way to confirm which assistant is currently active after a handoff in chat? We’re happy to provide any sessions, chats, screenshots, or a screen recording right away. At this point we mostly need clarity on whether this is a bug, a limitation, or an integration requirement we’re missing. The call experience is great, but it falls apart in chat. Thanks. https://cdn.discordapp.com/attachments/1489545351311392918/1489545351902920806/Untitled_design.png?ex=69d0ceb6&is=69cf7d36&hm=66ea909bbf36c13caacf67de3e28442e2169fb302df73cf01c3997b102fd9716&
v
To address the looping transfer messages in chat, try customizing the handoff tool's
messages
array to set clear, non-repetitive responses for each phase. For example:
Copy code
json
{
  "type": "handoff",
  "messages": [
    { "type": "request-start", "content": "Transferring you now. Please wait..." },
    { "type": "request-complete", "content": "You're now connected. How can I assist you?" },
    { "type": "request-failed", "content": "Sorry, the transfer didn't work. I'll help you directly." }
  ]
}
This can help prevent the chat from looping into transfer-style language and clarify the handoff state for users. See the [handoff tool documentation](https://docs.vapi.ai/squads/handoff) for more details. Source: - [Handoff tool documentation](https://docs.vapi.ai/squads/handoff)
s
Hi, thanks for reaching out.
Could you please provide us with the call ID/squad ID?
That'd help us with \the investigation.
r
Yes, Squad ID:9b1d8407-27f6-4d0d-ac61-b661bad35094 There are no registered logs for the call ID on chat.
Hi @Shaunak any updates for us?
@Shaunak
Hey, @User I haven't gotten any response from you guys?
c
Hi, Thank you for the detailed report and for your patience while we investigated! We've looked into this thoroughly and here are the answers to your questions: 1. Is native squad handoff fully supported in chat today? Not fully - squad handoff in chat mode is only partially implemented. Call mode uses a complete pipeline reset on handoff, while chat mode only performs a partial cleanup, which causes the primary assistant to continue responding even after the handoff is initiated. This explains the looping behavior you're seeing. 2. Is this a known issue? Yes, this is a known issue affecting both the chat tester and the chat API. We have it tracked internally and a fix is being worked on. 3. Is previousChatId the recommended continuation path after handoff in chat? Yes, previousChatId is the correct path for continuing a chat session after a handoff, not sessionId. 4. Is there a supported way to confirm which assistant is currently active after a handoff in chat? Unfortunately not at the moment - there is no server-side way to confirm the active assistant after a handoff in chat. The best approach for now is to track this client-side. In the meantime, here are the recommended workarounds: - Use call mode for squad handoffs if possible, as it is fully reliable - Track the active assistant client-side after a handoff - Use previousChatId for chat session continuation - Start a fresh chat session after a handoff as an alternative We apologize for the inconvenience. Best regards, VAPI Support
d
Hello Vapi support, do you have any updates on this?