ERR_NAME_NOT_RESOLVED
ERR_NAME_NOT_RESOLVED is a Chrome and Chromium error that appears when the browser cannot translate a website's hostname into an IP address. The page stops before any connection is even attempted, because without an IP there is nowhere to send the request. It points at the Domain Name System (DNS) rather than at the web server itself.
Updated June 2026 · 6 min read
-
Written by
Andrian Valeanu
Founder of Pulsetic
Andrian Valeanu founded Pulsetic and, before it, Designmodo. Across 15-plus years he has shipped web products, design tools, and monitoring software teams around the world rely on.
-
Reviewed by
Ionut Caval
Technical reviewer
Ionut Caval reviews Pulsetic's technical guides for accuracy. He works hands-on with web servers, networking, and uptime monitoring day to day, and makes sure the causes and fixes here hold up in production.
The short version: It means Chrome's DNS lookup for the hostname failed, so the browser has no IP address to connect to. The most common fix is to flush your DNS cache and switch to a reliable public resolver such as 1.1.1.1 or 8.8.8.8.
Key takeaways
- ERR_NAME_NOT_RESOLVED is Chromium net error -105: the DNS lookup for the hostname returned no IP, so the browser never opens a connection. The server's health is irrelevant because no request ever leaves your machine.
- It is broader and more often transient than DNS_PROBE_FINISHED_NXDOMAIN: a stale cache entry, a flaky resolver, or a blocked Secure DNS endpoint can trigger it even when the domain is fine.
- The fastest fix for visitors is to flush the DNS cache and switch to a reliable resolver such as
1.1.1.1or8.8.8.8; if a refresh alone clears it, suspect your local cache. - To tell whose fault it is, run
dig yourdomain.com @1.1.1.1: an IP means DNS works and the issue is your browser or resolver, while no answer points at the domain's records. - Prevention for owners is redundant DNS, domain auto-renew, and external monitoring that resolves the hostname from outside so a silent resolution failure pages you, not your visitors.
- Error type
- Browser DNS resolution error (Chromium net error -105)
- Whose side
- Either
- Fix difficulty
- Easy
- Common cause
- DNS lookup of the hostname failed: bad cache, wrong resolver, or a missing or misspelled domain
What does ERR_NAME_NOT_RESOLVED mean?
Every time you open a website by name, the browser has to find the matching IP address through DNS. Your device asks a resolver (usually your ISP's, your router's, or a public one like Cloudflare or Google), which walks the DNS hierarchy until it returns an address. ERR_NAME_NOT_RESOLVED is Chrome's way of saying that this entire lookup came back empty: the browser literally has no IP to dial, so it never opens a TCP connection. In Chromium's net error list the code is -105, defined simply as 'the host name could not be resolved.'
A genuinely useful distinction that most guides skip: ERR_NAME_NOT_RESOLVED is the generic 'name resolution failed' result, while DNS_PROBE_FINISHED_NXDOMAIN is what Chrome shows after it runs its own diagnostic DNS probe and gets back an authoritative NXDOMAIN, meaning the domain provably does not exist. ERR_NAME_NOT_RESOLVED is broader and is often transient (a stale cache entry, a momentarily unreachable resolver, a flaky Wi-Fi handoff), whereas NXDOMAIN is more likely to mean the name is misspelled or the domain truly has no records. If you only ever see ERR_NAME_NOT_RESOLVED and a refresh fixes it, suspect your local resolver or cache, not the domain.
A modern and frequently missed cause is Chrome's Secure DNS (DNS over HTTPS). When you set a custom DoH provider under Settings, Chrome routes lookups to that encrypted endpoint instead of your normal resolver. If that endpoint is blocked on your network, temporarily down, or cannot see internal or split-horizon domains, names that would otherwise resolve start failing with ERR_NAME_NOT_RESOLVED. Switching Secure DNS back to your provider's default, or turning it off to test, is a fast way to rule this in or out.
Because the failure happens before any HTTP request leaves your machine, the web server's own health is irrelevant to this error. A perfectly running server still shows ERR_NAME_NOT_RESOLVED if its DNS record is missing, if your resolver is misbehaving, or if a typo sent you to a hostname that was never registered.
- -105
- Chromium net error code behind the message
- 2
- DNS lookups per request: one for IPv4 (A), one for IPv6 (AAAA)
- Up to 48h
- DNS propagation window after a new or changed domain record
How the ERR_NAME_NOT_RESOLVED error appears
The wording changes depending on your browser, device, or server. Here is how this error commonly shows up:
This site can't be reached
example.com's server IP address could not be found.
ERR_NAME_NOT_RESOLVED
ERR_NAME_NOT_RESOLVEDThe exact Chromium code (-105): the host name could not be resolved to an IPThis site can't be reachedChrome's headline shown above the error codeexample.com's server IP address could not be foundThe plain-language sub-line Chrome prints for a failed DNS lookupError 105 (net::ERR_NAME_NOT_RESOLVED)The older numeric form of the same error in legacy Chrome buildsnet::ERR_NAME_NOT_RESOLVEDThe fully namespaced form often seen in DevTools and page-load logs
ERR_NAME_NOT_RESOLVED vs related DNS and connection errors
These Chrome errors look similar but point at different stages of resolving and connecting to a website. Knowing which one you have narrows the fix.
| Error | What it really means |
|---|---|
| ERR_NAME_NOT_RESOLVED | Generic DNS lookup failed: no IP returned for the hostname. Often transient or local (cache, resolver, Secure DNS). |
| DNS_PROBE_FINISHED_NXDOMAIN | Chrome's DNS probe got an authoritative NXDOMAIN: the domain provably does not exist or has no records. |
| DNS_PROBE_FINISHED_NO_INTERNET | The probe found no working network at all, so DNS could not even be attempted. |
| ERR_CONNECTION_REFUSED | DNS succeeded and an IP was found, but the server actively rejected the connection on that port. |
| ERR_CONNECTION_TIMED_OUT | DNS succeeded, but the server at that IP never answered the connection attempt in time. |
Commands to pinpoint a name-resolution failure
Each command tests a different part of the lookup path so you can tell a local cache problem from a true DNS failure.
| Command | What it checks | How to read the result |
|---|---|---|
dig yourdomain.com +short | Resolution via your default resolver | An IP means DNS works; empty output means the lookup failed locally or upstream |
dig yourdomain.com @1.1.1.1 | Resolution via a known-good public resolver | Success here but failure on your default means your configured resolver is the culprit |
dig A yourdomain.com / dig AAAA yourdomain.com | IPv4 and IPv6 records separately | A missing AAAA on an IPv6-preferring network can cause intermittent failures |
nslookup yourdomain.com | Basic resolution with the system resolver | 'server can't find' or NXDOMAIN confirms the name does not resolve |
ping yourdomain.com | Whether the OS itself can resolve the name | If ping cannot resolve it either, the failure is system-wide DNS, not Chrome |
dig +dnssec yourdomain.com | Whether DNSSEC validation is failing | A SERVFAIL with DNSSEC data points at a broken DS or RRSIG chain |
Where name resolution can break
ERR_NAME_NOT_RESOLVED can originate at any link in the chain; this maps each layer to who can fix it.
| Layer | Typical failure | Who fixes it |
|---|---|---|
| Browser cache | Stale entry in chrome://net-internals/#dns | Visitor (clear host cache) |
| OS / device cache | Corrupted resolver cache returning a dead answer | Visitor (flush DNS cache) |
| Secure DNS (DoH) | Custom DoH endpoint blocked or unable to see the name | Visitor (switch DoH provider or disable) |
| Configured resolver | ISP or router DNS server down or misbehaving | Visitor (switch to 1.1.1.1 / 8.8.8.8) |
| Authoritative DNS | Missing A/AAAA record, broken delegation, or DNSSEC error | Website owner (fix records at DNS host) |
| Domain registration | Domain expired or nameservers unset at registrar | Website owner (renew, set nameservers) |
What causes ERR_NAME_NOT_RESOLVED?
- A stale or corrupted DNS cache on your device, browser, or router returning a dead or empty answer
- An unreliable or unreachable DNS resolver (often the ISP default), or a custom Secure DNS / DoH endpoint that is blocked or down
- A misspelled hostname, or a domain that has expired or never had DNS records created
- DNS records that have not finished propagating after a new domain, a host migration, or a nameserver change
- A hosts file entry or VPN, proxy, firewall, or security tool that intercepts or breaks name resolution
- Domain-side problems such as broken nameservers or a DNSSEC misconfiguration that makes the lookup fail validation
How to find the cause fast
- Try the same address on another network (for example a phone on mobile data). If it loads there, the problem is local to your first network or device, not the website.
- Run a direct DNS query to see what the world's resolvers return, for example 'nslookup example.com' or 'dig example.com'. An answer with an IP means DNS is fine and the issue is your browser or cache; NXDOMAIN or 'server can't find' means the name does not resolve.
- Query a known-good public resolver explicitly with 'nslookup example.com 1.1.1.1' or 'dig @8.8.8.8 example.com'. If that succeeds while your default resolver fails, your configured DNS server is the culprit.
- Test raw reachability with 'ping example.com'. If ping cannot resolve the host either, the failure is system-wide DNS, not Chrome.
- In Chrome, visit chrome://net-internals/#dns and clear the host cache, then retry; this isolates a stale in-browser cache entry from a true DNS failure.
How ERR_NAME_NOT_RESOLVED looks from the outside
From the outside, a DNS failure is invisible to ordinary HTTP status checks because the request never gets far enough to return a status code: the lookup itself fails first. Pulsetic catches this because every check it runs starts with DNS resolution from 15+ global locations, on intervals as fast as 30 seconds. If the hostname stops resolving, the check fails and Pulsetic alerts you by email, SMS, voice, Slack, Discord, Telegram, or webhook. Its dedicated domain check also watches the registration and expiry of the domain itself, so an expired or misconfigured name is flagged directly. Because Pulsetic tests from outside your network, it sees the same resolution path your visitors do, not just your own machine's possibly cached view.
How to fix ERR_NAME_NOT_RESOLVED
For visitors
- Double-check the spelling of the address in the URL bar, including the domain ending.
- Reload the page, then restart Chrome; transient lookups often clear on a second try.
- Flush your DNS cache (see the platform steps below) so the browser asks fresh.
- Switch your device or router to a reliable public DNS resolver such as Cloudflare (1.1.1.1 and 1.0.0.1) or Google (8.8.8.8 and 8.8.4.4).
- Turn off or change Chrome's Secure DNS: Settings > Privacy and security > Security > Use Secure DNS, then set it to your provider or disable it to test.
- Restart your router and, if you use a VPN or proxy, disconnect it and retry.
For website owners
- Confirm the domain is registered, not expired, and that its nameservers are correct at the registrar.
- Verify A and AAAA records exist and point to the right IP using 'dig A example.com' and 'dig AAAA example.com' against an external resolver.
- If you just changed DNS or migrated hosts, allow for propagation and check from multiple public resolvers, not only your own machine.
- If DNSSEC is enabled, validate the chain (for example 'dig +dnssec example.com') and fix any broken or mismatched DS or RRSIG records.
- Make sure both the apex (example.com) and www, plus any subdomains you advertise, all resolve.
- Set up external DNS and uptime monitoring so a future resolution failure pages you before visitors notice.
Windows
- Open Command Prompt as Administrator.
- Run 'ipconfig /flushdns' to clear the resolver cache.
- If names still fail, run 'netsh winsock reset' and restart the PC.
- Optionally set DNS manually under Settings > Network & Internet > your adapter > DNS server assignment.
macOS
- Open Terminal.
- Run 'sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder' and enter your password.
- Change DNS if needed under System Settings > Network > your connection > Details > DNS.
- Quit Chrome fully (Cmd+Q) and reopen it so it picks up the fresh resolver.
Chrome
- Visit chrome://net-internals/#dns and click 'Clear host cache'.
- Visit chrome://net-internals/#sockets and click 'Flush socket pools'.
- Go to Settings > Privacy and security > Security > Use Secure DNS and switch provider or toggle it off to test.
- Disable Chrome's preload setting under Settings > Privacy and security > Cookies and other website data > Preload pages, then retry.
Still not fixed? Next steps
- If
dig @1.1.1.1anddig @8.8.8.8both succeed but your machine still fails, runnetsh winsock reseton Windows or restartsystemd-resolvedon Linux, since the OS resolver stack itself may be corrupted. - If only some subdomains fail, query each one explicitly (
dig www.yourdomain.com,dig api.yourdomain.com): a missing record on one host while the apex resolves narrows the fix to that single DNS entry. - If public resolvers disagree with your authoritative server, the change has not propagated yet; check the record's TTL and confirm you edited the live zone at the provider listed in
dig NS yourdomain.com. - If resolution fails only with DNSSEC validation on, temporarily test with
dig +cd(checking disabled) to confirm the chain is the cause, then correct or roll back the DS and RRSIG records at the registrar and DNS host.
Code & configuration
Copy-paste starting points. Replace example.com and the paths with your own, and test changes on staging before production.
Check what DNS actually returns
nslookup example.com
dig example.com +short
dig @1.1.1.1 example.com
Flush the DNS cache
# Windows (Admin Command Prompt)
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Linux (systemd-resolved)
sudo resolvectl flush-caches
Confirm A and AAAA records as a website owner
dig A example.com @8.8.8.8
dig AAAA example.com @8.8.8.8
dig +dnssec example.com
How to prevent ERR_NAME_NOT_RESOLVED
Most repeat occurrences come from fragile DNS: a single ISP resolver, a soon-to-expire domain, or records that quietly break after a migration. Use a reputable, redundant DNS provider, keep domain auto-renew on, and verify records from multiple external resolvers after any change. To catch the failures you cannot see from your own desk, point Pulsetic at your domain: its uptime and domain monitoring resolve your hostname from 15+ locations every 30 seconds and alert you the moment resolution breaks, turning a silent DNS outage into an instant notification instead of a wave of visitor complaints.
Learn how Pulsetic's domain monitoring detects this from the outside, across 15+ locations.
Frequently asked questions
-
Is ERR_NAME_NOT_RESOLVED my fault or the website's?
It can be either. If the same address loads on another network or device, the problem is local to you (cache, resolver, or Secure DNS). If it fails everywhere and 'nslookup' returns no IP, the domain's DNS is at fault and only the website owner can fix it.
-
What is the difference between ERR_NAME_NOT_RESOLVED and DNS_PROBE_FINISHED_NXDOMAIN?
ERR_NAME_NOT_RESOLVED is the generic 'the lookup failed' result and is often temporary. DNS_PROBE_FINISHED_NXDOMAIN appears after Chrome runs a diagnostic probe and gets an authoritative answer that the domain does not exist. The second is a stronger signal that the name is wrong or unregistered.
-
Why does it happen on only one website while everything else works?
That points at that specific domain's DNS rather than your connection. The record may be missing, expired, still propagating after a change, or failing DNSSEC validation. Check it with 'dig example.com @1.1.1.1' from an external resolver.
-
Can Chrome's Secure DNS cause this error?
Yes. If you set a custom DNS over HTTPS provider that is blocked on your network, temporarily down, or unable to see internal domains, lookups can fail with ERR_NAME_NOT_RESOLVED. Switch Secure DNS to your provider's default or turn it off under Settings > Privacy and security > Security to test.
-
Does flushing the DNS cache really help?
Often, yes. A stale or poisoned cache entry can keep returning a dead answer even after the real DNS is fixed. Running 'ipconfig /flushdns' on Windows or the dscacheutil command on macOS, plus clearing chrome://net-internals/#dns, forces a fresh lookup.
-
How can I get warned about this before my visitors hit it?
Monitor the domain from outside your network. Pulsetic resolves your hostname from 15+ global locations as often as every 30 seconds and alerts you by email, SMS, voice, Slack, Discord, Telegram, or webhook the instant resolution fails, and its domain check also watches for expiry.
-
Why do I see ERR_NAME_NOT_RESOLVED only on a corporate or office network?
Many corporate networks force their own DNS, split-horizon zones, or a Secure DNS policy. If the name is internal-only, or the company resolver cannot see it, the lookup returns nothing on that network while it resolves fine on mobile data. Ask whether the host is meant to be reachable externally, and test with
dig yourdomain.com @1.1.1.1off the corporate network. -
Can a missing IPv6 (AAAA) record cause ERR_NAME_NOT_RESOLVED?
It can on IPv6-preferring networks. The browser issues both an A and an AAAA query; if the AAAA path is misconfigured or the resolver mishandles the empty AAAA answer, resolution can intermittently fail. Confirm both with
dig A yourdomain.comanddig AAAA yourdomain.com, and make sure the AAAA record either exists correctly or is cleanly absent. -
Does ERR_NAME_NOT_RESOLVED ever mean my router is the problem?
Yes. Routers run a small DNS forwarder and cache, and a stuck or corrupted entry there affects every device on the LAN. If multiple devices fail on the same name but a phone on mobile data works, reboot the router or set its upstream DNS to a public resolver to clear the bad cache.
-
How is ERR_NAME_NOT_RESOLVED different from ERR_NAME_RESOLUTION_FAILED?
They describe the same broad outcome of a failed DNS lookup. ERR_NAME_NOT_RESOLVED (-105) is the one Chrome surfaces on the error page, while ERR_NAME_RESOLUTION_FAILED (-137) is a lower-level internal code meaning an error occurred during name resolution. As a visitor the troubleshooting is identical: flush the cache, change resolver, and verify the record exists.
-
Will clearing only the browser cache fix this, or do I need to flush the OS cache too?
Clearing the browser cache alone is often not enough, because Chrome keeps its own host cache at
chrome://net-internals/#dnsand the operating system keeps a separate one. Clear the Chrome host cache and runipconfig /flushdnson Windows or the dscacheutil command on macOS so both layers ask DNS fresh.
-
Catch the next outage before your visitors do.
2-minute setup · Cancel any time
-
No credit card needed