# The Voice Failure Atlas > What voice-agent builders are hitting, across every platform, with a link to who reported it and a status re-checked daily. Subscribe to the machine surface rather than scraping these pages: - [feed.json](https://hotato.dev/atlas/feed.json): every entry, its reports, its status history with evidence links, and whether hotato measures it. - [feed.schema.json](https://hotato.dev/atlas/schema/feed.schema.json): the documented, stable schema (hotato.atlas-feed.v1). - [feed.atom](https://hotato.dev/atlas/feed.atom): the same entries as Atom 1.0. ## How to read an entry - `statement` is one plain-English sentence describing what happens to the caller. - `status` is one of open, acknowledged, fixed, stale, withdrawn. It changes only when a daily re-check stores an evidence link, quote and date; `status_history` carries that evidence. - `report_count` counts independent public reports; each carries the reporter's public handle, the canonical link, and a quote of at most 30 words. - `hotato_coverage.command` is a command you can run yourself, or an empty string when no shipped hotato command measures that mode. ## Terms Link-first: quote at most 30 words and link the original. Do not use the handles here to build an outreach list. Removal requests: atlas-remove@hotato.dev, honored within 24 hours. ## Entries - [When the caller interrupts the agent mid-speech, the system's interrupt handling fails to cleanly tear down the in-progress turn, corrupting the conversation state.](https://hotato.dev/atlas/barge-in-teardown-race/): acknowledged, 11 report(s), measured by `hotato autopsy ./call.wav` - [End-of-turn detection fires at the wrong moment, so the agent either answers before the caller has finished or waits after they have.](https://hotato.dev/atlas/endpoint-misdetection/): acknowledged, 10 report(s), no hotato command published - [The agent's own synthesized speech bleeds into the audio input and voice-activity detection mistakes it for the caller starting to talk, triggering a false interruption.](https://hotato.dev/atlas/self-echo-vad-false-trigger/): open, 2 report(s), measured by `hotato trust --stereo ./call.wav` - [The agent's speech synthesis silently produces no audio even though it logs the turn as spoken, and the safeguard meant to detect and recover from this never triggers, leaving the caller in permanent silence.](https://hotato.dev/atlas/silent-tts-failover-deadlock/): acknowledged, 4 report(s), no hotato command published - [When the caller interrupts mid-response and the system lacks word-level delivery timestamps, it falls back to recording the full intended text as spoken, so the conversation history includes words the caller never actually heard.](https://hotato.dev/atlas/interruption-fallback-overstates-delivered-text/): acknowledged, 2 report(s), no hotato command published - [During the short delay before an already-finished user turn is delivered, a fresh VAD speech-start event unconditionally cancels that delivery, so the caller's completed utterance is silently dropped and never reaches the agent.](https://hotato.dev/atlas/vad-retrigger-cancels-committed-turn-delivery/): open, 1 report(s), no hotato command published - [When the live connection to the speech/language service needs to reconnect mid-call, buffered audio, text, and tool results that were in flight are silently discarded instead of resent or recovered.](https://hotato.dev/atlas/mid-call-reconnect-drops-buffered-content/): open, 1 report(s), no hotato command published - [A call-answered classifier depends on two independently arriving signal streams, and when those streams fall out of sync a caller who answers and greets quickly is never classified in time, so the call stalls until the detection timeout.](https://hotato.dev/atlas/amd-dual-stream-desync-stall/): open, 1 report(s), no hotato command published - [A local audio-level gate stops forwarding the caller's audio to the speech-to-text service after a brief silence cooldown, so the remote signal that would mark the turn finished never arrives and the call stalls.](https://hotato.dev/atlas/audio-gate-cooldown-blocks-endpoint-finalization/): acknowledged, 2 report(s), no hotato command published - [Voice-activity detection registers that the caller is speaking, but the speech-to-text stage fails to produce any transcript even though the same audio is clearly audible in a separate recording of the call.](https://hotato.dev/atlas/vad-fires-but-stt-yields-no-transcript/): fixed, 2 report(s), no hotato command published - [When the caller speaks while their microphone is deliberately muted during the agent's opening greeting, the overlap corrupts turn-tracking so the caller is never heard again for the rest of the call.](https://hotato.dev/atlas/muted-greeting-overlap-strands-turn/): open, 1 report(s), measured by `hotato autopsy ./call.wav` - [When the model's response stream errors out mid-turn, the system's retry logic logs a successful restart but never actually resumes speaking, cutting the agent off mid-sentence and leaving the caller silent for the rest of the call.](https://hotato.dev/atlas/stream-error-recovery-false-success/): open, 2 report(s), no hotato command published - [When speech generation fails almost instantly, the agent still waits out its entire fixed timeout before reacting, leaving the caller in silence for seconds longer than the actual failure took.](https://hotato.dev/atlas/generation-timeout-not-cancelled-on-early-abort/): acknowledged, 2 report(s), no hotato command published - [The system fails to detect the caller's speech because voice-activity detection misjudges frame windowing and retained internal state, so the caller appears silent when they are talking.](https://hotato.dev/atlas/vad-endpoint-misdetection/): open, 2 report(s), no hotato command published - [When the caller interrupts a tool call before the system has finished marking it as started, the call gets permanently stuck flagged as in-progress, stalling the conversation.](https://hotato.dev/atlas/tool-call-cancel-race-stuck-in-progress/): acknowledged, 2 report(s), no hotato command published - [When the agent calls a tool while still speaking, the system marks buffered audio as fully played once generation finishes, cutting the agent's speech off mid-word and sometimes stalling the call.](https://hotato.dev/atlas/tool-call-mid-utterance-audio-truncation/): open, 2 report(s), no hotato command published - [A stale partial speech-to-text result gets re-sent after the final transcript and is mistaken for new caller speech, cutting the agent off right as it starts answering.](https://hotato.dev/atlas/stale-partial-transcript-phantom-interruption/): acknowledged, 2 report(s), no hotato command published - [When a call ends, the system cancels the still-in-progress task finalizing the caller's last speech-to-text result, silently discarding whatever the caller said right before the call closed.](https://hotato.dev/atlas/teardown-cancels-trailing-transcript-commit/): fixed, 1 report(s), no hotato command published - [When a response is interrupted before it can be properly closed off, the unspoken leftover text stays buffered and later gets synthesized anyway, so the caller hears a stray fragment after the conversation should have ended.](https://hotato.dev/atlas/orphaned-interrupted-tail-flushed-post-goodbye/): open, 1 report(s), no hotato command published - [After correctly detecting a voicemail greeting, the agent's command to hang up the call is silently discarded by internal message handling, so the call never actually ends.](https://hotato.dev/atlas/voicemail-detected-end-call-frame-dropped/): open, 1 report(s), no hotato command published - [After the caller interrupts the agent, word-timing data from the interrupted turn keeps being applied because generation timing isn't scoped per turn, corrupting the record of which words the caller actually heard.](https://hotato.dev/atlas/post-interruption-context-timing-bleed/): open, 1 report(s), no hotato command published - [When a tool call is dropped without a response, the system permanently gates future microphone input on that unanswered call, silently discarding everything the caller says afterward.](https://hotato.dev/atlas/unanswered-tool-call-blocks-mic-input/): open, 1 report(s), no hotato command published - [After switching to neural voice-activity detection, the system takes an unusually long time to respond when the caller gives a short one-word reply.](https://hotato.dev/atlas/endpointing-latency-short-reply/): open, 2 report(s), measured by `hotato autopsy ./call.wav` - [When a caller is placed on hold during a transfer, their audio keeps reaching speech recognition, turn detection, and the model instead of being blocked, exposing tools meant only for the behind-the-scenes consult call.](https://hotato.dev/atlas/hold-state-audio-leak-exposes-consult-tools/): fixed, 1 report(s), no hotato command published - [An interruption event fired at nearly the same moment as the agent's reply causes the reply's audio to share the interruption's event id, so a staleness filter wrongly discards it and the caller hears nothing.](https://hotato.dev/atlas/interruption-audio-event-id-collision-drop/): open, 1 report(s), no hotato command published - [A turn-completion check accepts a degenerate, textless model output as a valid finish, ending the turn with no reply while also disabling the timer meant to recover from silence, leaving the caller in permanent dead air.](https://hotato.dev/atlas/turn-completion-filter-dead-air-timer-orphan/): open, 1 report(s), measured by `hotato autopsy ./call.wav` - [After the system re-prompts a silent caller, a turn-completion gate that only resets when the caller speaks treats the caller's reply as already answered and silently discards the agent's response.](https://hotato.dev/atlas/idle-reprompt-turn-latch-response-drop/): fixed, 1 report(s), no hotato command published - [A delayed decision about whether an earlier overlap counted as an interruption gets wrongly applied to a later, unrelated moment, cutting the agent off for speech that was never actually judged an interruption.](https://hotato.dev/atlas/async-interruption-response-misattribution/): open, 1 report(s), measured by `hotato autopsy ./call.wav` - [When the agent's turn is split into multiple speech segments, such as around a tool call, a later segment resets interruption tracking so the caller's still-ongoing interruption is silently ignored.](https://hotato.dev/atlas/segmented-turn-interruption-disarm/): open, 1 report(s), no hotato command published - [The agent starts speaking while the caller still holds the floor, cutting the caller off mid-utterance.](https://hotato.dev/atlas/agent-interrupts-caller/): open, 1 report(s), measured by `hotato autopsy ./call.wav` - [A queue-ordering race in assembling the agent's own spoken output into conversation history drops the turn's final word from the stored record, even on a normal turn with no interruption, though the caller still hears the full sentence.](https://hotato.dev/atlas/tts-word-drop-context-race/): fixed, 1 report(s), no hotato command published - [The caller finishes and the line goes silent for seconds before the agent responds, with no audible acknowledgement in between.](https://hotato.dev/atlas/dead-air-after-caller/): open, 1 report(s), measured by `hotato autopsy ./call.wav` - [A speech-to-text result that finalizes just after the system has already ended and flushed the caller's turn is still processed, racing against the turn boundary and risking corrupted turn state.](https://hotato.dev/atlas/late-stt-final-race-after-turn-flush/): open, 1 report(s), no hotato command published - [A tool call the agent decided on before being interrupted still executes afterward, so an action like hanging up can fire even though the caller is still on the line.](https://hotato.dev/atlas/tool-fire-after-cancel/): acknowledged, 1 report(s), no hotato command published - [After a call is torn down mid-pipeline, the system's call-handling state fails to reset, so later calls are answered but produce complete dead air with no agent activity until the service is restarted.](https://hotato.dev/atlas/post-hangup-pipeline-wedge-blocks-future-calls/): open, 1 report(s), measured by `hotato autopsy ./call.wav` - [When the call itself is torn down or cancelled, tool calls still in flight are never cancelled and keep executing in the background after the caller has left the conversation.](https://hotato.dev/atlas/tool-call-not-cancelled-on-pipeline-teardown/): fixed, 1 report(s), no hotato command published - [When a tool call times out, the system stops waiting but never cancels the underlying handler, which keeps executing in the background and can trigger the same real-world action twice.](https://hotato.dev/atlas/tool-call-timeout-zombie-handler/): fixed, 1 report(s), no hotato command published - [On outbound calls, the answering-machine-detection timer starts before the callee has actually answered, so ring or early media triggers a false timeout that the system wrongly treats as a voicemail greeting.](https://hotato.dev/atlas/amd-premature-timeout-before-answer/): fixed, 1 report(s), no hotato command published - [After the agent completes one or more tool calls within a turn, its spoken response never gets synthesized, leaving the caller in silence.](https://hotato.dev/atlas/tool-call-audio-output-silence/): acknowledged, 2 report(s), no hotato command published - [The agent process is dispatched to an inbound call so many seconds after it arrives that the caller has already hung up before the agent joins.](https://hotato.dev/atlas/agent-dispatch-latency-before-connect/): open, 1 report(s), no hotato command published - [Voice-activity detection mistakes background noise or nearby conversations for the caller talking, so silence-based inactivity timeouts never trigger even though the caller isn't actually speaking.](https://hotato.dev/atlas/vad-background-noise-mistaken-for-caller-speech/): open, 1 report(s), no hotato command published - [When a call is forcibly ended, the shutdown sequence that interrupts the agent and drains pending audio/state can hang indefinitely, so the session's speech-recognition connection is never released and the call never fully tears down.](https://hotato.dev/atlas/forced-close-drain-hang-orphans-connection/): open, 1 report(s), no hotato command published - [While the agent is speaking, the system never listens for the caller's speech, so any attempt to interrupt or clarify goes completely unheard until the agent finishes.](https://hotato.dev/atlas/half-duplex-barge-in-ignored/): stale, 1 report(s), measured by `hotato autopsy ./call.wav` - [When the agent's response takes too long to generate, the telephony layer reads the resulting silence as call inactivity and tears down the call itself, then misreports that the caller hung up.](https://hotato.dev/atlas/silence-timeout-teardown-during-processing-gap/): open, 1 report(s), no hotato command published - [Voice-activity detection treats non-speech or a backchannel as a floor claim, so the agent yields to something that was not a turn.](https://hotato.dev/atlas/vad-false-trigger/): open, 1 report(s), no hotato command published - [The system mistakes the agent's own generated response for new caller input, causing the agent to reply to itself instead of to anything the caller said.](https://hotato.dev/atlas/agent-replies-to-own-output/): acknowledged, 1 report(s), no hotato command published - [The system stops listening for the voicemail beep tone as soon as it detects silence after the greeting, so a beep arriving just after is missed and the tone-triggered action never fires.](https://hotato.dev/atlas/amd-tone-detection-premature-teardown/): open, 1 report(s), no hotato command published - [The system's answering-machine-vs-human classification only comes back after the call has already been answered and engaged, so the agent cannot act on whether it reached a person or a machine in time.](https://hotato.dev/atlas/amd-result-arrives-after-call-answered/): open, 1 report(s), no hotato command published data as of 2026-08-27T18:10:49Z