ERR_CONNECTION_CLOSED: What It Means & How to Fix It

Key takeaway

ERR_CONNECTION_CLOSED (Chromium error -100) means the other end of the connection hung up with a normal TCP close (FIN) before the page arrived. On HTTPS sites it usually happens during the TLS handshake, or, on HTTP/2 sites, right after the request: a VPN, proxy, antivirus scanner or network filter hung up, or the server or a proxy in front of it closed the connection (no setup for that hostname, old TLS settings, connection limits). Test on mobile data to see which side it is, then turn off VPN, proxy and HTTPS scanning. Site owners should check the handshake with openssl s_client.

Check it now

Chrome error page: example.com unexpectedly closed the connection, ERR_CONNECTION_CLOSED, with fixes
Chrome error page: example.com unexpectedly closed the connection, ERR_CONNECTION_CLOSED, with fixes
Start reading
  1. What Is ERR_CONNECTION_CLOSED?
  2. Where the Close Happens: Usually the HTTPS Handshake
  3. What Causes ERR_CONNECTION_CLOSED?
  4. Fix 1: Try Another Network to Find the Culprit
  5. Fix 2: Turn Off VPN and Proxy
  6. Fix 3: Pause Antivirus HTTPS Scanning
  7. Fix 4: Change DNS to Rule Out Filtering
  8. Fix 5: Flush Socket Pools and Clear Site Data
  9. Fix 6: Reset the Network Stack and Restart the Router
  10. Fix ERR_CONNECTION_CLOSED on Android and iPhone
  11. For Website Owners: Why Your Server Hangs Up
  12. ERR_CONNECTION_CLOSED vs Reset vs Empty Response vs SSL Errors
  13. Frequently Asked Questions

What Is ERR_CONNECTION_CLOSED?

ERR_CONNECTION_CLOSED is the Chrome and Edge error that reads "This site can't be reached. example.com unexpectedly closed the connection." In Chromium it is net error -100, defined as "A connection was closed (corresponding to a TCP FIN)." (net_error_list.h)

A FIN is the normal way to end a TCP connection, unlike a reset (RST), which aborts it: one side closed its end, on purpose or because the program holding it stopped. The problem is the timing. The other side hung up before the browser got the page, so there was nothing to show.

Something chose to end your connection early. It could be the website's server, a CDN in front of it, a filter on your network, or software on your own computer. The fixes below show you which.

Does the site's HTTPS handshake work from outside?

Where the Close Happens: Usually the HTTPS Handshake

Chromium's networking code tells us where to look. When a connection ends during the TLS (HTTPS) handshake, the encryption layer turns that end-of-connection into ERR_CONNECTION_CLOSED. After the handshake it depends on the protocol: on HTTP/1.1, a fresh connection that gets its request through and is then closed without an answer shows ERR_EMPTY_RESPONSE; on HTTP/2 the same close shows ERR_CONNECTION_CLOSED.

Chrome also retries a request automatically when an old, reused connection closes underneath it, so you rarely see the error from that. As a result, an ERR_CONNECTION_CLOSED page on an HTTPS site means something hung up while the secure connection was being set up, or, on an HTTP/2 site, right after the request was sent. That points to whatever handles TLS or HTTP along the path: your antivirus's HTTPS scanner, a VPN or proxy, a filtering box on your network, the site's CDN, or the web server itself.

What Causes ERR_CONNECTION_CLOSED?

CauseSideClue
VPN or proxy ending connectionsYouEvery HTTPS site fails, or only with the VPN on
Antivirus HTTPS scanningYouFails in every browser on that computer; works after pausing web protection
Network filter blocking the domain (school, work, ISP)NetworkOne site fails on one network only
Server or proxy has no TLS setup for that hostname (SNI)WebsiteFails for everyone; often only www or only non-www
Old or strict TLS settings on the serverWebsiteFails in some browsers or devices, not others
Server or CDN connection limits, DDoS protectionWebsiteFails under load or from certain countries
Corrupted network settingsYouSeveral sites fail on one device only

Fix 1: Try Another Network to Find the Culprit

Open the page on your phone using mobile data (Wi-Fi off), or on another computer on a different network.

  • Works elsewhere: the close comes from your device or network. Continue with Fixes 2 to 6.
  • Fails everywhere: the website's server or CDN is hanging up. Only the owner can fix that. If it's your site, skip to the website owners section below.
  • Check the certificate from outside: DNS Robot's SSL Checker connects to the site and shows whether the HTTPS handshake succeeds and which certificate is served. (For sites on Cloudflare it shows the certificate from public CT logs, because Cloudflare refuses connections from our main checker.)

Fix 2: Turn Off VPN and Proxy

VPN servers and proxies handle every connection you make, and when they're overloaded or blocked they often end connections at the handshake. Disconnect the VPN completely, then check for a proxy:

  • Windows 11: Settings → Network & internet → Proxy. Under Manual proxy setup, select Edit next to Use a proxy server, turn it off and select Save. If Use setup script is on and your workplace didn't set it, turn that off too.
  • macOS: System Settings → Network → your connection → Details… → Proxies → turn them off.
  • Browser extensions that act as a VPN or proxy count too. Test in an Incognito window, where extensions are off by default.

