Voice simulations fail for some users but not others

Last updated: September 18, 2026

Your allowlist can be correct and voice simulations can still fail, for some users and not others. Three different network controls produce that pattern. This article helps you tell them apart and fix each one.

Apply the Network allowlist guide first, and come back here if the problem continues after that.


Symptoms

  • The simulation loads and the scenario appears, but the voice call never connects.

  • It works for some users and fails for others, with no clear pattern by office or device.

  • The same user can fail for an hour and then succeed, without anything changing on their machine.

  • Chat simulations are unaffected.

Start with how long it takes to fail

Time the gap between pressing Start and the error appearing. It is the fastest way to narrow the cause.

Time to fail

Most likely cause

About sixteen seconds

TLS inspection of the signalling connection

About one second

TLS inspection of the call API

Never fails, but never connects

AI application isolation

Ask the user to note the time, or watch them do it once on a call.

Why it affects some users and not others

Secure web gateways send users out through different egress nodes, and policy can differ between them. We have seen one user fail repeatedly for two hours and then succeed from the same address, with no change on their side.

Treat "it works for me" from your network team as weak evidence. Test with a user who fails reliably, and test more than once.

Cause 1: TLS inspection of the signalling connection

This is the most common cause we see.

A voice call opens a WebSocket to the provider's signalling hostnames to set the call up. Allowing those hostnames is not enough. If your proxy decrypts and re-encrypts that connection, the call software cannot complete it. It retries three times and gives up after about sixteen seconds.

To fix it, exempt these six hostnames from TLS inspection as well as allowing them:

  • *.wss.daily.co and *-wss.daily.co

  • *.wss.dailywebrtc.com and *-wss.dailywebrtc.com

  • *.wss.dailywebrtc.net and *-wss.dailywebrtc.net

Both forms matter, because the call software switches between them while it retries.

Cause 2: AI application isolation

Secure web gateway and SASE platforms, including Zscaler, Netskope, Palo Alto Prisma Access, Island and Menlo, can isolate any application they classify as an AI tool. Solidroad's voice provider is often classified this way.

Isolation is not the same as a block. A block rejects the request and leaves a clear failure in your logs and in the browser console. Isolation reroutes the session through a remote browser, so the request appears to succeed, nothing is recorded as blocked, and the call setup never completes.

To fix it, add vapi.ai to your AI isolation policy exceptions. That is a separate policy object from your allowlist, so adding a host to one does not add it to the other.

Confirming it without reading any logs

Ask an affected user to open vapi.ai in their normal browser, on the machine where simulations fail. Then ask them to open perplexity.ai as a control.

What they see

What it means

Both open inside an isolation frame, or show a gateway notice

Isolation is active. Add vapi.ai to your exceptions.

vapi.ai looks normal, perplexity.ai isolates

Isolation is still active for that user. vapi.ai and api.vapi.ai can be classified separately, and simulations use api.vapi.ai, so add it explicitly.

Neither isolates

Isolation is unlikely. Read causes 1 and 3.

Run the same test on a machine where simulations work. A side by side comparison is the fastest way to show your network team the difference.

Recategorising instead of excepting

Some teams recategorise vapi.ai as a business application, on the basis that Solidroad uses it as the voice transport for a licensed training tool rather than as a general purpose AI assistant your team prompts directly. It reaches the same outcome as an exception and is sometimes easier to get approved.

Cause 3: TLS inspection of the call API

Before a call starts, the browser asks api.vapi.ai for permission to send its request. Some proxies pass an ordinary request to that address but interfere with the permission step.

This one is easy to misread. The address is reachable, so a connectivity test against it passes, and the problem looks like something other than the network. The failure happens in about a second.

To fix it, exempt api.vapi.ai from TLS inspection as well as allowing it.

A note on daily.co

Earlier guidance said daily.co belongs on your allowlist but rarely needs special treatment. That is no longer accurate. The signalling hostnames under daily.co, dailywebrtc.com and dailywebrtc.net need a TLS inspection exemption, as described in cause 1, and they are the most common cause of this problem.

Definitive check in the browser

On a machine where simulations fail:

  1. Open Chrome DevTools and go to the Network tab.

  2. Tick Preserve log.

  3. Start a voice simulation.

  4. Filter for vapi, then filter again for wss.

Compare the result against a machine where simulations work. On the affected machine, either the call setup request to api.vapi.ai does not complete, or the WebSocket to a wss hostname does not open.

If it still fails

Send the Solidroad team the following, and we can confirm what the call attempt looked like from our side.

  • The date, time and timezone of a failed attempt.

  • The user's email address.

  • The exact message shown on screen, and how long it took to appear.

  • Whether the same user has ever succeeded on the same machine.


Related articles

If you have any further questions, contact the Solidroad team via the Help tab in the platform.