Help with a call where a call that was supposed to be tranfsfered was not successful due to the agent not speacking

Hi Retell support team,

Can you please help me look into an issue with the following call? call_e8e027ae6eafd5b24217879ad2f

The caller asked to be transferred, but after we sent the transfer command, the agent stopped mid-sentence (as you can hear in the recording) and never completed the transfer.

Any ideas on what might be causing this issue? / how to prevent this?

Hey @emilia Checking with the team on this.

Hey @emilia Team took a careful look at call_e8e027ae6eafd5b24217879ad2f. Two things lined up to cause the silent-then-hangup, and neither is a SIP/trunk issue on our side:

  1. **The transfer instruction was sent, but the caller interrupted the agent mid-sentence twice in a row.** Your LLM returned a transfer_number of +1 218 527 4084 with the “Sure, stay on the line, one moment while I transfer you…” turn at both ~16:11:39 and ~16:11:42 UTC. In both cases the caller started speaking before the agent finished the sentence, so the turn was cut short (“takenover”). The transfer is only actually placed once the agent completes that pre-transfer utterance — if the caller barges in before it finishes, the transfer for that turn is cancelled.

  2. **Right after the second interruption, your LLM websocket stopped responding for ~115 seconds.** We requested the next response from wss://api.getpuppeteer.ai/llm-websocket at 16:11:44.940 UTC and received no response frames at all until 16:13:45 — only WebSocket ping/pong during that window. The agent had nothing to say during that stretch, which is the silence the caller heard. When your LLM eventually did reply (after the caller said “Oh, come on”), it returned a generic “I’m here with you…” with no transfer_number, so the transfer wasn’t re-attempted. The caller then hung up via Twilio.

To prevent this:

  • **Make the pre-transfer utterance very short** (e.g. “Transferring you now.” instead of a longer reassurance). The shorter the sentence, the smaller the interruption window before the transfer fires.
  • **Re-emit transfer_number on the next turn if the prior turn was interrupted.** Right now your LLM only sent the transfer instruction on responses 2 and 3 and then dropped it from response 5 — having your server detect “previous turn was interrupted, still want to transfer” would close the gap.
  • **Investigate the stall on your /llm-websocket server** — for this call, your server didn’t emit any response frames for response_id 4 for ~115s while we kept the websocket alive with ping/pong. That dead window is on your side and is what made the agent appear silent. Worth checking logs on api.getpuppeteer.ai around 16:11:44 UTC for that call.

Agent settings, the agentic warm-transfer config, and the SIP trunk on our side aren’t implicated here — the transfer never reached the SIP layer because of the interruption gating + the custom-LLM stall above. Happy to dig further if your server-side logs show something unexpected for that window.

Thank You