Organised by symptom — search for what your users report, not what you think the cause is. Each entry links to the relevant guide for the full context.Documentation Index
Fetch the complete documentation index at: https://docs.apifycloud.io/llms.txt
Use this file to discover all available pages before exploring further.
The meeting page doesn’t load
Page is served over HTTP
Page is served over HTTP
Invalid or expired meeting link
Invalid or expired meeting link
Ad blocker or privacy extension
Ad blocker or privacy extension
In-app webview (WhatsApp, Instagram, etc.)
In-app webview (WhatsApp, Instagram, etc.)
Camera or microphone won’t start
Permission was denied in a previous visit
Permission was denied in a previous visit
denied state indefinitely per origin. The
user has to reset it from the browser’s site-settings menu (the
lock icon next to the URL). Pages can’t programmatically
re-prompt after a denial. See
Permissions.Operating system has the browser blocked
Operating system has the browser blocked
Iframe missing `allow=camera; microphone`
Iframe missing `allow=camera; microphone`
<iframe> must
explicitly allow the features. See
Permissions — Embedding.Device in use by another app
Device in use by another app
No device connected
No device connected
Joined but no audio / video from the other side
The other participant hasn't unmuted
The other participant hasn't unmuted
Autoplay policy blocked audio
Autoplay policy blocked audio
Wrong output device selected
Wrong output device selected
UDP blocked by the network
UDP blocked by the network
Call connects but audio or video is poor
Weak Wi-Fi signal or congested AP
Weak Wi-Fi signal or congested AP
Competing traffic on the same link
Competing traffic on the same link
VPN tunnelling real-time media
VPN tunnelling real-time media
Bluetooth headset
Bluetooth headset
Agent side hardware
Agent side hardware
Call drops mid-meeting
Network switched (Wi-Fi ↔ cellular)
Network switched (Wi-Fi ↔ cellular)
Packet loss spike
Packet loss spike
Computer went to sleep
Computer went to sleep
Browser tab was backgrounded for too long
Browser tab was backgrounded for too long
Guest can’t join — “waiting for host”
Host hasn't joined yet
Host hasn't joined yet
Preset denies guests when no host is present
Preset denies guests when no host is present
Max wait attempts exceeded
Max wait attempts exceeded
Recording doesn’t start
Preset doesn't have Record on start
Preset doesn't have Record on start
Record on start flag.
See Recording.Host doesn't have the recording control
Host doesn't have the recording control
Meeting ended before recording was started
Meeting ended before recording was started
Record on start for
flows where recording is mandatory.Virtual background doesn’t work
Device is too underpowered
Device is too underpowered
Background image missing from the preset
Background image missing from the preset
Browser is out of date
Browser is out of date
Meeting link works for one person but not another
Different networks with different firewall rules
Different networks with different firewall rules
One browser has denied camera or microphone
One browser has denied camera or microphone
Role mismatch
Role mismatch
Embedding in an iframe doesn’t work
Missing `allow` attributes
Missing `allow` attributes
<iframe> must declare allow="camera; microphone; autoplay; display-capture". See
Permissions — Embedding.Parent site CSP blocks the frame
Parent site CSP blocks the frame
frame-src or frame-ancestors rules can
prevent the meeting iframe from rendering. Review the parent
page’s Content Security Policy.Nested iframes without delegated permissions
Nested iframes without delegated permissions
camera and
microphone permissions.Advanced diagnostics
When the symptom-based entries above don’t land, the browser itself exposes everything needed to diagnose a bad meeting. Four tools cover almost every case.1. Browser console (F12 → Console)
Open DevTools on the page that shows the problem and look for
errors thrown around the moment the meeting misbehaves.
Common names to search for:
| Error | What it means |
|---|---|
NotAllowedError | Camera or microphone permission was denied — in the browser, the OS, or an iframe that didn’t declare allow. |
NotFoundError | The browser doesn’t see any camera / microphone. Device unplugged, disabled in BIOS, or OS is hiding it. |
NotReadableError | Another app is holding the device. Close the other app (see “Camera or microphone won’t start” above). |
OverconstrainedError | The requested resolution or device id isn’t available on this machine. |
Refused to frame … | Parent site’s Content Security Policy is blocking the iframe. |
Permissions Policy violation | The outer page didn’t delegate camera / microphone to the meeting iframe. |
WebSocket connection … failed | Signalling can’t reach us — usually firewall, VPN, or a proxy breaking WebSockets. |
2. Network tab (F12 → Network)
Filter by WS (WebSocket) and Fetch/XHR. Things to look at:
- The HTTP request that loads the meeting — status should be
200. A401/403means the meeting id or auth is wrong, a404means the meeting doesn’t exist or was cancelled. - The WebSocket connection — should move to
101 Switching Protocolsand stay open. A pending or immediately-closed socket is usually firewall / proxy interference. - Blocked requests (highlighted red with
blocked:in the status). Ad blockers, privacy extensions, and corporate proxies sometimes block third-party origins.
3. Real-time stats
Chrome and Edge ship a built-in page that shows the live media stats for every active call on the tab:| Field | What it tells you |
|---|---|
iceConnectionState | If it never leaves checking, the browser can’t reach our media servers. failed / disconnected during a call = network interruption. |
packetsLost / packetsReceived | Rising packetsLost with a low receive rate → packet loss. This is a network problem, not the app. |
jitter | Consistently high → unstable latency on the path (congested Wi-Fi, overloaded cellular). |
framesReceived / framesDecoded at 0 | You aren’t getting video from the other side. Check whether the other participant’s camera is actually on. |
bytesReceived at 0 for audio | Nothing is reaching the browser at all — firewall or no media path. |
4. What to capture before escalating
When opening a support ticket for a call that failed, attaching the following dramatically shortens resolution time:- App ID and Meeting ID / call ID
- Timestamp of the problem (with timezone)
- Browser name and version, OS and version
- Network type — home Wi-Fi, mobile, office, VPN
- Screenshot of the browser console (errors, not just the messages area)
- Network tab export (
.harfile) — right-click in the Network tab → Save all as HAR chrome://webrtc-internalsdump — the Download PC stats button — captured while the call was active, not after it ended- Steps to reproduce