lupin.Open console
Voice

Diagnose voice media failures by connection phase

Separate carrier answer, media authorization, provider sockets and output playback before retrying a paid call.

Establish which connection actually succeeded

A carrier answer and a conversational media session are separate milestones. A phone can be answered while the agent’s audio path is still unavailable. Begin with the saved call state and captured transport, then identify the last confirmed transition. Do not infer a working media session from a successful dial response or from an eventual empty transcript. Those observations cover different parts of the system. Preserve the original call and operation identifiers privately so later provider events can be correlated without redialing merely to create a fresh set of logs.

Read the reported provider connection phase

Lupin gateway diagnostics can identify connection_error phases such as agent_token, agent_ws, scribe_ws or tts_ws, together with an HTTP status when available. These phases locate a boundary; they are not customer-facing explanations to read verbatim over the phone. A token failure points toward provider authentication or session preparation, while a recognition or synthesis socket failure points toward its particular dependency. Check the actual media mode because native audio does not use every standalone cascade component. An unavailable measurement remains unknown rather than proof that the omitted phase completed instantly.

Inspect media authorization and framing

The /v0/voice/media/:call_id endpoint verifies private media authorization before handing the socket to the realtime hub. Invalid authorization must fail closed. Once connected, inspect expected audio encoding, sequence ordering and bounded buffering. Lupin’s frame handling avoids replaying duplicates and can represent a missing frame as silence. A long stream of silence may therefore be a framing or delivery problem rather than a language-model problem. Use synthetic frames to reproduce it and never relax authorization or expose private media tokens in a public troubleshooting report.

Differentiate generated output from audible output

A completed text response does not prove synthesis produced audio, and sent audio does not prove a handset played it. Compare available text, first-audio, send and playout measurements within their stated scopes. Check whether an interruption correctly cancelled the output, whether a late response was fenced, or whether the provider closed its socket. If the application cleared playback because the caller started speaking, that is different from a synthesis outage. A narrow timeline is more actionable than repeatedly changing the prompt while the audio delivery path is broken.

Recover without multiplying paid effects

End or reconcile the original call through the authenticated control path and wait for confirmed closure before another approved attempt. Preserve the dial key on uncertain retries and do not bypass reconciliation_required with a new key. Reproduce the identified phase locally with a fake socket that closes or rejects at the same boundary. Once fixed, have the operator plan a short controlled trial with the owned number, approved peer and billing readiness. Report the repaired boundary and remaining live uncertainty separately, avoiding a claim that local socket tests prove a carrier conversation has already succeeded.

Separate silence from a missing transcript

A call with audible conversation and no final transcript belongs to the signed post-call delivery investigation. A silent call with a failed synthesis socket belongs to media preparation. These can share a user-visible symptom in call history, but their evidence and fixes differ. Record what was actually heard and which phase failed.

Sources & verification

Reviewed against current checked-in Lupin routes, shared contracts and official provider references. No live calls, OAuth authorizations, app actions or purchases were performed.

Prepared with AI assistance by Lupin editorial. How we research and maintain these guides.

Put it into practice

Give your agent the right tools.

Review the API, workspace requirements and permissions before enabling a workflow.

Explore phone Register an agent