Zoom: "Unable to connect" error code 5003 — the desktop app can't reach Zoom while the browser can
Hi, it's BlueByte. You click Join, the Zoom desktop app thinks for a few seconds, and a small dialog comes back with Unable to connect and Error code: 5003. The web client in the browser joins the same meeting without complaint, so your account and the meeting are fine. Zoom's own article for 5003 says only that "an issue is preventing a connection between your device and Zoom's servers" — accurate, but it does not tell you which of the four things on a company network that usually means. We'll walk through what 5003 is, why the browser survives when the app does not, the three checks you can run from the affected machine, the fix for each cause, and how to confirm it with Zoom's built-in connectivity tool.
What 5003 means, and why the browser still works
5003 is a client-side connection failure: the app could not complete its connection to Zoom's service. The dialog wording varies by version, but the code is constant, and Zoom's article for 104101 describes it with the identical sentence and the same firewall, proxy, antivirus and ISP steps — 5003's article only adds uninstall and reinstall in front. The browser client survives because it needs only what any website needs — TCP 443 to *.zoom.us and *.zoom.com. The desktop app does more. Zoom's firewall article lists TCP 443, 8801 and 8802 plus UDP 3478, 3479 and 8801–8810 for meetings, and it says the client requires a list of CA hosts for certificate validation — ocsp.digicert.com, crl3.digicert.com, crl4.digicert.com and the Entrust, GoDaddy, Sectigo, UserTrust, Comodo and Starfield equivalents. Anything that touches those extra paths breaks the app and leaves the browser alone.
The four places the connection gets cut
SSL inspection on zoom.us. A proxy that decrypts traffic presents its own certificate instead of Zoom's. Zoom's guidance is explicit — allow zoom.us and *.zoom.us from proxy or SSL inspection — though it never names 5003 as the symptom. That link is our reading from cases where the browser trusts the corporate CA and the app fails, and the issuer probe below is what tells you whether it applies to yours.
A firewall that stops at port 443. The web client works; the app fails as soon as it needs the meeting ports or the CA revocation hosts.
Endpoint software. Antivirus web shields and VPN split tunnels sit in the same place as a proxy. Zoom's 5003 steps say to disable antivirus that might be interfering — after checking firewall and proxy with the network administrator, in that order.
A damaged install. Zoom's first two steps for 5003 are uninstall, then install the latest version. It is the rarest cause on a managed network, but it is what clears the case where one machine fails while every neighbour joins.
Probe it yourself: three checks from the affected machine
First, is TCP 443 to zoom.us open at all? On Windows PowerShell:
Test-NetConnection zoom.us -Port 443TcpTestSucceeded : True means the port is open; False is the firewall, not the proxy. Second, look at who signed the certificate the machine is receiving (macOS or Linux, or Git Bash on Windows):
curl -sv --max-time 10 -o /dev/null https://zoom.us/ 2>&1 | grep -E "issuer|^< HTTP/"If you check it yourself on a clean line you get something like this — the exact intermediate can change, but the organisation should be a public CA, not your company:
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
< HTTP/2 301
An issuer naming your company or your proxy vendor is SSL inspection. Third, run Zoom's own diagnostic from inside the app: press Ctrl+Alt+Shift+D on Windows or Cmd+Option+Shift+D on macOS to open the Network Connectivity Tool. Its General Network test reports the adapter, IP address, proxy and a Service Status for the meetings and chat services, runs an MTR trace, and Export Log gives you a file to attach to a ticket — nothing in it changes settings, so it is safe to run on a user's machine.
Fix 1: take zoom.us out of SSL inspection
Add zoom.us and *.zoom.us to the decryption-bypass list on the proxy or firewall, as Zoom's article recommends, and re-run the curl probe until the issuer is a public CA again. Zoom supports HTTPS/SSL proxies on port 443 and detects the system proxy automatically; if the proxy needs credentials, the app may prompt for a username and password. A proxy that demands an authentication method the app cannot answer surfaces here too, so try the same proxy from the browser and compare.
Fix 2: open the ports and hosts the app needs
Beyond TCP 80/443 and UDP 443 to *.zoom.us and *.zoom.com, allow outbound TCP 443, 8801, 8802 and UDP 3478, 3479, 8801–8810 to the Zoom meeting IP ranges — Zoom publishes them as downloadable text files in the firewall article — and allow the certificate-validation hosts listed there. Zoom updates the ranges, so link the article in your change ticket rather than pasting a snapshot.
Fix 3: endpoint software, then a clean reinstall
Exclude Zoom from the antivirus web shield or, to test, disable it briefly and retry. Disconnect the VPN and try again; if that works, the split-tunnel rule is sending *.zoom.us down a path that blocks it. Only then follow Zoom's first two steps: uninstall Zoom and install the current version from zoom.us/download.
A real case: a new decryption policy, web fine, desktop dead
An IT team switched SSL inspection from selected categories to everything on a Thursday evening. Friday morning every desktop app returned 5003 while the browser client joined fine, so the first hour went into user accounts and reinstalls. The curl probe from one desk settled it in a minute: the issuer was the corporate CA. The team added zoom.us and *.zoom.us to the bypass list, the issuer line flipped back to DigiCert, and the app joined without touching another machine.
Verify with Zoom's tool, then keep it fixed
After the change, the Network Connectivity Tool's Service Status should be clean, and a join to zoom.us/test should reach the test meeting with audio and video. To keep it fixed, add the three probes to your proxy change checklist, keep the link to Zoom's firewall article — not a copy — in the ticket, and re-check after any proxy vendor upgrade.
Codes that look related and how they differ
104101–104118 are the same family: Zoom's article for 104101 uses the identical sentence and the same network steps, minus the reinstall, so run the same checks. If the browser client fails too, the problem is not app-specific — look at DNS and a total block first. And a meeting that connects but has silent or frozen media is not 5003; in our experience that points at the UDP ranges, and the connectivity tool's phone and meeting tests show it.
Next time an app-only Zoom failure lands on your desk, walk these checks back in order: port 443, the issuer line, the connectivity tool — and fix the proxy, not the user's account.
Related questions
Why does the browser join fine while the desktop app gets 5003?
The browser needs only TCP 443 to *.zoom.us and *.zoom.com and trusts your corporate CA. Zoom's firewall article lists extra meeting ports (TCP 8801/8802, UDP 3478/3479/8801–8810), a set of CA hosts the client requires for certificate validation, and asks that zoom.us be exempted from SSL inspection. Any of those cut the app and leave the browser alone.
Should I reinstall Zoom first, as the error article suggests?
Zoom lists uninstall and reinstall as its first two steps, and they are right when one machine fails while its neighbours join. If every user on the network gets 5003 at once, reinstalling changes nothing — run the port and issuer probes first and fix the proxy or firewall.
Our policy is to decrypt all traffic. Can Zoom work anyway?
Zoom's recommendation is to allow zoom.us and *.zoom.us from proxy or SSL inspection, and it states support for HTTPS/SSL proxies via port 443 with automatic proxy detection. Whether your inspection vendor has a Zoom-compatible mode is a question for that vendor; the curl issuer probe tells you immediately whether the app is seeing a public CA or yours.
What does the Network Connectivity Tool show, and can users run it safely?
Ctrl+Alt+Shift+D (Windows) or Cmd+Option+Shift+D (macOS) opens it inside the app. Its General Network test reports adapter, IP, proxy, an MTR trace and a Service Status for meetings and chat; the phone and meeting tests check media. It reads and reports only, and Export Log produces a file for your ticket.
Is 104101 the same problem as 5003?
Zoom's articles for 104101 and 5003 use the identical description — an issue preventing a connection between your device and Zoom's servers — and the same firewall, proxy, antivirus and ISP steps, so treat the 104101–104118 codes with the checks above.
References
- Zoom Support — Zoom error code 5003 (meaning; uninstall/reinstall, firewall and proxy, antivirus, ISP steps)
- Zoom Support — Zoom network firewall or proxy server settings (TCP/UDP ports, *.zoom.us domains, IP range downloads, certificate-validation hosts, exempt zoom.us from SSL inspection, automatic proxy detection)
- Zoom Support — Using the Zoom Network Connectivity Tool (keyboard shortcuts, General Network / Phone / Meeting tests, Export Log)
Haneul Seo
Infrastructure engineer · 10+ years running Linux fleets
More in this category
Gmail rejects your mail with 550-5.7.26: unauthenticated email is not accepted due to the domain's DMARC policy
Gmail enforced the DMARC policy your own domain publishes: the message failed both SPF and DKIM alignment against the header From: domain, so a p=quarantine or p=reject policy turned it into a hard bounce. The Authentication-Results header names the failing check, and three dig queries against your SPF, DMARC and DKIM records name the cause. A near-identical bounce about authenticating with SPF or DKIM is a different problem — Gmail's baseline sender requirements, not your policy.
Microsoft Entra ID: AADSTS50011, the redirect URI specified in the request does not match the redirect URIs configured for the application
Sign-in completes and then Entra ID refuses the last hop, because the redirect_uri your app sent is not a byte-for-byte match for any URI registered on the app. The match is case-sensitive, counts the trailing slash, requires https outside localhost, and treats the port as significant everywhere except localhost. It also splits by platform: web, spa and publicClient are three separate lists, and URIs added to the service principal instead of the application object can disappear. Read the URI and the app ID out of the error, compare them with az ad app show, add the exact string with az ad app update or a Graph PATCH, then wait three to five minutes.
Exchange Online: 535 5.7.139 Authentication unsuccessful, SmtpClientAuthentication is disabled
A scanner, script or app that sends through smtp.office365.com gets 535 5.7.139 because the SMTP AUTH protocol is switched off for the tenant, for that mailbox, or by an authentication policy or security defaults that block Basic authentication. Read the wording (Tenant, Mailbox, or 'did not meet the criteria'), confirm with Get-TransportConfig, Get-CASMailbox and Get-AuthenticationPolicy, then open SMTP AUTH on the one mailbox that needs it rather than tenant-wide. Treat Basic SMTP AUTH as a bridge: Microsoft disables it by default for existing tenants at the end of December 2026, so move the sender to OAuth, High Volume Email or a relay connector.
Slack: "Slack cannot connect" and the grey "Last updated…" banner behind a corporate proxy
Slack loads channels over ordinary HTTPS but delivers new messages over a persistent WebSocket on port 443 to the three wss-*.slack.com hosts Slack names (primary, backup, mobile). When a proxy or firewall passes the HTTP side and blocks the upgrade — most often because SSL decryption is on for the wss hosts, or the allowlist stops at slack.com — the app shows the grey "Last updated…" banner or "Slack cannot connect." while the browser seems fine. Two curl probes from the affected machine show which layer is blocked; exempt the three wss hosts from decryption, allow every domain on my.slack.com/help/urls, and confirm with my.slack.com/help/test.
Word: "The document is locked for editing by another user"
Word found a lock — an owner file — for the document and assumed someone else has it open, so it offers only a read-only copy. Usually no one does: a crash left the lock behind, or a hidden Word process is still holding the file. Confirm which, close every Word instance, delete the stale ~$ owner file, and the document opens for editing again.
OneDrive: sync stuck — paused or a red X on the icon
A red circle with a white cross, or a paused status, on the OneDrive icon means the sync loop has stopped — your files are safe locally and in the cloud, but they aren't moving between them. Read the activity list to see whether it's the client or one bad file, then restart OneDrive, and reset it if a restart isn't enough. Resetting rebuilds the sync links and doesn't delete files.