ERR_CONNECTION_CLOSED: Why Chrome Drops Connections

Avatar photo
Featured image for article 20360

ERR_CONNECTION_CLOSED appears in Chrome when the server closed the TCP connection before sending a complete HTTP response. Unlike ERR_CONNECTION_RESET, which involves a forceful RST packet, ERR_CONNECTION_CLOSED means the server sent a FIN packet, which is the polite TCP teardown signal. The distinction is that the server did not crash or get interrupted; it deliberately closed the connection, just before the response was complete or sometimes immediately after receiving your request.

The most frequent causes are a server that ran out of available connections and closed yours to free resources, antivirus software terminating the connection after SSL inspection, a firewall or proxy that reached its connection timeout and closed an idle connection, or a server-side error that caused the application to terminate the connection before sending any response body. On the client side, a corrupted Chrome profile or a misbehaving extension can also trigger ERR_CONNECTION_CLOSED by sending a malformed request.

What Causes ERR_CONNECTION_CLOSED

Server connection limits are a primary cause. Web servers like Apache and Nginx have a maximum number of simultaneous connections they can handle. When a server reaches this limit, it starts closing incoming connections immediately after accepting them, sending a FIN before any response data. This produces ERR_CONNECTION_CLOSED on your end. The behavior is identical from the browser’s perspective regardless of whether the server is healthy but busy, or crashing under load.

Antivirus SSL inspection creates a local version of this problem. When your antivirus intercepts an HTTPS connection for scanning, it acts as a proxy between Chrome and the server. If the inspection process fails or times out, the antivirus closes the connection on its end, which Chrome sees as ERR_CONNECTION_CLOSED. The actual remote server may be perfectly healthy; the closure happened locally.

Browser profile corruption is a client-side cause that is easy to miss. Chrome stores connection state, SSL session tickets, and socket data in its profile. If this data becomes corrupted, Chrome may send requests with invalid headers or malformed SSL data that cause the server to close the connection immediately after receiving it. Testing in a fresh Chrome profile or in incognito mode identifies this quickly.

Clear Cache and Fully Restart Chrome

Before anything else, close Chrome completely. Open Task Manager (Ctrl+Shift+Esc), find all Chrome processes, and end them all. Then reopen Chrome and press Ctrl+Shift+Delete, select All time, check Cached images and files, Cookies and other site data, and Hosted app data, then click Clear data.

A full Chrome restart clears connection state stored in memory, including any stuck socket connections that may have been sending malformed requests to the server. Chrome’s socket pool can hold open connections in invalid states, and a full restart clears these. If ERR_CONNECTION_CLOSED disappears after this, the problem was Chrome’s in-memory connection state.

Disable Browser Extensions

Extensions that modify HTTP request headers, inject content into pages, or filter network traffic can corrupt the request stream. When Chrome sends a malformed request due to extension interference, servers often respond by closing the connection immediately, producing ERR_CONNECTION_CLOSED. Navigate to chrome://extensions/ and toggle all extensions off. Reload the affected page.

If the page loads with all extensions disabled, re-enable them one at a time, reloading the page after each one, until you find the conflict. Extensions that are particularly likely to cause this include VPN extensions, privacy filters, content blockers with deep request modification rules, and developer tools that proxy requests.

Testing in Edge and Firefox

Test the affected URL in Microsoft Edge or Firefox. Both browsers use different network stacks and extension ecosystems. If the page loads in Edge or Firefox, Chrome’s profile, extensions, or proxy settings are the cause. If it fails in all browsers, the problem is server-side or network-level. In this case, flush DNS and reset the network stack before suspecting the server.

Flush DNS Cache

Stale DNS entries can connect you to an IP address that is no longer serving the website. The server at that IP may close connections immediately because it does not recognize the Host header in your request (which happens when a domain has moved to a new IP and the DNS change has not yet propagated to your resolver). Open Command Prompt as administrator and run ipconfig /flushdns.

Also clear Chrome’s internal DNS cache at chrome://net-internals/#dns and click Clear host cache. Then visit chrome://net-internals/#sockets and click Flush socket pools to close all existing Chrome socket connections. This forces Chrome to open fresh connections to the correct server endpoints.

Disable Antivirus SSL Inspection

