ERR_CONNECTION_RESET: what it means and how to fix it
Kofi Agyem, Founder and CEO, CloudzyroPublished · 5 min read
On this page
ERR_CONNECTION_RESET means the connection to a site was cut off mid-way. The usual causes, from VPNs and firewalls to servers, and how to fix each one.
1. The short answer
ERR_CONNECTION_RESET means the connection to the website was cut off abruptly, before the page finished arriving. In network terms, your browser received a TCP reset (an RST packet): a message that says drop this connection now. Either the site's server sent it, or something in between did, such as a firewall, VPN, antivirus or your internet provider's filter.
Start by testing another network. If the site works there, the cause is on your device or network. If it fails everywhere, the site's server or firewall is resetting connections. It's one of the This site can't be reached family.
2. What you'll see
- Chrome: This site can't be reached. The connection was reset. ERR_CONNECTION_RESET.
- Edge: Hmm... can't reach this page, with ERR_CONNECTION_RESET.
- Firefox: The connection was reset. The connection to the server was reset while the page was loading.
- Safari: Safari can't open the page because the server unexpectedly dropped the connection.
- curl:
Connection reset by peerorRecv failure.
Chrome has close relatives: ERR_CONNECTION_CLOSED (the server closed the connection without sending anything) and ERR_EMPTY_RESPONSE (it closed after accepting the request but sent no data). The causes overlap.
3. What causes it
On your side:
- A VPN or proxy dropping or resetting connections, especially a free or overloaded one.
- Antivirus or security software that scans HTTPS traffic and resets connections it doesn't like.
- A work, school or public Wi-Fi filter that blocks the site by resetting the connection.
- Internet provider or country-level filtering, which commonly uses resets to block sites.
- MTU problems, where large packets can't get through a VPN or tunnel and the connection stalls or resets.
- A broken network stack on Windows, often after uninstalling VPN or security software.
On the site's side:
- The app or web server crashed mid-request.
- A firewall or rate limiter blocked your IP address after too many requests.
- A size limit: an upload or headers bigger than the server accepts, so it closes the connection.
- Timeouts that don't match between a load balancer and the app behind it, so idle connections are closed from one side while the other still uses them.
- A TLS problem severe enough that the server aborts the handshake instead of sending a proper alert.
4. Fixes for visitors, quickest first
- Reload once. A single reset can be a blip.
- Try another network, such as your phone on mobile data. This tells you whether it's your network.
- Turn off your VPN or proxy. On Windows, check Settings, Network and internet, Proxy, and turn off any proxy you didn't set.
- Pause antivirus web or HTTPS scanning for a moment. If that fixes it, add an exception for the site or update the software.
- Try an incognito window to rule out extensions.
- Flush DNS and reset networking (commands below), then restart.
- Restart your router.
- If it works on other networks but never on yours, your network or provider is probably filtering the site.
# Windows (administrator Command Prompt), then restart
ipconfig /flushdns
netsh winsock reset
netsh int ip reset
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Linux with systemd-resolved
resolvectl flush-caches5. Fixes for site owners
- Reproduce it with
curl -vfrom a couple of networks (below). If only some visitors see it, ask for their network and approximate time. - Read the app and proxy logs at the time of the reset. A crash, out-of-memory kill or upstream error usually shows there.
- Check firewall and rate-limit rules. A web application firewall or fail2ban-style tool may be blocking real visitors' addresses.
- Check size limits for uploads and headers, such as
client_max_body_sizein nginx. Prefer returning413 Content Too Largeto dropping the connection. - Line up keep-alive timeouts. The app's idle timeout should be longer than the load balancer's, so the app never closes a connection the balancer is about to reuse.
- Test TLS with
openssl s_clientto be sure the handshake completes for modern clients.
On Cloudzyro Sites & Apps, every site sits behind Cloudflare. If your app crashes or is restarted mid-request, a visitor may see an error from Cloudflare rather than a reset. A new version only goes live once it starts and answers, and the previous version keeps serving until then. If you see resets only on your own domain while the cloudzyro.app address works, check the domain's records in the site's Domains tab.
6. A worked example
A small shop's customers report ERR_CONNECTION_RESET, but only when they upload product photos from their phones. Browsing works fine.
- The owner reproduces it with
curl -v -F "file=@photo.jpg" https://shop.example.com/uploadusing a 12 MB photo. curl printsConnection reset by peerpartway through the upload. - A 500 KB photo uploads without trouble, so it's about size, not the network.
- The nginx error log shows
client intended to send too large body. The defaultclient_max_body_sizeis 1 MB. - They raise it to 20 MB, reload nginx, and add a size check in the upload form so people see a clear message for anything larger.
Size limits are a common hidden cause, because modern phone photos are often several megabytes and many servers ship with small defaults.
7. How to check
# See exactly where the connection drops
curl -v https://www.example.com/
# Is it TLS? Watch whether the handshake completes
openssl s_client -connect www.example.com:443 -servername www.example.com
# Does it happen without HTTPS too? (only if the site serves port 80)
curl -v http://www.example.com/If curl prints Connection reset by peer before the TLS handshake finishes, the reset comes from a firewall, filter or the server's TLS setup. If it's after the request is sent, the app or a proxy in front of it is closing the connection, and its logs will say more. A reset that happens on one network but not another points to that network.