This Site Can't Be Reached: Every Chrome Error Code Explained (2026)

- Key facts about this error page
- Why the same headline covers many different failures
- Codes that explicitly print this headline
- Sibling headings that look similar but mean something else
- Reading the number in the grey text
- Connection codes: refused, closed, reset, timed out and aborted
- DNS codes, and what NXDOMAIN does and doesn't mean
- Probe codes: when Chrome asks DNS for a second opinion
- Where to find the complete list
- What is not published: how often each code appears
- If the site is yours: what Google says about DNS errors
- A short diagnostic path, using the code
- Conclusion
- FAQ
You clicked a link, and Chrome swapped the page for a grey-and-white message: This site can't be reached. Under the headline sits a short code such as ERR_CONNECTION_TIMED_OUT or ERR_NAME_NOT_RESOLVED. That code is the most specific clue Chrome gives you.
The short answer: "This site can't be reached" is Chrome's default heading for network failures, so it appears for many different causes. The grey code narrows the cause but does not assign blame, so use it to choose your next test. Every Chrome behaviour described here is checked against Chromium source pinned to Chrome 157.0.8103.15, the stable release returned by Google's version history service on 28 October 2026.
Key facts about this error page
The headline is a fallback. In
localized_error.ccat Chromium tag 157.0.8103.15, the error page options start with the "This site can't be reached" heading before any per-code lookup runs (source).Eleven codes are confirmed to name it explicitly in that file, from
ERR_TIMED_OUT(−7) toERR_TLS13_DOWNGRADE_DETECTED(−180). Codes with no entry of their own fall through to the same heading.Two sibling headings exist. "No internet" and "This page isn't working" are defined separately in Chromium's error page strings at the same tag.
Chrome lists the full set locally. Type
chrome://network-errors/in the address bar, as Google's Chrome Help instructs.Per-code frequency is measured but unpublished. Chromium defines the histogram
Net.ErrorCodesForMainFrame4; no published results turned up in our search (details below).

