Guides

7 min readUpdated

This site can't be reached: what each Chrome error code means

Quick answer

"This site can't be reached" is a page Chrome draws itself when no HTTP response arrived: the name did not resolve, or the connection was refused, timed out or reset before the server said anything. The grey code under the message, such as ERR_CONNECTION_REFUSED or DNS_PROBE_FINISHED_NXDOMAIN, names the layer that failed. Read it first, run the one test that matches it, then decide whether the fix belongs to you or to the site owner.

01What does "This site can't be reached" mean?

Chrome shows this page when no HTTP response arrived: it could not resolve the name, could not open a connection, or lost the connection before the server answered. No web server, CDN or application wrote the page, so the site's own error pages cannot explain it.

Chromium's source shows why the heading says so little: it is shared by ERR_NAME_NOT_RESOLVED, ERR_CONNECTION_REFUSED, ERR_CONNECTION_TIMED_OUT, ERR_CONNECTION_RESET, ERR_CONNECTION_CLOSED, ERR_ADDRESS_UNREACHABLE and DNS probe results such as DNS_PROBE_FINISHED_NXDOMAIN. The grey code under the message is the real diagnosis. A failed TLS handshake gets its own heading, "This site can't provide a secure connection", a certificate that fails verification shows "Your connection is not private", and a redirect loop or an empty response shows "This page isn't working".

02Which Chrome error code do you have?

Find the code under the message. The middle columns say which step of loading a page failed; the last column is the test that confirms it. Chrome's wording is quoted from its error-page strings.

Code under the messageChrome saysLayer that failedUsual causeFirst test
DNS_PROBE_FINISHED_NXDOMAINCheck if there is a typo in ...DNSThe name does not exist: typo, expired domain, missing recordnslookup the name; NXDOMAIN confirms it
ERR_NAME_NOT_RESOLVED...'s server IP address could not be foundDNSNo address came back: missing record, failing resolver, local blocklistCompare two resolvers, or the DNS lookup tool
ERR_INTERNET_DISCONNECTEDNo internetYour networkWi-Fi, cable, router or captive portalOpen any other site
ERR_CONNECTION_REFUSED... refused to connectTCPNothing listens on the port, or a firewall rejectsTest-NetConnection or curl -v on port 443
ERR_CONNECTION_TIMED_OUT... took too long to respondTCP or networkPackets silently dropped: firewall, wrong address, overloaded servercurl --connect-timeout, then mtr
ERR_ADDRESS_UNREACHABLE... is unreachableRoutingNo route from your network, for example a broken IPv6 or VPN routeRetry on another network
ERR_CONNECTION_RESETThe connection was resetTCP or TLSA reset from security software, a VPN, a middlebox or the serverAnother network, and curl
ERR_EMPTY_RESPONSEdidn't send any dataServerThe server or proxy closed the socket without answeringcurl -v: Empty reply from server
ERR_SSL_PROTOCOL_ERRORThis site can't provide a secure connectionTLSThe handshake broke, often plain HTTP on port 443openssl s_client; see the ERR_SSL_PROTOCOL_ERROR guide
ERR_TOO_MANY_REDIRECTSredirected you too many timesHTTPA redirect loop between proxy, server and CMScurl -sIL; see the redirect loop guide

03Is the problem on your side or the website's?

Test from a second network before changing any setting: open the address on a phone using mobile data. If the site fails there too, the problem is the site's, and nothing on your computer will fix it. If it loads, the cause is your device or your network.

  • Fails on every network and device: the site, its DNS or its hosting. Check its status page and report it.
  • Fails on one network only: the router, the provider's resolver, a company filter or a VPN.
  • Fails on one device only: its DNS cache, hosts file, proxy settings, extensions or security software.

04How to fix "This site can't be reached" as a visitor

Work from the cheapest step to the most disruptive and stop as soon as the page loads. In PowerShell, Test-NetConnection reports TcpTestSucceeded as False when the name resolves but the port does not answer, which separates a DNS fault from a connection fault.

  • Check the address for typos, and try it with and without www.
  • Reload once, then try a private window, which disables most extensions.
  • If no site loads at all, restart the router and modem.
  • Turn off the VPN or proxy, or switch from Wi-Fi to mobile data.
  • Clear Chrome's DNS cache: open chrome://net-internals/#dns and press Clear host cache.
  • Flush the operating system's DNS cache with the commands below.
  • Try another DNS resolver, in Chrome's secure DNS setting or the network settings.
  • If only HTTPS sites fail, pause the security software's HTTPS scanning and retry.
Windows and macOS commands as documented by Microsoft and Apple (not run on the Linux test machine)
# Windows (Command Prompt or PowerShell): flush the DNS cache
ipconfig /flushdns

# Windows PowerShell: does the name resolve, and does port 443 answer?
Resolve-DnsName example.com
Test-NetConnection example.com -Port 443

# macOS (Terminal): flush the DNS cache
sudo killall -HUP mDNSResponder

05How site owners can test each layer

Test from outside your own network, one layer at a time: DNS, the TCP connection, TLS, then HTTP. The first layer that fails is where the fix belongs. The curl timing line covers all four in one request.

