You type a URL into Chrome, hit Enter, and instead of loading the page you see an error screen with the cryptic message: DNS_PROBE_FINISHED_NXDOMAIN. The page doesn’t load, and the browser offers little explanation beyond that single line. For anyone working with networks—whether in a lab or production—understanding this error is a chance to see how DNS resolution really works. It’s not just about fixing your own connection; it teaches you the mechanics of domain lookups, which is essential for diagnosing network issues in real systems.
NXDOMAIN stands for Non-Existent Domain. In DNS terms, it means the domain name you asked for does not exist in the global DNS hierarchy. Chrome’s internal DNS probe has finished and the answer it received from the resolver was literally “this domain does not exist.” But the real cause is often not that the domain is truly missing — it could be a local misconfiguration, a corrupted cache, or a network-level block. Let’s break down the common causes and, more importantly, the practical steps to resolve it.
What Actually Triggers DNS_PROBE_FINISHED_NXDOMAIN?
Chrome performs its own DNS resolution probe independent of the operating system’s default resolver. When you navigate to a URL, Chrome asks the system’s configured DNS server for the IP address. If the server responds with an NXDOMAIN status code, Chrome displays this error. The most common scenarios include:
- Typo in the URL — a missing letter or wrong TLD (.cmo instead of .com).
- Expired or incorrect DNS cache on your local machine or router.
- Misconfigured DNS server — your ISP’s DNS may be temporarily down or returning stale data.
- Firewall or antivirus software intercepting DNS queries and returning a fake NXDOMAIN.
- VPN or proxy interference — especially if the VPN uses its own DNS but fails to resolve.
- Hosts file entries that redirect the domain to a non-existent IP or block it entirely.
- Router-level DNS issues — the router’s DHCP may hand out a broken DNS server.
The good news: this error is almost always fixable without reinstalling Chrome or your operating system. You just need to methodically eliminate each possible cause.
Step-by-Step Troubleshooting Guide
1. Check the URL for Typos
Before diving into technical fixes, confirm you typed the address correctly. Try visiting a well-known site like google.com or github.com. If those work, the domain you originally entered may genuinely not exist. If even major sites fail, move to the next steps.
2. Clear Chrome’s Internal DNS Cache
Chrome maintains its own DNS cache separate from the OS. To clear it:
- Open a new tab and navigate to
chrome://net-internals/#dns. - Click the Clear host cache button.
- Optionally, go to
chrome://net-internals/#socketsand click Flush socket pools. - Restart Chrome and try again.
3. Flush the Operating System’s DNS Cache
On Windows, open Command Prompt as Administrator and run:
ipconfig /flushdns
On macOS, run in Terminal:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
On Linux, the command depends on the DNS resolver. For systemd-resolved, use:
sudo systemd-resolve --flush-caches
4. Switch to a Public DNS Server
Your ISP’s DNS may be unreliable. Temporarily switch to a public resolver like Cloudflare (1.1.1.1) or Google (8.8.8.8). On Windows, go to Network Settings → Change adapter options → right-click your connection → Properties → Internet Protocol Version 4 (TCP/IPv4) → Use the following DNS server addresses. Enter 1.1.1.1 and 1.0.0.1 (or 8.8.8.8 and 8.8.4.4). On macOS, go to System Preferences → Network → Advanced → DNS. On Linux, edit /etc/resolv.conf or use NetworkManager GUI.

5. Inspect the Hosts File
The hosts file can override DNS resolution. On Windows it is located at C:WindowsSystem32driversetchosts. On macOS and Linux it is /etc/hosts. Open it with a text editor (as administrator on Windows, using sudo on Unix). Look for any line containing the domain you are trying to reach. If it maps to an IP like 0.0.0.0 or 127.0.0.1, that line is blocking the domain. Comment it out with a # at the start of the line, save, and retry.
6. Disable Proxy Settings Temporarily
Proxy configurations can interfere with DNS resolution. In Chrome, go to Settings → System → Open your computer’s proxy settings. Ensure “Automatically detect settings” is enabled and no manual proxy is set unless you specifically need one. On Windows, check the “Use a proxy server” toggle in the LAN settings. On macOS, go to Network → Advanced → Proxies and uncheck all protocols except FTP and HTTP if you don’t use a proxy.
7. Restart Your Router and Modem
Your router may have a corrupted DNS cache or a temporary glitch. Power cycle both the modem and router by unplugging them for 30 seconds, plugging the modem back in, waiting for it to sync, then plugging the router back in. This often clears DNS issues at the network level.
8. Check Firewall and Antivirus Software
Some security suites include a feature that blocks DNS queries to certain domains or forces all DNS through their own proxy. Temporarily disable the firewall or antivirus (or specifically its “web protection” module) and test. If the error disappears, you need to whitelist the domain or reconfigure the security software. For developers working in cybersecurity labs, understanding how security software intercepts DNS is a valuable lesson — but always do this only on your own machines and with permission.
9. Reset Chrome Flags and Network Settings
If you have changed experimental flags in Chrome (chrome://flags), some of them can break DNS resolution. Reset all flags to default by clicking “Reset all” on the flags page. Additionally, you can reset Chrome’s network settings by going to Settings → Advanced → Reset and clean up → Restore settings to their original defaults. This does not delete bookmarks or passwords but resets startup pages, new tab page, search engine, and pinned tabs.
When the Error Persists — Digging Deeper
If you have tried all the above and the error still appears for a specific site, the domain may genuinely be offline or expired. Use command-line tools to verify:
- nslookup example.com — shows the IP address returned by your configured DNS server.
- nslookup example.com 8.8.8.8 — queries Google’s DNS directly, bypassing your local resolver.
- dig example.com — more detailed DNS query output (available on macOS and Linux, or via Windows Subsystem for Linux).
- ping example.com — if ping resolves to an IP but Chrome does not, the issue is likely with Chrome’s internal cache or proxy settings.
If nslookup returns “Non-existent domain” even when querying a public resolver, the domain is truly unavailable. Wait a few hours and try again; DNS propagation can take up to 48 hours for newly registered domains.
If you’re still stuck after all these steps, run dig +trace example.com to see exactly where the DNS chain breaks. That output tells you if the problem is at your resolver, an intermediate server, or the authoritative nameserver. Save that output — it’s the kind of evidence you’ll need when troubleshooting real-world network incidents. Practicing this on a lab VM or a spare machine builds muscle memory for when it matters most.
