Corrupt DNS Cache (The 80% Case)
What's actually happening here is Chrome sends a DNS query through your OS resolver, and the cached result says 'this domain doesn't exist' — even though it does. Your DNS cache got poisoned or stale. This happens a lot after you switch Wi-Fi networks, use a VPN, or install software that messes with network settings (looking at you, Cisco AnyConnect).
How to flush the DNS cache
Skip the router restart for now. Do this on your machine:
- Windows 10/11: Open Command Prompt as admin, run
ipconfig /flushdns. You'll see 'Successfully flushed the DNS Resolver Cache' if it works. Then runipconfig /registerdnsandipconfig /release && ipconfig /renewto refresh your IP lease too — I've seen the DNS cache survive without those extra steps. - macOS Ventura/Sonoma: Run
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. The mDNSResponder restart is the actual flush — dscacheutil alone doesn't cut it on newer macOS versions. - Linux (systemd-resolved):
sudo systemd-resolve --flush-cachesorsudo resolvectl flush-cachesdepending on your distro. On Ubuntu 22.04+, resolvectl is the way.
After flushing, close and reopen the browser tab. Don't just refresh — Chrome caches DNS per tab session. Kill it with Ctrl+W and reopen.
If the error's gone, you're done. If not, the issue's deeper.
Bad DNS Server Configuration (Router or OS Level)
Your ISP's DNS servers might be flaky, or you've got a stale static DNS entry. The reason step 1 didn't help is because every new request still hits the same broken server.
Switch to Google DNS (or Cloudflare)
I'm not saying Google DNS is perfect — but it's fast and rarely goes down. Here's the setup:
- Windows: Go to Network & Internet > Change adapter options. Right-click your active adapter, Properties, select Internet Protocol Version 4 (TCP/IPv4). Check 'Use the following DNS server addresses'. Set Preferred to
8.8.8.8, Alternate to8.8.4.4. Click OK. Thenipconfig /flushdnsagain. - macOS: System Settings > Network > your connection > Details > DNS. Remove any existing entries, add
8.8.8.8and8.8.4.4. Click OK, then flush DNS. - Router level: Log into your router (usually 192.168.1.1 or 192.168.0.1), find WAN or Internet settings, locate DNS fields, swap to 8.8.8.8 and 8.8.4.4. Save and reboot the router. This fixes it for every device on your network at once.
I prefer Cloudflare's 1.1.1.1 and 1.0.0.1 for privacy, but Google's more widely compatible. If you've got a Pi-hole or AdGuard Home, check its logs — your internal DNS might be blocking legitimate domains.
Chrome's Built-in DNS Over HTTPS (DoH) Conflict
Chrome 83+ has a hidden setting that sends DNS queries directly to Google's servers over HTTPS. Sounds great — until it conflicts with your system DNS or corporate proxy. The error then becomes intermittent: some sites work, others get NXDOMAIN.
Disable Chrome's DNS-over-HTTPS
- In Chrome's address bar, type
chrome://net-internals/#dnsand press Enter. - Click 'Clear host cache' — this flushes Chrome's internal DNS, not the OS cache.
- Then go to
chrome://flags/#enable-dohin the address bar. - Uncheck 'Enabled' (set to 'Disabled').
- Restart Chrome completely (not just a restart — close all Chrome processes via Task Manager).
If you're on a corporate network, DoH might be blocked anyway. Disabling it forces Chrome back to your system's DNS, which is what you want.
Quick fix for Android phones
Go to Settings > Network & Internet > Private DNS. If it's set to 'Automatic', change to 'Off' or 'Hostname' (e.g., dns.google). The 'Automatic' mode on Android sometimes picks a broken private DNS provider.
Quick-Reference Summary Table
| Cause | Fix | Time to Check |
|---|---|---|
| Corrupt DNS cache | Flush DNS cache per your OS | 30 seconds |
| Bad DNS server config | Switch to 8.8.8.8 / 1.1.1.1 at OS or router | 2 minutes |
| Chrome DoH conflict | Disable chrome://flags/#enable-doh, clear net-internals cache | 1 minute |
Try them in that order. The DNS cache flush works 80% of the time. If you're still stuck after all three, you've got a firewall rule blocking UDP port 53, or your ISP is intercepting DNS and injecting NXDOMAIN for certain sites. Test with nslookup google.com in the terminal — if it returns an IP, the problem is specific to your browser profile or an extension.