Skip to content
RU

ERR_CONNECTION_RESET: The Connection Was Reset. How to Fix

What it means: A TCP reset packet, from the server or a device in between, tore down an established connection.

  1. Try mobile data or another network
  2. Disable VPN, proxy or antivirus HTTPS scanning
  3. Turn on secure DNS in Chrome
  4. Owner: capture who sends the RST
  5. Owner: check firewall and fail2ban rules

Test your URL now

Pings your host from our server, so you see whether it answers from outside your network.

Check your host & ports →

What ERR_CONNECTION_RESET means

net::ERR_CONNECTION_RESET is Chromium error -101: «A connection was reset (corresponding to a TCP RST)» (net_error_list.h). The TCP connection was established, then something sent a reset packet that tore it down: during the TLS handshake, while the request was being sent, or while the response was arriving. Chromium also maps the operating system's ECONNRESET and broken-pipe errors to this code.

The RST does not have to come from the server. Any device in the path that can see the connection can inject one: a firewall, a corporate proxy, an antivirus that scans HTTPS, or an ISP filter that reads the host name in the TLS ClientHello. It is not a refused connection (an RST in answer to the very first SYN gives ERR_CONNECTION_REFUSED), not a timeout, and not a certificate error.

Causes in Chrome, Edge, Firefox and Safari

BrowserWhat you seeMost common trigger
Chrome, Edge«This site can't be reached» and «The connection was reset.»A firewall, filter or security software in the path resets the connection, often right after the TLS ClientHello
Firefox«The connection was reset»The same RST
SafariIts own connection-error message; no Chrome codeThe same RST
curlConnection reset by peerThe same RST; useful to test from the server's side

If the error appears on one network but not another (home Wi-Fi fails, mobile data works), the reset is coming from that network: its firewall, proxy, or filtering by the ISP. If it appears on one computer only, look at that machine's antivirus, VPN client or proxy settings. If it appears everywhere, the server or its hosting firewall is sending the reset.

Server-side resets have a short list of causes: a firewall rule such as -j REJECT --reject-with tcp-reset (fail2ban and similar tools can add these), a process that closes a socket while unread data is still in its receive buffer (the kernel then sends RST), nginx's reset_timedout_connection on, an upload rejected with 413 while the browser is still sending the body, and a full listen queue when net.ipv4.tcp_abort_on_overflow is set to 1 (with the default of 0 the kernel drops instead, and clients time out).

Behind Cloudflare, nginx or another proxy

A reverse proxy does not pass an upstream reset through to the browser; it turns it into an error status. nginx logs recv() failed (104: Connection reset by peer) while reading response header from upstream and returns 502; Cloudflare returns 520 when the origin drops the connection. So if visitors of a proxied site see ERR_CONNECTION_RESET, the reset happens between them and the proxy (their network, an ISP filter, security software) or at the proxy itself, not at your origin.

On your own edge, check which rules answer with a reset rather than silently dropping:

iptables -S | grep -i 'tcp-reset'
nft list ruleset | grep -i 'reset'
grep -rn 'reset_timedout_connection' /etc/nginx/

If you own the site

  1. Reproduce from outside and from the server itself. If curl -v https://example.com/ works on the server (through its public IP) but fails from a client network, the reset is in the path.
  2. Test host-name filtering. Send the same handshake with a different SNI:
    openssl s_client -connect 203.0.113.10:443 -servername example.com </dev/null
    openssl s_client -connect 203.0.113.10:443 -servername example.org </dev/null
    If only the real name is reset, a filter in that network reacts to the host name.
  3. See who sends the RST. Capture on the server while a failing client retries:
    tcpdump -ni any 'tcp port 443 and tcp[tcpflags] & tcp-rst != 0'
    If the client receives a reset that never left your server, something in between injected it.
  4. Check firewall and fail2ban rules for tcp-reset and for a ban on the client's IP.
  5. Check the listener and kernel: ss -ltn 'sport = :443', nstat -az TcpExtListenOverflows, dmesg -T | grep -i 'killed process' for crashed workers.
  6. Check DNS: compare dig +short example.com with dig +short example.com @1.1.1.1. A stale record or a resolver that substitutes its own address sends visitors to a machine that resets them; see resolver checks and fixes.