Security software that scans HTTPS traffic inserts itself between Chrome and the server. If the inspection process is slow, encounters an incompatible TLS session, or fails on a specific server’s certificate, it closes the connection on its side. Chrome receives ERR_CONNECTION_CLOSED because its direct connection partner (the antivirus proxy) closed the connection, not the actual remote server.

Find the SSL/HTTPS inspection or Web Shield setting in your antivirus software and disable it. Test the page. If it loads, you can either keep HTTPS scanning disabled or add the specific domain to the exclusion list in your antivirus settings. Avast, Kaspersky, Bitdefender, and ESET all support per-domain exclusions in their HTTPS inspection modules.

Reset the Network Stack

Open Command Prompt as administrator and run netsh winsock reset followed by netsh int ip reset. Restart your computer. A corrupted Winsock catalog or TCP/IP stack can cause Chrome’s socket connections to behave erratically, resulting in premature connection closures. These commands restore all Windows networking components to their default configurations.

After the restart, run ipconfig /flushdns one more time and test the site in a fresh Chrome window. In most cases where Winsock corruption was the cause, ERR_CONNECTION_CLOSED resolves immediately after the network stack reset and restart.

Advanced Fix: Check Server Connection Limits

If you manage the affected website and ERR_CONNECTION_CLOSED is being reported by multiple users, the issue is the server’s maximum connection limit. For Nginx, check the worker_connections directive in your nginx.conf file and increase it. The default is 1024; for busy servers, 4096 or higher is appropriate. For Apache, check MaxRequestWorkers in your MPM configuration. Restart the web server after making changes.

Also check if a CDN or load balancer in front of your server has connection limits. Cloudflare enforces connection limits at the plan level, and origin servers with keep-alive issues can cause Cloudflare to close connections to the origin, which propagates as ERR_CONNECTION_CLOSED to the end user.

Frequently Asked Questions

What is the difference between ERR_CONNECTION_CLOSED and ERR_CONNECTION_RESET?

ERR_CONNECTION_CLOSED means the server sent a normal FIN packet to close the connection, which is the standard TCP closure signal. ERR_CONNECTION_RESET means a RST packet was sent, which is a forceful abnormal termination. Closed suggests the server made a deliberate decision to end the connection, often due to hitting a connection limit or timeout. Reset suggests a crash, firewall interference, or protocol error forced the connection shut abruptly.

Why does ERR_CONNECTION_CLOSED happen on only one website?

When ERR_CONNECTION_CLOSED affects a single site, the server itself is the most likely cause: it may be overloaded, configured to close connections from certain IP ranges, or running software with a bug that closes connections for specific request patterns. Test with a VPN to change your IP and confirm whether IP-based filtering is involved. Check if the same site works on mobile data, which uses a different IP from a different ISP.

Can ERR_CONNECTION_CLOSED be caused by my internet connection?

Rarely, but possible. If your network connection drops briefly during a page load, the OS closes the TCP socket and Chrome reports ERR_CONNECTION_CLOSED. This is most common on unstable WiFi connections. Switching to ethernet and testing eliminates wireless instability as a variable. Run a ping test to check for packet loss: open Command Prompt and run ping google.com -n 30 and check for any Request timed out lines.

How is ERR_CONNECTION_CLOSED different from a 503 error?

ERR_CONNECTION_CLOSED happens at the TCP level before any HTTP response is sent. A 503 Service Unavailable is an HTTP response: the server accepted the connection, processed the request, and then returned a 503 status code. Both indicate the server cannot service the request, but 503 means the server responded while ERR_CONNECTION_CLOSED means the server dropped the connection before responding at all.

If your connection is being reset rather than closed gracefully, the ERR_CONNECTION_RESET guide covers that failure mode. For connections that never get established, see the article on ERR_CONNECTION_REFUSED. If the issue is slow DNS causing the connection to time out before it closes, the slow DNS lookup guide explains how to speed up resolution and prevent timeouts.

Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
Budget smartphone camera taking high quality photo

Phones Under $300 With Flagship Cameras: 5 Budget Models That Shoot Like Flagships

Next Post
Robot vacuum cleaning dog hair from hardwood floor

Robot Vacuums for Dog Hair: 5 Models Tested on Short, Long, and Double Coats

Related Posts