Description
Azure Speech SDK's WebSocket connection (wss://*.speech.microsoft.com)
fails with status code 1006 ("Unable to contact server") when certain
browser extensions are active — ad blockers, privacy extensions, or
VPN extensions that intercept WebSocket traffic.
Symptoms
- Mic activates, "Listening" state shows
- Live transcript never updates
- No errors visible without explicit
canceled event logging
- Recognition silently fails
Root Cause
Confirmed via Incognito mode test (extensions disabled by default) —
interview flow works end to end with no code changes. This isolates
the issue to a browser extension intercepting the WebSocket handshake,
not application code.
Reproduction
- Use a browser with ad blocker / privacy extension enabled
- Start interview mode, click "I'm ready"
- Speak after mic activates
- Observe: no transcript, no error toast without
canceled handler
Current Mitigation
- Added
recognizer.canceled handler to surface Azure-side errors
via toast instead of failing silently
- Verified working in Incognito / extension-free browser sessions
Suggested Future Fix
- Add a one-time browser compatibility check on interview page load
- Show a warning banner: "If the mic doesn't respond, try disabling
browser extensions or use Incognito mode"
- Consider fallback to backend-proxied audio upload as documented
alternative (see architecture notes on token security trade-offs)
Environment
- Browser: Chrome (issue), Incognito Chrome (works)
- Azure Speech region: Central India
- SDK: microsoft-cognitiveservices-speech-sdk
Description
Azure Speech SDK's WebSocket connection (
wss://*.speech.microsoft.com)fails with status code 1006 ("Unable to contact server") when certain
browser extensions are active — ad blockers, privacy extensions, or
VPN extensions that intercept WebSocket traffic.
Symptoms
canceledevent loggingRoot Cause
Confirmed via Incognito mode test (extensions disabled by default) —
interview flow works end to end with no code changes. This isolates
the issue to a browser extension intercepting the WebSocket handshake,
not application code.
Reproduction
canceledhandlerCurrent Mitigation
recognizer.canceledhandler to surface Azure-side errorsvia toast instead of failing silently
Suggested Future Fix
browser extensions or use Incognito mode"
alternative (see architecture notes on token security trade-offs)
Environment