Most voice agents fail in production the same handful of ways. The failures are not model quality problems; they are systems problems in timing, state, and transport, the parts of the agent that only show up under real concurrency, real noise, and real interruptions. This appendix collects the recurring ones as a reference: for each, the symptom the user experiences, the cause in the architecture, and the pattern that prevents it. Every fix traces back to a chapter in this guide, and several change shape when inference runs on the device instead of in the cloud.
| Failure mode | Symptom the user hears | Root cause | Fix pattern |
|---|---|---|---|
| Silent stall | Unexplained pause; user cannot tell a thinking agent from a dead one | A stage is slow or failed with no acknowledgment | Never fail silently: acknowledge past a threshold, retry, or escalate (Chapter 7) |
| Stale barge-in response | Agent answers a question the user already abandoned | In-flight reasoning or synthesis survived the interruption | Cancel at the logic layer, not just the media layer, on every barge-in (Chapter 3) |
| Premature cutoff | Agent talks over the user mid-sentence | Fixed silence timeout ends the turn during a natural pause | Layer acoustic, linguistic, and behavioral endpointing signals (Chapter 3) |
| Dead air after the turn | Long gap before every response | Endpointing waits out a full timeout before committing | Tiered endpointing: reason speculatively on medium confidence, commit on high (Chapter 3) |
| Self-barge-in | Agent interrupts itself | The agent's own playback is detected as user speech | Echo handling: run VAD against the caller channel with playback suppressed (Chapter 3) |
| Cross-call audio leak | A caller hears another call's audio | Frames not bound to a strictly enforced session ID | Bind a unique session or stream ID to every inbound and outbound frame (Chapter 5) |
| Compounding latency | Every response feels a beat late | Stages run sequentially and each remote stage adds a round-trip | Overlap stages; remove round-trips by moving stages on-device (Chapter 3, Chapter 6) |
| Hallucinated confirmation | Agent says an action succeeded before it did | The model narrates intent instead of backend state | Transactional confirmation: speak only what a backend response confirms (Chapter 8) |
| Transcription collapse under noise | Accuracy craters in the field despite clean demos | Engine evaluated on clean audio, deployed on noisy or narrowband audio | Evaluate on target audio; add noise suppression ahead of recognition (Chapter 5) |
| DTMF pollution | Keypad tones corrupt the transcript | Tones routed through the speech pipeline | Detect DTMF explicitly and route it into call control, outside the pipeline (Chapter 5) |
| Format mismatch | Distorted audio or added latency on phone calls | Repeated transcoding across the gateway | Align codecs end to end; convert once at ingress (Chapter 5) |
| Session killed mid-turn | Call drops during a deploy | Instances recycled without draining live sessions | Deploy gradually; drain active sessions before recycling (Chapter 7) |
| Tail-latency blowout | Some conversations feel broken while averages look fine | Capacity planned to p50, not p99, under concurrent sessions | Load-test tail latency under concurrency; provision for peak (Chapter 7) |
| Unbounded cost at scale | The cloud bill grows faster than the product | Usage-based pricing scales with every conversation | Model cost at target volume; move stages on-device where the loop allows (Chapter 2, Chapter 6) |
| Blind offline fleet | Disconnected devices report nothing | Telemetry assumes a live connection | Buffer event logs locally; upload summaries when connectivity returns (Chapter 7) |
The table sorts into three families, and knowing which family a bug belongs to points at the fix.
Silent stalls, premature cutoffs, dead air, self-barge-in, and compounding latency are all timing failures. They come from treating a voice agent as a request-response pipeline instead of an event-driven system that reasons about its own state of listening, thinking, and speaking. The cure is the discipline of Chapter 3: budget latency per stage, overlap stages, and make endpointing a tiered decision rather than a fixed timeout. Every stage moved on-device removes a network round-trip from the budget these failures are measured against, which is why inference location is a timing decision before it is anything else.
Stale barge-in responses, hallucinated confirmations, and lost context after an interruption are state failures. They happen when the agent trusts the model's memory or the transcript as its system of record instead of tracking task state explicitly in code. Chapter 4 is the fix: the transcript is evidence, not the database; every in-flight call is cancelable; and the agent speaks about what a function returned, not what the model hoped it would return. A constrained speech-to-intent domain removes a whole class of these, because a finite intent space cannot hallucinate a confirmation or a slot value.
Cross-call audio leaks, DTMF pollution, format mismatch, sessions killed mid-deploy, tail-latency blowouts, unbounded cost, and blind offline fleets are transport and scale failures. They surface only under real concurrency and real telephony, which is why they rarely appear in a demo and reliably appear in week one of production. Chapter 5 and Chapter 7 cover the disciplines: strict session identity on every frame, explicit call-control paths, graceful draining, tail-latency load tests, and capacity planning that accounts for long-lived streaming sessions.
On-device and hybrid architectures do not make failure modes disappear, but they shrink several of them by construction. Compounding latency loses its round-trips when stages run locally. Unbounded cost becomes cost-effective at scale when inference ships with the device rather than metering per conversation. The blind-offline-fleet problem is reframed: an on-device agent keeps working with no connectivity and buffers its telemetry, where a cloud agent simply stops. And cross-call leaks and format mismatches thin out when per-call audio is not fanned out to third-party speech APIs in the first place. The failures that remain, endpointing tuning, barge-in cancellation, transactional confirmation, are the ones worth spending engineering attention on, because no architecture removes them for free.
This is the last stop in the guide. For definitions of any term used across these chapters, from barge-in to wake word, see the Picovoice voice AI glossary. To start building, return to Chapter 11 for the first-week plan, or go back to the guide hub for the full chapter map.