Skip to main content

Troubleshooting

Audio & media

SymptomCheck
Connected but silentHTTPS/localhost, microphone permission, browser autoplay, and reachable STUN/TURN. Go's default is silent media. Media setup.
no_mediaTS has mediaFactory: null; it cannot answer audio. Supply media or use an external phone. Control only.
Microphone errormic_not_found, mic_permission_denied, or mic_in_use identifies absent, denied, or occupied hardware. Errors.

Calls & ringing

SymptomCheck
No browser ringingRegister, confirm WebRTC routing and agent availability. With WebRTC off, configure an external number. Routing.
Callback waits for AnswerExpected: callbacks never auto-answer, even when outbound auto-answer is enabled. Call model.
No calls in the UIInspect bc.view, connection errors, registration and routing; check config.calls.enabled for visibility. A late subscriber receives cached state and does not itself lose calls.
display_as_forbidden or no caller IDSelect an allowed availableNumbers entry. An admin may need to assign a Display-As number. External conference invites can fail the same way. Error reference.
agent_not_availableIf lineBlocked, offer Reset; otherwise choose an available presence. Banner.
Busy after signing back inThe prebuilt app chooses busy on sign-out; that choice persists. Select Available. A standalone SDK close() does not set presence. Reset is for involuntary blocking only.
A command does nothingHandle the send result and error callback; command outcomes arrive separately in state. Errors.

Connection & lifecycle

SymptomCheck
Audio lost on reconnectClose releases media; standalone SDKs don't re-answer an in-progress call. Recovery limits.
Connection indicator looks healthy after a dropAn immediate cache callback or successful send doesn't prove stream health. Go has no disconnect callback; TS clean stream endings are silent. Indicators.
onGap or stale stateGet a fresh snapshot; see the TS notification sequencing caveat.
Reconnect rejectedThe token may have expired or been revoked. Renew/login.

Setup & integration

SymptomCheck
CORS failureAdd the app origin to the API allowlist. Empty is permissive. TS setup.
Go cannot reach an HTTPS originCurrent Addr constructs plain HTTP. Go limitations.
require() failsUse ESM or dynamic import(). TS installation.
Config/options/contacts missingRegistration loads these in separate updates and may encounter partial fetch failures. Handle absent fields.
Control-only client receives offersRegistration requests WebRTC reachability regardless of media/capabilities. Restore external routing.
Contact name says "recent"That literal denotes a recent number, not a person's name. Contacts.
Embed is blank or silentCheck CSP framing, embed message origins and host microphone delegation separately. Embedding.
Embed event missingWait for agent.loaded; deployed app support and CTI feature flags govern events. Events.
Host theme partly ignoredRead theme_rejected; accepted sibling tokens still apply. Re-send after ready when using raw messages. Theme rules.

See also

Authentication · Error codes · State & events.