Fix 3: Pause Antivirus HTTPS Scanning

Security suites that inspect encrypted traffic sit in the middle of every HTTPS handshake. If the scanner can't negotiate with a site, for example because of a newer TLS feature or an unusual certificate, it often just closes the connection.

Look for a setting named HTTPS scanning, Web Shield, SSL/TLS protocol filtering or Scan encrypted connections, turn only that off, and reload. If the page loads, add the site as an exclusion and turn scanning back on. Updating the antivirus often fixes it permanently.

Fix 4: Change DNS to Rule Out Filtering

Some ISPs and network filters block sites by pointing the domain at their own server, which may then hang up on HTTPS connections. Compare what your computer gets (nslookup example.com) with DNS Robot's DNS Lookup: big sites on CDNs can return different addresses in different places, but an answer such as 0.0.0.0, a private address, or an address belonging to your ISP or filter means your resolver is redirecting you.

Switch to a public resolver such as Cloudflare (1.1.1.1), Google (8.8.8.8) or Quad9 (9.9.9.9), then flush your DNS cache and try again. If your network also blocks encrypted DNS, see this network is blocking encrypted DNS traffic.

Fix 5: Flush Socket Pools and Clear Site Data

  • Chrome socket pools: open chrome://net-internals/#sockets and click Flush socket pools, so Chrome stops reusing connections that may be stale.
  • Site data: click View site information at the left of the address bar → Cookies and site data → Manage on-device site data → delete, so cookies and cached data for that site start fresh.
  • Update the browser: go to chrome://settings/help. Older builds can fail handshakes with servers that use newer TLS features.
  • Skip "Clear SSL state": the button in Windows Internet Options clears the TLS cache that Windows' own apps use. Chrome and Edge keep their own, so it does nothing for this error.

Fix 6: Reset the Network Stack and Restart the Router

If several sites fail on one device only, reset its network configuration. Restart the router too, which clears its connection table. On Windows, run these in an administrator Command Prompt, then restart:

powershell
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns

Windows 11 also has Settings → Network & internet → Advanced network settings → Network reset, which reinstalls the network adapters. On a Mac, remove the Wi-Fi network from System Settings → Wi-Fi and join it again.

Fix ERR_CONNECTION_CLOSED on Android and iPhone

  • Switch networks: Wi-Fi to mobile data or the other way round, to find out whether a network filter is involved.
  • Turn off VPN, ad-blocking and "security" apps. Many of them route traffic through a local VPN and inspect it.
  • Android Private DNS: Settings → Network & internet → Private DNS → Automatic. See the Private DNS guide for what each option does.
  • Update Chrome or Safari through the app store, and update the operating system if it's several versions behind.
  • Reset network settings: on iPhone, Settings → General → Transfer or Reset iPhone → Reset → Reset Network Settings. On Android, Settings → System → Reset options → Reset Bluetooth & Wi-Fi (and Reset Mobile Network Settings if mobile data also fails).

For Website Owners: Why Your Server Hangs Up

If visitors on many networks get ERR_CONNECTION_CLOSED, test the TLS handshake yourself from a machine outside your network. openssl s_client shows exactly where it stops:

bash
# Full handshake with SNI (the hostname visitors use)
openssl s_client -connect example.com:443 -servername example.com </dev/null

# Good: a "Certificate chain" block and "New, TLSv1.3, Cipher is ..." (or TLSv1.2)
# Bad: "no peer certificate available", "Cipher is (NONE)" and "SSL handshake has read 0 bytes",
#      often after "unexpected eof while reading" (OpenSSL 3) or "read:errno=0" (macOS's built-in openssl)
#      = the server (or something in front of it) closed the handshake
# "Verify return code: 0 (ok)" and "Protocol: TLSv1.3" appear even when it fails, so don't rely on them

# Test a specific protocol version
openssl s_client -connect example.com:443 -servername example.com -tls1_2 </dev/null

Then check these, in order:

  • SNI and certificates: every hostname visitors use, both example.com and www.example.com, needs a server_name entry and a certificate that covers it. In nginx a name with no server block gets the default server's certificate (a name-mismatch warning, not this error), and ssl_reject_handshake on gives ERR_SSL_UNRECOGNIZED_NAME_ALERT. A bare close for one name can come from a proxy or load balancer in front, such as an Envoy-based gateway with no route for it.
  • Protocols: serve TLSv1.2 and TLSv1.3. Very old configurations that offer only TLS 1.0/1.1, or unusual cipher lists, fail with current browsers. The SSL Checker shows the certificate and chain visitors receive.
  • Connection limits: if nginx logs worker_connections are not enough, or a firewall connlimit or DDoS rule kicks in, new connections are dropped or closed under load. Raise the limits or find the traffic source.
  • CDN and WAF: check the CDN's security events for the affected visitors. Bot protection and geo-blocking rules can close connections from whole regions.
  • Logs: look in the web server's error log for SSL_do_handshake() failed lines around the time of the reports. nginx logs most client-side handshake failures at the info level, so with the default error level you may see nothing: set error_log /var/log/nginx/error.log info; briefly while you investigate.