Step-by-step walkthrough for visitors and owners: ERR_CONNECTION_RESET fix guide.

If you are a visitor

  1. Try mobile data or another Wi-Fi. If the site opens there, the reset comes from your original network.
  2. Turn off a VPN or proxy, or turn one on if your network filters the site, and retry.
  3. Pause antivirus HTTPS or web scanning briefly; these products sit in the middle of TLS connections and can reset them.
  4. Turn on secure DNS: Chrome Settings > Privacy and security > Security > Use secure DNS. It helps when your provider's resolver sends you to the wrong address.
  5. On Windows, if every site resets, run netsh winsock reset from an administrator prompt and reboot.

Clearing the browser cache does not affect resets: no response was received. If the site fails on every network and device, it is the server's problem, not yours.

How to confirm the fix

curl -sS -o /dev/null -w '%{http_code}\n' https://example.com/
# 200
openssl s_client -connect example.com:443 -servername example.com -brief </dev/null

Run both from the network that failed, not only from the server. To test whether the host and port answer from outside your network, use the ping and port checker.

Related errors

ICMP PingHost availability and latency
Port ScannerOpen TCP port detection
LatencyResponse time in milliseconds
Packet LossPercentage of dropped packets

Why teams trust us

ICMP+TCP
check protocols
14
key ports scanned
3,184
checks in 30 days
3
regions

How it works

1

Enter IP or domain

2

ICMP packets sent

3

Latency & packet loss shown

How Do Ping and Port Scanning Work?

Ping sends ICMP packets to a host and measures response time. Port scanning checks which TCP ports are open and accepting connections — helping diagnose serviceavailability issues.

Configurable Ping

Choose packet count (3, 4, 6, 10). Stats: min/avg/max latency and packet loss.

Common Port Scanner

Check 14 key ports: HTTP, HTTPS, SSH, FTP, SMTP, MySQL, PostgreSQL, and more.

Cloud-Based Check

Testing from our server — see site availability from outside, not just your local network.

Uptime Monitoring

Need constant monitoring? Create a monitor — checks every minute with notifications.

Who uses this

DevOps

availability diagnosis

Network engineers

TCP port scanning

Developers

connection debugging

SRE

basic health check

Common Mistakes

ICMP blocked = server is downMany servers block ICMP. Ping fails but site works — check ports instead.
High ping = server problemLatency depends on geography. 150ms between continents is normal, not an error.
Closed ports — cause for alarmClosed ports of unused services are good. Unnecessary open ports are a risk.
One check = sufficientNetworks are unstable. A single timeout ≠ a problem. Check multiple times or set up monitoring.

Best Practices

Combine ping and port checksPing shows host availability, ports show specific service availability. Use both.
Check from different locationsThe problem may be local. A cloud test shows the real picture.
Close unused portsEvery open port is a potential attack vector. Keep only necessary ports open.
Set up monitoringManual checks do not scale. Set up automated monitoring with notifications.

Get more with a free account

Ping check history, host availability monitoring and downtime alerts.

Sign up free

Learn more

Sources

Frequently Asked Questions

How is ERR_CONNECTION_RESET different from ERR_EMPTY_RESPONSE?

Empty response means the server closed the connection normally without sending data. Connection reset means a TCP RST packet tore the connection down, sent by the server or by something in the path.

Why does the site work on mobile data but not on my Wi-Fi?

The reset comes from your Wi-Fi network: its router, firewall, proxy or the ISP behind it. The server is reachable, as the other network shows.

Is ERR_CONNECTION_RESET caused by my ISP?

Sometimes. ISP filters can read the host name in the TLS handshake and reset the connection. If it fails only on one provider and works over a VPN or mobile data, that is the likely cause.

What is the difference between reset and aborted?

ERR_CONNECTION_RESET is a TCP RST from the other side or the path. ERR_CONNECTION_ABORTED (-103) is a connection that timed out because data sent was never acknowledged.

Can a firewall or fail2ban rule cause ERR_CONNECTION_RESET?

Yes. A rule such as REJECT --reject-with tcp-reset answers with an RST, and fail2ban can add such rules for a client IP. Check the server firewall for tcp-reset rules and for a ban on the affected visitor's address.

Try the live tool that powered this guide

Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.