What it means: A TCP reset packet, from the server or a device in between, tore down an established connection.
Free online tool — ping & port checker: instant results, no signup.
Pings your host from our server, so you see whether it answers from outside your network.
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.
| Browser | What you see | Most 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 |
| Safari | Its own connection-error message; no Chrome code | The same RST |
| curl | Connection reset by peer | The 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).
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/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.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/nullIf only the real name is reset, a filter in that network reacts to the host name.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.tcp-reset and for a ban on the client's IP.ss -ltn 'sport = :443', nstat -az TcpExtListenOverflows, dmesg -T | grep -i 'killed process' for crashed workers.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.
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.
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/nullRun 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.
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.
Choose packet count (3, 4, 6, 10). Stats: min/avg/max latency and packet loss.
Check 14 key ports: HTTP, HTTPS, SSH, FTP, SMTP, MySQL, PostgreSQL, and more.
Testing from our server — see site availability from outside, not just your local network.
Need constant monitoring? Create a monitor — checks every minute with notifications.
availability diagnosis
TCP port scanning
connection debugging
basic health check
Ping check history, host availability monitoring and downtime alerts.
Sign up freeEmpty 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.
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.
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.
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.
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.
Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.