ERR_CONNECTION_CLOSED vs Reset vs Empty Response vs SSL Errors

ErrorCodeWhat happened
ERR_CONNECTION_CLOSED-100Normal close (FIN) before the page arrived: during the HTTPS handshake, or after the request on HTTP/2
ERR_CONNECTION_RESET-101Abrupt cut (RST) of an open connection
ERR_EMPTY_RESPONSE-324Request sent over HTTP/1.1, then closed with zero bytes back
ERR_SSL_PROTOCOL_ERROR-107The TLS handshake broke protocol rules
ERR_SSL_VERSION_OR_CIPHER_MISMATCH-113No TLS version or cipher in common

Our related guides: ERR_CONNECTION_RESET, ERR_SSL_PROTOCOL_ERROR, ERR_SSL_VERSION_OR_CIPHER_MISMATCH and ERR_CONNECTION_REFUSED.

If the request got through and the server then sent nothing, see ERR_EMPTY_RESPONSE.

Does the site's HTTPS handshake work from outside?

DNS Robot's free SSL Checker connects to any site and shows the certificate, chain and expiry. If it connects for us but closes for you, the cause is on your side, or in a rule that targets your network or region. (Sites on Cloudflare refuse our main checker, so for them it shows the certificate from public CT logs instead.)

Sources

  1. net_error_list.h (CONNECTION_CLOSED -100, EMPTY_RESPONSE -324), Chromium
  2. openssl-s_client, OpenSSL

Frequently Asked Questions

What does ERR_CONNECTION_CLOSED mean?

It means the server, or something between you and it, ended the connection with a normal TCP close (FIN) before your browser received the page. In Chromium it is net error -100. On HTTPS sites it usually happens during the TLS handshake.

Is ERR_CONNECTION_CLOSED caused by me or the website?

Open the site on mobile data or another network. If it works there, the cause is on your side: VPN, proxy, antivirus HTTPS scanning, DNS filtering, or network settings. If it fails everywhere, the website's server or CDN is closing the connection, and only the owner can fix it.

What is the difference between ERR_CONNECTION_CLOSED and ERR_CONNECTION_RESET?

Both mean the connection ended early. CLOSED (-100) is a normal hang-up with a TCP FIN, usually during the HTTPS handshake. RESET (-101) is an abrupt cut with a TCP RST, often from security software, a filter or a crashed server process. The fixes overlap.

What is the difference between ERR_CONNECTION_CLOSED and ERR_EMPTY_RESPONSE?

ERR_EMPTY_RESPONSE means the browser sent its request on a fresh HTTP/1.1 connection and the server closed it without sending any data. ERR_CONNECTION_CLOSED means the connection ended during the secure handshake, or, on an HTTP/2 connection, at any point before the response arrived.

Can antivirus cause ERR_CONNECTION_CLOSED?

Yes. Antivirus products that scan HTTPS traffic take part in every secure handshake, and when they can't handle a site they often close the connection. Turn off only the HTTPS-scanning feature to test, then exclude the site and turn it back on.

How do I fix ERR_CONNECTION_CLOSED on Android?

Switch between Wi-Fi and mobile data, turn off VPN and ad-blocking apps, set Private DNS to Automatic, update Chrome, and if it continues, reset Bluetooth & Wi-Fi (and mobile network) settings from Settings → System → Reset options.

Why does ERR_CONNECTION_CLOSED happen on only one website?

Either your network filters that site (a school, work or ISP block), your antivirus can't handle it, or the site's server or a proxy in front of it closes your connection, for example because it has no TLS setup for the hostname you typed. Try www and non-www versions, another network, and an external SSL checker.

How do I fix ERR_CONNECTION_CLOSED on my website?

Test the handshake from outside with openssl s_client -connect yourdomain:443 -servername yourdomain and look for a certificate chain and a cipher, not just "Verify return code: 0". Make sure every hostname has a server_name entry and a matching certificate, serve TLS 1.2 and 1.3, check connection limits such as nginx worker_connections, and review CDN or WAF rules that might close connections for some visitors.

Does clearing the cache fix ERR_CONNECTION_CLOSED?

Occasionally. Flushing Chrome's socket pools and clearing the site's data removes stale connections and cookies. But most cases come from VPNs, security software, network filters or the server's TLS setup, which browser data doesn't affect.

About the author

Shaik Vahid

Founder of DNS Robot. Vahid spent years in web hosting support fixing domains, DNS records, SSL certificates and email delivery for customers. He builds DNS Robot's tools and writes these guides from the errors people actually hit.

SSL Certificate Check

Verify SSL certificate validity and security details