Outbound calls dropping mid-sentence, logged as user_hangup with zero captured audio from the far end

We’re running an outbound Conversation Flow agent (agent_id: agent_b7ef8160c126dbb63014868e59) that calls drivers. We’ve had a real-world report of calls dropping partway through, and pulling the call data shows a pattern that looks like a silent disconnect being misreported as user_hangup, not an actual hangup on the far end.

Two example calls, same recipient, same day:

Call 1 (call_d5269550c7c066bd8f4589e9288): duration 8 seconds, disconnection_reason: user_hangup. The transcript shows the agent’s own greeting cut off mid-word (“I’m reaching out about an order that was” — nothing after that). There is no user turn anywhere in the transcript, no audio, no words, from the far end at all.

Call 2 (call_eb8190506410fae47726bcfe787), same driver, roughly an hour later: duration 32 seconds, disconnection_reason: user_hangup. This time the agent completes its full opening line and asks a question. The call then ends with, again, zero captured user speech anywhere in the transcript.

Neither call shows any tool call, error, or webhook failure on our side, both terminated before our flow’s logic ever branched. in_voicemail is false on both, and both have recording_url/public_log_url populated if that helps with investigation.

This looks consistent with a few other threads we found searching the forum describing the same shape of problem, calls logged as user_hangup where the actual audio shows a silent transport-level failure rather than a real hangup:

  • “Agent hangup in the middle of the conversation”
  • “Calls Dropped at the LiveKit Level”

Could someone take a look at these two calls specifically and confirm whether this is the same known issue, and if there’s a fix or workaround available? Happy to provide additional call IDs from the same agent if that’s useful, we can reproduce this pattern somewhat regularly on outbound calls.

Thanks.

Hello @madam Thanks for sharing your Call IDs. Let me check this with the team, and I’ll get back to you with an update.

Thank You

Hello @madam We reviewed both calls on Retell’s side (PCAP + runtime).

On both, the SIP ladder is clean and the terminating BYE arrives inbound at our SIP gateway from your Twilio trunk edge. Retell tore down within ~60 ms of receiving it. TTS, LLM, flow, and interruption logic were all healthy up to that instant no errors, no tool failures, no webhook issues.

  • call_d5269550c7c066bd8f4589e9288 - answered 12:47:37.706 UTC, BYE from Twilio at 12:47:46.134 UTC (~8.4 s). Twilio CallSid CA92ac933765523e86ca847c09a591bc61.
  • call_eb8190506410fae47726bcfe787 - answered 14:03:17.538 UTC, BYE from Twilio at 14:03:49.311 UTC (~31.8 s). Twilio CallSid CA9acd09fa15f82c1e2e33a66489fe0c84.

That’s why the platform labels these user_hangup, the release came in from the carrier side, not from us. Important nuance: on BYOC, user_hangup means “BYE received from your trunk”; it does not by itself prove the driver physically hung up. The BYE has no Reason:/Q.850 header and our PCAP is SIP-signaling only (no RTP), so we can’t tell from our vantage point whether it was the driver, the terminating carrier releasing the leg (screening/reachability), or a Twilio terminating-carrier media issue that resolved into a carrier-side BYE.

The authoritative next artifact lives in your Twilio subaccount: open each CallSid above in Twilio Voice Insights and pull:

  • SIP Reason / Q.850 cause and Termination Source - distinguishes real hangup (e.g. Q.850 16 originating callee-side) from carrier release (102/41/31/…).
  • Inbound RTP counters (packets in, jitter, MOS) - if inbound RTP was near-zero for the whole call, the callee’s audio never made it back to Twilio, which is the tell for a downstream media failure rather than a real hangup.

If either indicates a carrier-side drop, you can check with twilio referencing the subaccount SID and those two CallSids.

Share what Voice Insights returns and we’ll take it from there.

Thank You

Thanks for the detailed breakdown and amazing support. That’s exactly what we needed to narrow this down.

Pulled Voice Insights in the Twilio Console for both CallSids (screenshots attached). A few relevant fields for both calls:

  • Who Hung Up: callee (both calls)
  • Last SIP Response: 200 OK (both)
  • Twilio RTP Latency to PBX: <10ms (both)
  • Twilio RTP Latency to PSTN: <10ms (available on call 2)
  • Verified: true (both, STIR/SHAKEN attestation passed)
  • Silence Detected: true on call_eb8190506410fae47726bcfe787 (the 32s call), not shown on call_d5269550c7c066bd8f4589e9288 (the 8s call)

No Q.850/Reason header shown on either, which lines up with what you found on your PCAP side, there just isn’t one on this BYE.

Given Who Hung Up: callee plus clean RTP latency on both legs, this looks less like a platform or media-layer issue and more like the disconnect genuinely originated on the receiving end. The Silence Detected flag on the 32-second call is the interesting part, that one ran the full opening pitch and the confirmation question before ending, with silence flagged partway through, which reads more like a real person who went quiet and then hung up than an instant carrier-side reject.

Given the account doesn’t have Voice Insights Advanced Features enabled, this Console view is as deep as we can go on these two specific calls. Since the signal points at the callee side rather than anything on Retell’s platform, I think this closes out as “working as expected, not a Retell issue” from what we can see, wanted to close the loop with what we found either way in case hitting the same “user_hangup with a short, silent call” pattern. What is your input on this?

Appreciate the fast turnaround on this.

Hello @madam I’ve escalated this with the team for further investigation. I’ll get back to you as soon as I have an update.

Thank You

Hey @madam yes its working as expected on the retell side.

Thank You