Behind a CDN or reverse proxy, also run the last command. It connects straight to the origin with the real hostname, which separates an origin fault from an edge or DNS fault.

Layer-by-layer checks (curl 7.88.1, dig and nslookup 9.18, OpenSSL 3.0.22 on Debian 12; replace example.com and 203.0.113.10)
# DNS: does the name resolve on two public resolvers?
nslookup example.com 1.1.1.1
dig +short example.com A @8.8.8.8

# DNS, TCP, TLS and first byte in one request
curl -sS -o /dev/null -w 'dns %{time_namelookup}s connect %{time_connect}s tls %{time_appconnect}s first byte %{time_starttransfer}s http %{http_code}\n' https://example.com/

# TLS on its own, with SNI and a hostname check
openssl s_client -connect example.com:443 -servername example.com -verify_hostname example.com -brief </dev/null

# the origin directly, bypassing the CDN
curl -sv -o /dev/null --resolve example.com:443:203.0.113.10 https://example.com/

06What each failure looks like in curl

Every row was reproduced on Debian 12 against reserved test names and local test listeners. The exit code is what scripts and monitoring checks see. Chrome and curl use different TLS libraries, so the Chrome column is the nearest match rather than an exact one.

curl printsExit codeNearest Chrome code
Could not resolve host: nonexistent.invalid6ERR_NAME_NOT_RESOLVED or DNS_PROBE_FINISHED_NXDOMAIN
connect to ... failed: Connection refused (shown with -v)7ERR_CONNECTION_REFUSED
Failed to connect ... Timeout was reached28ERR_CONNECTION_TIMED_OUT
Recv failure: Connection reset by peer56, or 35 during the TLS handshakeERR_CONNECTION_RESET
Empty reply from server52ERR_EMPTY_RESPONSE
SSL routines::wrong version number35ERR_SSL_PROTOCOL_ERROR
Maximum (N) redirects followed47ERR_TOO_MANY_REDIRECTS

07Common server-side causes and how to fix them

When every visitor sees a connection error, the cause is usually a recent change: a DNS edit, a firewall rule, a service that did not come back after a restart, or a sudden surge of traffic.

  • DNS: a record lost in a migration, nameservers changed at the registrar before the zone was set up at the new DNS host, an expired domain, or a broken DNSSEC signature.
  • Refused: the service is stopped, listens only on 127.0.0.1, or a firewall rejects port 443. Check with ss -ltnp on the server; the guide to ports explains its output.
  • Timed out: a firewall or cloud security group drops traffic, the A record points at an unused address, or the server is overloaded. The firewall configuration guide covers the rules.
  • Sudden timeouts for everyone with no change made can be an attack: a SYN flood fills the connection queue. The signs of a DDoS attack help confirm it.
  • Resets only in recent Chrome: some servers and middleboxes cannot read a TLS ClientHello split over several packets, which post-quantum key exchange makes common; tldr.fail documents the bug.

Questions

Frequently asked questions

If every other site loads, your connection works and the fault is tied to that one name: its DNS record, its server, or a rule on your network that blocks it. Open the site on mobile data. If it fails there too, only the site owner can fix it; if it loads, check your DNS cache, VPN, filter or security software.

A phone on mobile data uses a different network, resolver and often IP version, so the difference points at something local to the computer. The usual suspects are a stale DNS cache, the hosts file, a VPN or proxy setting, an extension, or security software that inspects web traffic. Flush the DNS cache and try a private window first.

Rarely. The error appears before any page or cookie is involved, so cached files and cookies are not the cause. Clearing cached DNS answers can help: Chrome's host cache at chrome://net-internals/#dns and the operating system's DNS cache. Clearing cookies helps with a different error, the redirect loop.

Refused means the address answered and rejected the connection, usually because nothing listens on the port or a firewall sends a reset, so it appears instantly. Timed out means nothing came back, because packets were dropped, the address is wrong or the server is overwhelmed, so it appears after a delay. Refused points at the service, timed out at the network.

Yes. A flood that fills a server's connection queue or saturates its uplink makes new connections time out, so visitors see ERR_CONNECTION_TIMED_OUT or, less often, resets, while other sites keep working for them. With always-on DDoS protection in front, the flood is absorbed before it reaches the server and visitors keep getting through.

Sources

Sources and verification

Every curl message, exit code and DNS answer in this guide was reproduced with curl 7.88.1, dig and nslookup 9.18 and OpenSSL 3.0.22 on Debian 12 against example.com, reserved test names and local test listeners, October 2026. The Windows and macOS commands follow Microsoft's and Apple's documentation and were not run.

  1. 01net_error_list.h: Chromium network error codes · Chromium
  2. 02localized_error.cc: which error page each code gets · Chromium
  3. 03error_page_strings.grdp: error page headings and messages · Chromium
  4. 04net_error_info.h: DNS probe results · Chromium
  5. 05Get help with common error messages in Chrome · Google Chrome Help
  6. 06curl man page: --connect-timeout, --max-redirs and exit codes · curl
  7. 07Test-NetConnection · Microsoft Learn
  8. 08ipconfig · Microsoft Learn
  9. 09Reset the DNS cache in OS X · Apple Support
  10. 10tldr.fail: servers that fail on a large TLS ClientHello · tldr.fail

Last updated