onError callback. The call window itself shows a generic message, such as Unable to start the call. Please try again., so always check the console or onError for the real cause.
A refused call start looks like this:
Error messages
The widget doesn’t appear
Nothing renders and the console is silent
Nothing renders and the console is silent
data-agent (or the legacy data-campaign) or data-token. Without one, it doesn’t create a widget and logs nothing. Check the attribute name and that the value isn’t empty.The console shows an Invalid JSON error
The console shows an Invalid JSON error
[CallerWebSDK] Invalid JSON in data-vars attribute. or ... data-theme attribute. means the attribute isn’t valid JSON. Wrap the attribute in single quotes and use double quotes inside: data-vars='{"name":"Jane"}'.The script is blocked
The script is blocked
https://cdn.callers.ai. See the CSP list in the overview.I set showFab: false and see nothing
I set showFab: false and see nothing
call(). With hidden: true, nothing is shown at all until you call show().The call doesn’t connect or has no audio
Microphone access was denied
Microphone access was denied
onCallEnded fires). Ask them to allow the microphone from the site settings icon in the address bar and try again. Make sure the page is served over HTTPS, and inside an <iframe> add allow="microphone".Connected, but the visitor hears nothing
Connected, but the visitor hears nothing
call() from a click or tap handler, not on page load or after an await that runs long after the click. Also check the visitor hasn’t turned off the speaker (isDeafened()).The agent can't hear the visitor
The agent can't hear the visitor
isMuted(). Text conversations start with the microphone muted; turning it on switches to voice. Some corporate networks block WebRTC traffic; try another network to confirm.The call ends after about 30 seconds without connecting
The call ends after about 30 seconds without connecting
Echo or background noise
Echo or background noise
noiseSuppression object, leave browserEchoCancellation on. Headphones help on laptops.Local development
It works in production but not on localhost
It works in production but not on localhost
http://localhost:3000 never matches. Use token authentication locally, or test in the playground.The agent greets visitors with {{ name }}
The agent greets visitors with {{ name }}
data-vars snippet from the dashboard contains placeholders. Replace them with real values from your page or template before the HTML reaches the browser.Bot protection
The challenge never finishes
The challenge never finishes
https://challenges.cloudflare.com isn’t blocked. Errors from the in-browser check are Captcha verification failed, Captcha verification expired or Captcha verification timed out.Visitors can't start a second call from the review screen
Visitors can't start a second call from the review screen
Avatars
The avatar doesn't show
The avatar doesn't show
Avatar or WebCall: invalid avatar name. If the model can’t load (blocked by CSP or a content blocker), the call continues without the avatar.WebGPU isn't available
WebGPU isn't available
webCall.avatarStats.backend shows webgpu or wasm.Still stuck?
Send support@callers.ai the agent ID, the page URL, the fullonError message, and the session ID from webCall.getUsername() (read it during the call).