Get the Mobile Testing Playbook Used by 800+ QA Teams
Discover 50+ battle-tested strategies to catch critical bugs before production and ship 5-star apps faster.
Why the same headline covers many different failures
Chromium's error page code starts from a default. The presentation options are initialised to the "This site can't be reached" heading and a "not available" summary. A per-code lookup then overwrites that default only when the code has an entry of its own.
That produces two groups of codes:
Codes whose entry names the headline. You can list these with confidence.
Every other network error with no entry. These fall through to the default and print the same headline.
So the headline is not a small family you can enumerate. It is the fallback for a large part of Chrome's error set, and the rest of this guide is organised around that.
Codes that explicitly print this headline
The codes below were individually confirmed in the pinned mapping file, and all print "This site can't be reached." Values are the negative numbers Chromium assigns. Where Chromium's own definition is quoted, it comes from the pinned enum file; other meanings are plain readings of the code name, and the first test is our suggestion rather than Chromium's.
Code | Value | What it means | First test |
| −7 | An operation timed out before it completed. The name does not say which step stalled. | Reload once, then try another network to see whether the delay follows you. |
| −100 | "A connection was closed (corresponding to a TCP FIN)." | Retry, then try another network; a server, proxy or security layer ended the session. |
| −101 | "A connection was reset (corresponding to a TCP RST)." | Try another network and another device to see whether a local firewall or proxy is involved. |
| −102 | "A connection attempt was refused." | Try another network. A local firewall, security software or proxy can refuse as well as the site. |
| −104 | A connection could not be established. It is a general failure, not one specific cause. | Check whether other sites load; if they do, try the site from another network. |
| −105 | The domain name did not resolve to an address. | Check the spelling, then the domain's DNS records and any recent DNS change. |
| −109 | Chromium says this usually means there is no route to the address. | Test from a second device and network; check VPN and router settings. |
| −118 | The connection attempt got no answer within the time limit. | Try another network; if it still hangs, the host or a firewall in the path is not answering. |
| −139 | "The request throttler module cancelled this request to avoid DDOS." | Wait, then retry less often. This is a request-timing decision. |
| −166 | The name collided with an ICANN name-collision condition. | Check whether the name is an internal or non-public domain that clashes with a public one. |
| −180 | A TLS 1.3 downgrade was detected. | Try another network; a proxy or security product in the path is a candidate. |
This is a confirmed subset, not the full set, and no total count of headline codes is given because none has been computed. Treat any code missing from the table as one that may print the headline through the default.
The throttling row shows a useful pattern: the headline reads "can't be reached" even when the cause is neither your network nor the site's DNS.
Sibling headings that look similar but mean something else
Many readers are on the wrong page because they confuse three Chrome headings. Chromium defines each in its strings file:
Heading | When Chromium uses it | Example codes from this guide |
This site can't be reached | The default for connection and name-resolution failures |
|
No internet | The network connection itself failed |
|
This page isn't working | HTTP 5xx server errors, and bad responses |
|
The strings file describes "No internet" as the heading for when "the network connection failed," and "This page isn't working" as the heading for HTTP 5xx errors, "which are considered to be server side errors. Also used for bad responses." Advice for one page does not transfer to another. On "No internet," start with your own connection. On "This page isn't working," a response arrived, and the question is what it contained.
ERR_EMPTY_RESPONSE shows how a completed connection can still end badly. Chromium defines it as "The server closed the connection without sending any data." The definition does not say whether the origin or an intermediary such as a proxy closed it, so don't assume the site owns the fault.
Reading the number in the grey text
Chromium's net_error_list.h groups codes into numeric bands, and each constant is negative: -102 is ERR_CONNECTION_REFUSED. Keep the minus sign when matching a number from a log. The NET_ERROR(label, value) macro in net_errors.h expands to ERR_ ## label = value, which is how names and numbers join. The bands are:
Band | Range | Group |
System | 0 to −99 | General system errors |
Connection | −100 to −199 | Connection-level failures |
Certificate | −200 to −299 | Certificate errors |
HTTP | −300 to −399 | Response-level errors |
Cache | −400 to −499 | Cache errors |
Unlabelled | −500 to −599 | Chromium's source marks this range with a question mark |
Obsolete FTP | −600 to −699 | FTP errors |
Certificate manager | −700 to −799 | Certificate manager errors |
DNS resolver | −800 to −899 | Resolver errors |
Blob | −900 to −999 | Blob errors |
Use the band to find a code in the file, not to decide which layer failed. ERR_SOCKET_NOT_CONNECTED (−15) sits in the system band and is defined as "The socket is not connected," which says nothing about the site. A band is a filing cabinet, not a diagnosis.
Connection codes: refused, closed, reset, timed out and aborted
Five codes describe what the connection did, and the source wording separates them:
ERR_CONNECTION_REFUSED(−102): "A connection attempt was refused."ERR_CONNECTION_CLOSED(−100): "A connection was closed (corresponding to a TCP FIN)."ERR_CONNECTION_RESET(−101): "A connection was reset (corresponding to a TCP RST)."ERR_CONNECTION_ABORTED(−103): "A connection timed out as a result of not receiving an ACK for data sent."ERR_CONNECTION_TIMED_OUT(−118): the attempt to connect ran out of time. Unlike a refusal, which is an answer, a timeout is the absence of one, so look for something in the path that is dropping or ignoring traffic.
ERR_ADDRESS_UNREACHABLE (−109) belongs beside them. Chromium says it usually means there is no route to the address, which points at routing, VPN or gateway settings before it points at the site.
Chromium says an attempt was refused; it does not say the destination refused it. A local firewall, security software or proxy can refuse a connection before it reaches the site. ERR_NETWORK_ACCESS_DENIED (−138) exists, in Chromium's words, "to distinguish errors that were most likely caused by a firewall from other access denied errors."
So treat a refusal as a fact about the connection and use it to choose a test. Try the site from another network. Try another device. Those two tests separate your side from theirs without guessing.
Google's help page uses plainer words. It describes ERR_CONNECTION_REFUSED as "The page didn't let Chrome connect or the page is blocked," which attributes intent to the page. The source describes only the connection behaviour. Use Google's wording to recognise the name and the source wording to diagnose.
DNS codes, and what NXDOMAIN does and doesn't mean
ERR_NAME_NOT_RESOLVED (−105) is what you meet when a domain name fails to turn into an address. It is tempting to read that as "the domain doesn't exist." That is too strong.
The DNS standard defines RCODE 3, "Name Error," which RFC 1035 says is "Meaningful only for responses from an authoritative name server" and "signifies that the domain name referenced in the query does not exist." RFC 2308 then governs how such an answer is cached and replayed, known as negative caching.
A resolver can therefore return a cached "does not exist" answer without asking the authoritative server again. Non-existence is one possible DNS outcome, not the cause of every name-resolution failure. Treat it as a lead: check the domain spelling, the DNS records, and whether a recent change has propagated.
Probe codes: when Chrome asks DNS for a second opinion
Some DNS errors carry a second code beginning DNS_PROBE_. At the pinned tag, five probe results in the mapping map to "This site can't be reached" and one maps to "No internet." The meanings below are plain readings of the names, not Chromium definitions:
Probe result | Heading | What it suggests |
| This site can't be reached | A probe may run; this is a state, not a verdict. Wait for the page to update. |
| This site can't be reached | A probe is running; this is a state, not a verdict. |
| This site can't be reached | The probe found a DNS configuration problem. Check your DNS server settings. |
| This site can't be reached | The probe found a problem with the secure DNS configuration. Review Chrome's secure DNS setting. |
| This site can't be reached | The probe got a "name does not exist" answer. Check spelling and the domain's records. |
| No internet | The probe found no working connection. Check your own network first. |
Two other probe states, DNS_PROBE_NOT_RUN and DNS_PROBE_FINISHED_UNKNOWN, are absent from the map because Chromium restores the original error in those cases. The table is a statement about entries in the map, not about every probe outcome.
Chrome does not always run the probe: net_error_info.h includes the line "A DNS probe will not be run for this error page." When one does run, its result is shown as the code at the bottom of the page.
Names also change between releases. The pinned tag contains DNS_PROBE_FINISHED_INCONCLUSIVE, while current main uses UNKNOWN. Match names against the release your browser reports.
Where to find the complete list
Chrome can enumerate every code it knows on your own machine. Google's Chrome Help says to type chrome://network-errors/ in the address bar for a complete list of error codes. That page is the authoritative list for your installed version, and it is more useful for an unusual code than any printed table, including this one.
If your grey text is not above, search that page for it, then read the matching definition in Chromium's net_error_list.h.
What is not published: how often each code appears
You may want to know which codes are most common. We could not find a public per-code breakdown of how often each Chrome network error occurs. Chromium does measure it: the histogram Net.ErrorCodesForMainFrame4 is declared in Chromium's histogram metadata at tag 157.0.8103.15. Its summary describes "Positive net error codes that requests for pages end with," counting only main-frame loads (top-level navigations, not subresources). It excludes main-frame navigations converted to downloads and externally handled requests. The entry is set never to expire and is labelled a core network stack health metric.
So the distribution exists inside a browser vendor's telemetry, with a precise population. Its results are not in any source we located, and no first-party Quash data covers the question either. A usable answer would need top-level navigations, a stated period, a stated denominator and a stated label set. Because of that gap, no error-prevalence figure appears in this article.
If the site is yours: what Google says about DNS errors
If you run the site, a failed lookup matters beyond visitors. Google's crawling documentation says "Network and DNS errors have quick, negative effects on whether Google is able to successfully crawl a URL," and that "DNS errors are most commonly caused by misconfiguration, but they may be also caused by a firewall rule that's blocking Google DNS queries" (Google's crawler troubleshooting guide).
The same page says that if you changed DNS within the last 72 hours, you may need to wait for propagation. That is a lookback condition on a troubleshooting page, not a guaranteed deadline, and it describes Google's crawler rather than every Chrome visitor.
For your own site, check whether DNS changed recently, whether a firewall or security rule could block lookups, and whether the page answers from a network that is not yours.
A short diagnostic path, using the code
Read the sub-code, not just the headline. The headline is the default; the grey code is the clue.
Check the sibling heading. "No internet" points to your connection; "This page isn't working" means the server responded.
Try other sites. If none load, suspect your side first.
Try the destination from another network. If a refused or reset connection disappears there, suspect a local firewall, proxy or security product.
For a name-resolution code, check spelling and recent DNS changes. A cached non-existence answer can outlast the fix.
Open
chrome://network-errors/for any code not in this guide.
Conclusion
"This site can't be reached" is a default, not a diagnosis, and no single fix clears every case. The grey code is your best evidence, and the sibling headings tell you whether you are on the right page at all. Pick one variable, your network, your device or the destination, test it, and let the result decide the next step.
FAQ
What does "This site can't be reached" mean in Chrome?
It is Chrome's default heading for failed connections and name lookups. Many different codes print it, so the grey code beneath is what identifies the cause.
Is "This site can't be reached" always the website's fault?
No. A local firewall, proxy, security software or your own network can cause the same codes, so test from another network or device before blaming the site.
Is ERR_NAME_NOT_RESOLVED the same as the domain not existing?
Not necessarily. It means the name did not resolve; a non-existence answer is one possible cause, and resolvers can return cached negative answers under RFC 2308.
How do I see every Chrome error code?
Type chrome://network-errors/ in the address bar. Google's Chrome Help gives this as the way to see a complete list.
Which Chrome error code is the most common?
We could not find a published per-code breakdown. Chromium records one in the Net.ErrorCodesForMainFrame4 histogram, but its results are not public in any source we found.








