Related thread: Agent/caller speech mis-ordered in transcripts — caller answers after the agent finishes but is recorded as interrupting mid-sentence; breaks conversation-flow transitions (Japanese / Fish Audio TTS) — where Shah-Fazal identified the cause as “our transcript estimation is not designed for japanness character”.
We believe we are seeing the same Japanese estimation problem, but with a Cartesia voice it fails in the opposite direction, and it costs us audio rather than transcript accuracy: end_call fires while the TTS is still playing, so the caller never hears the end of the message. Same agent, same conversation flow, same message text — only the voice differs.
With Fish Audio (thread 3401), the estimate runs long: word timestamps land past the real audio, so caller replies look like mid-sentence interruptions. With Cartesia, the estimate runs short: Retell treats the utterance as finished early and the call is torn down mid-word.
These calls are from 2026-08-06 and 2026-08-07, after the fix mentioned in 3401, so if that fix shipped it does not cover the playout / end-call path.
ENVIRONMENT
Agent: agent_9fbf26727e8e36c3ad8e50298e (voiceai_stg_3d5a9af7), version 0, conversation flow, ja-JP, voice_speed 1.1.
Cartesia voice: custom_voice_40e9b59b6a413160becb57cd80 (sonic-3).
Fish Audio voice: custom_voice_c9cd94fd5a53bca14cc385c189 (s2-pro).
REPRODUCTION
Both calls end with the identical message: 「誠に恐れ入りますが、営業は終了いたしました。おかけ直しください。営業時間は9時から17時です。」
Cartesia — call_69d2de62b38a2e18a09a891db73
- Recording length: 33.26s
- Last word timestamp: 33.25s (matches the end of the audio exactly)
- Silence after speech ends: 0.00s
- Final 100ms of the recording: RMS 1698, i.e. still at full speech amplitude
- What the caller hears: 「…9時から17時」 — the closing 「です」 never plays
Fish Audio — call_1d78212f739f0b92ca776625a3d
- Recording length: 26.78s
- Last word timestamp: 28.42s, i.e. 1.64s past the end of the audio (the symptom from thread 3401)
- Silence after speech ends: 0.45s
- Final 100ms of the recording: RMS 0
- What the caller hears: the complete message
Both calls follow the identical path in public.log: shared_core-component_end → wrapper_end → Calling tool: end_call → Ending call. The transcript text is complete in both cases; only the Cartesia audio is lost.
Additional Cartesia examples on the same agent: call_81285a4ac65faaa976618cd002e (same message, clipped) and call_6b4c8760d2c2a0ff4d5d4a592ed (callback message clipped, with the following sentence bleeding into it).
EXPECTED
end_call should wait for the TTS stream to actually finish playing, rather than for an estimated duration — especially given that 3401 establishes the Japanese estimate as unreliable.
IMPACT
These are business-hours and callback announcements, the last thing a caller hears before hangup, so the clipped words are exactly the information the message exists to convey. We also use this Cartesia voice as the fallback_voice_ids entry for all of our Fish Audio voices, so a Fish Audio outage would put every one of our customers on the clipping path.
QUESTIONS
- Did the 3401 fix ship, and does it cover the playout / end_call path or only transcript timestamps?
- Does the Japanese estimation issue apply to Cartesia as well as Fish Audio?
- Is there a drain delay or grace period before end_call that we can set as a workaround?
Thanks,
Andrew