Skip to content
Cloudzyro
Troubleshooting

ERR_CONNECTION_RESET: what it means and how to fix it

Kofi Agyem

, Founder and CEO, CloudzyroPublished · 5 min read

On this page
  1. 1. The short answer
  2. 2. What you'll see
  3. 3. What causes it
  4. 4. Fixes for visitors, quickest first
  5. 5. Fixes for site owners
  6. 6. A worked example
  7. 7. How to check
  8. 8. Sources

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 peer or Recv 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

  1. Reload once. A single reset can be a blip.
  2. Try another network, such as your phone on mobile data. This tells you whether it's your network.
  3. Turn off your VPN or proxy. On Windows, check Settings, Network and internet, Proxy, and turn off any proxy you didn't set.
  4. Pause antivirus web or HTTPS scanning for a moment. If that fixes it, add an exception for the site or update the software.
  5. Try an incognito window to rule out extensions.
  6. Flush DNS and reset networking (commands below), then restart.
  7. Restart your router.
  8. 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-caches

5. Fixes for site owners

  1. Reproduce it with curl -v from a couple of networks (below). If only some visitors see it, ask for their network and approximate time.
  2. Read the app and proxy logs at the time of the reset. A crash, out-of-memory kill or upstream error usually shows there.
  3. Check firewall and rate-limit rules. A web application firewall or fail2ban-style tool may be blocking real visitors' addresses.
  4. Check size limits for uploads and headers, such as client_max_body_size in nginx. Prefer returning 413 Content Too Large to dropping the connection.
  5. 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.
  6. Test TLS with openssl s_client to 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.

  1. The owner reproduces it with curl -v -F "file=@photo.jpg" https://shop.example.com/upload using a 12 MB photo. curl prints Connection reset by peer partway through the upload.
  2. A 500 KB photo uploads without trouble, so it's about size, not the network.
  3. The nginx error log shows client intended to send too large body. The default client_max_body_size is 1 MB.
  4. 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.

8. Sources

Questions

What does ERR_CONNECTION_RESET mean?
The connection to the website was opened and then abruptly closed with a TCP reset, before the page arrived. Something between you and the site, or the site's server itself, cut it off.
Is ERR_CONNECTION_RESET my fault?
Often it's on your side: a VPN, proxy, antivirus, company firewall or network filter resetting connections. If the site fails the same way on every network, the server or its firewall is the cause.
Why do I get ERR_CONNECTION_RESET on only one site?
Either something filters that site on your network, such as a firewall, school or work filter, or the site's own server or firewall is resetting your connection, sometimes because it has blocked your IP address.
How do I fix ERR_CONNECTION_RESET on Windows?
Turn off any VPN and proxy, pause antivirus web scanning briefly, then run netsh winsock reset and netsh int ip reset in an administrator Command Prompt and restart. Also check Settings, Network and internet, Proxy.
What's the difference between connection reset and connection refused?
Refused means the server rejected the connection before it opened, usually because nothing is listening on that port. Reset means a connection was open, or opening, and was then torn down.
Can a large upload cause a connection reset?
Yes. If a server or proxy has a request size limit, it may close the connection while you're still sending, which the browser reports as a reset. The site owner needs to raise the limit or show a clear error.

Put your site online free

From your AI tool, Git or a zip, with every version kept.