ERR_NAME_NOT_RESOLVED: DNS Name Not Resolved
Quick reference
| Error | ERR_NAME_NOT_RESOLVED |
|---|---|
| Chrome text | "This site can't be reached — DNS address not found" |
| Firefox text | "Hmm. We're having trouble finding that site" |
| Layer | DNS (before TCP connection is attempted) |
| HTTP code? | No — DNS resolution fails before HTTP |
What ERR_NAME_NOT_RESOLVED means
When a browser navigates to a URL, the first step is DNS resolution: converting the domain name (example.com) to an IP address. ERR_NAME_NOT_RESOLVED means this DNS lookup failed — the operating system's DNS resolver returned NXDOMAIN (no such domain) or received no response at all.
No HTTP connection is attempted after a DNS failure. The browser never reaches the web server. The error is entirely at the DNS layer.
The same error appears in API clients: Python's requests raises requests.exceptions.ConnectionError: [Errno -2] Name or service not known. Node.js raises Error: getaddrinfo ENOTFOUND example.com. curl returns curl: (6) Could not resolve host: example.com. These are all the same DNS resolution failure manifesting differently across runtimes.
Diagnosis steps
Step 1 — Confirm DNS resolution is the issue:
dig example.com A # NXDOMAIN response = domain does not exist in DNS # SERVFAIL = DNS server error # No answer section = no A record configured nslookup example.com # Server: 8.8.8.8 = using Google DNS # Non-existent domain = NXDOMAIN # Test with a known-good domain to verify DNS is working at all: dig google.com A # Should return 142.250.x.x
Step 2 — Check local DNS vs. public DNS:
# Check what DNS server is being used: cat /etc/resolv.conf # Linux/macOS # nameserver 192.168.1.1 (local router) # Test with public DNS directly: dig @8.8.8.8 example.com A # Google DNS dig @1.1.1.1 example.com A # Cloudflare DNS # If public DNS resolves but local DNS does not: # - Local DNS cache may be stale # - Corporate DNS may have split-horizon configuration # - Local resolver has a NXDOMAIN filter (parental controls, etc.)
Step 3 — Flush DNS cache:
# Windows: ipconfig /flushdns # macOS: sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder # Linux (systemd-resolved): sudo systemd-resolve --flush-caches # Chrome has its own DNS cache: # Navigate to chrome://net-internals/#dns and click "Clear host cache"
Step 4 — Check propagation delay for new domains:
# Check if the record is visible from multiple global locations: # Use https://dnschecker.org or check from multiple DNS servers: dig @8.8.8.8 example.com A # Google (US) dig @1.1.1.1 example.com A # Cloudflare dig @9.9.9.9 example.com A # Quad9 dig @208.67.222.222 example.com A # OpenDNS # TTL-based propagation: if TTL was 3600, full propagation takes up to 1 hour
Server-side causes
Missing DNS record: No A or AAAA record exists for the domain or subdomain. Log into the DNS provider and add the record. For Cloudflare, add an A record pointing to the origin IP. New records propagate within seconds to minutes.
Wrong DNS nameservers: The domain's registrar nameservers do not point to the DNS provider where the records are configured. Verify at the registrar that the NS records point to the correct nameservers:
dig NS example.com # Should return your DNS provider's nameservers # e.g., ns1.cloudflare.com, ns2.cloudflare.com
Expired domain: If the domain registration expired, the registrar removes the DNS records. The domain returns NXDOMAIN until renewed. Check expiry at your registrar or with whois.
Typo in domain configuration: A subdomain was configured as wwww instead of www, or a CNAME chain has a typo. Audit the DNS records for the exact hostname being requested.
ERR_NAME_NOT_RESOLVED vs related errors
| Error | DNS resolved? | TCP? | Cause |
|---|---|---|---|
| ERR_NAME_NOT_RESOLVED | No | Not attempted | DNS lookup failed |
| ERR_CONNECTION_REFUSED | Yes | Refused | No service on port |
| Cloudflare 522 | Yes | Timed out | Host unreachable |
| ERR_CONNECTION_TIMED_OUT | Yes | Timed out | No response from host |
Frequently asked questions
How long does DNS propagation take?
New DNS records typically propagate globally within 5 minutes for records with short TTLs (like Cloudflare's default 1-minute TTL). For records with longer TTLs (1 hour, 24 hours), old values are cached at resolvers worldwide for up to the TTL duration after the change. Reduce TTL to 60 seconds before making changes to minimize propagation delay.
Why does the site work on some devices but not others?
Different devices use different DNS resolvers with different cache states. A device that recently resolved the domain has the answer cached. A device using a different ISP's DNS server may not have the record yet or may have a stale NXDOMAIN cached. Test from a fresh network (mobile data instead of WiFi) to check global availability.
Can a VPN or proxy cause ERR_NAME_NOT_RESOLVED?
Yes. VPNs route DNS through their own resolvers. If the VPN's DNS server does not have the record (or has a filter), the domain fails to resolve while on the VPN but works normally without it. Disconnect the VPN and test to confirm.
Is ERR_NAME_NOT_RESOLVED always a DNS problem?
Yes. The error is generated at the DNS resolution step before any network connection is attempted. If you can ping the domain by IP but the domain name fails, it is definitively a DNS issue — either missing records, wrong nameservers, or a local resolver problem.
Related guides
ERR_CONNECTION_REFUSED · ERR_CERT_COMMON_NAME_INVALID · Cloudflare 523 · Cloudflare 522 · SSL Handshake Failed