Chrome: DNS_PROBE_FINISHED_BAD_CONFIG on every site
Hi, it's BlueByte. Chrome fills the page with This site can't be reached and DNS_PROBE_FINISHED_BAD_CONFIG underneath — and it happens on every site, not just one. The wording makes it sound like the page is broken, but it isn't: Chrome ran its own DNS probe and decided the problem is your machine's DNS setup, not the website. We'll walk through what that string means, how to prove it's DNS and not the network, fix it by cause with commands you can paste, and keep it from coming back.
What DNS_PROBE_FINISHED_BAD_CONFIG is really telling you
Chrome shows a few close variants of the same page:
This site can't be reached
The webpage at https://example.com/ might be temporarily down or it may
have moved permanently to a new web address.
DNS_PROBE_FINISHED_BAD_CONFIGYou may see DNS_PROBE_STARTED or DNS_PROBE_FINISHED_NO_INTERNET flash first. Chromium defines this status in plain words: "The DNS configuration is wrong, or the servers are down or broken." That is the whole diagnosis in one line — Chrome asked the operating system to resolve the hostname, the resolver answered with a failure, and Chrome's follow-up probe confirmed DNS itself is the part that's misbehaving. The site is fine; name resolution on this machine (or the router in front of it) is not.
Why the DNS config, not the site, is the problem
A handful of concrete causes produce this:
- A stale DNS resolver cache — an old, wrong record is cached and keeps being served.
- A bad DHCP lease — the adapter picked up an IP, gateway, or DNS server that no longer works.
- A corrupt Winsock catalog — the Windows network stack is in a bad state, often after a VPN or "network booster" tool is uninstalled.
- A DNS server that's unreachable or wrong — the configured resolver (usually the router) is down, or a manual entry points at a server that stopped answering.
- A router handing out broken DNS over DHCP — every device on that network sees the error, which is the tell.
First, prove it's DNS and not the network
Don't guess — separate connectivity from name resolution:
ping 8.8.8.8
ping google.comIf ping 8.8.8.8 succeeds but ping google.com fails with could not find host, you have a working network but no name resolution — which is exactly what the error claims. Now query the resolver directly:
nslookup google.comA broken resolver looks like this:
Server: UnKnown
Address: 192.168.0.1
*** UnKnown can't find google.com: Server failedA Server failed or a timeout here points straight at the configured DNS server. Run ipconfig /all to see which servers the adapter is actually using.
Clear the caches that hold the bad config
Flush the OS resolver cache first — this alone fixes the stale-record case. On Windows:
ipconfig /flushdnsWindows IP Configuration
Successfully flushed the DNS Resolver Cache.On macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderOn Linux with systemd-resolved:
resolvectl flush-cachesChrome keeps its own in-process host cache too. Open chrome://net-internals/#dns, click Clear host cache, then reload the page.
Renew the lease and reset the network stack
If flushing didn't help, drop the DHCP lease and pull a fresh one:
ipconfig /release
ipconfig /renewMicrosoft's reference describes /release as sending a DHCPRELEASE to the server and /renew as renewing the configuration — together they replace a bad lease. If the stack itself is corrupt, reset Winsock and the IP stack, then reboot:
netsh winsock reset
netsh int ip resetNothing here touches your files — you're resetting network state, not the disk. A reboot is required for the Winsock reset to take effect; that's expected, not a sign something went wrong.
Point at a DNS resolver that actually answers
If your ISP's or router's resolver is the broken part, set a public one on the adapter (replace Wi-Fi with your adapter name from ipconfig /all):
netsh interface ip set dns name="Wi-Fi" static 8.8.8.8
netsh interface ip add dns name="Wi-Fi" 1.1.1.1 index=2Reload the page. If sites resolve now, the original DNS server was the "bad config" the error named.
A stuck laptop, walked end to end
One Windows laptop showed DNS_PROBE_FINISHED_BAD_CONFIG on every site; a phone on the same Wi-Fi was fine, so the fault was on the laptop. ping 8.8.8.8 worked, ping google.com failed — DNS, confirmed. ipconfig /flushdns changed nothing, and neither did release/renew. nslookup google.com returned Server failed against 192.168.0.1, the router. Setting DNS to 8.8.8.8 loaded every site instantly. The root cause was the router's resolver having crashed; changing the client DNS was the immediate fix, and restarting the router was the permanent one.
Confirm it's fixed and keep it from coming back
Verify by running nslookup google.com and seeing a real address come back, then loading a page in Chrome. To prevent a repeat: reboot the router on a schedule or set a reliable resolver, don't hand-enter DNS servers you can't verify, and remove "network optimizer" tools that rewrite Winsock behind your back.
How it differs from NXDOMAIN and ERR_NAME_NOT_RESOLVED
This is where the exact string earns its keep. Chromium defines DNS_PROBE_FINISHED_NXDOMAIN as "The DNS servers are working fine, so the domain must not exist" — a typo or a dead domain, and only that one site fails. DNS_PROBE_FINISHED_BAD_CONFIG means DNS itself is broken, so every site fails. ERR_NAME_NOT_RESOLVED is the lower-level version of the NXDOMAIN case. The quick rule: one site fails, suspect the site or a typo; every site fails, it's your DNS.
Related questions
Only one site shows this and the rest load fine.
Then it probably isn't a bad DNS config — a machine-wide DNS failure breaks every site. One failing site is closer to NXDOMAIN or ERR_NAME_NOT_RESOLVED. Recheck the URL for a typo and confirm the site is up from another network.
It came back a day after I fixed it.
That usually means the router is handing out a broken DNS server over DHCP, so the bad config returns on the next lease. Set a static resolver on the device, or restart the router and confirm it advertises a working DNS server.
Does flushing DNS delete anything I care about?
No. ipconfig /flushdns only clears cached name lookups. It doesn't touch files, bookmarks, or saved passwords — the cache rebuilds itself on the next lookup.
Incognito and another browser fail the same way. Is it still Chrome?
It isn't a Chrome problem at all. DNS resolution happens at the operating-system level, so every browser will fail. That's your confirmation to fix DNS on the machine or router, not to reinstall Chrome.
I'm on a VPN. Could that cause it?
Yes. VPN clients override DNS, and a half-connected or crashed VPN leaves the adapter pointed at a resolver it can't reach. Disconnect the VPN, run ipconfig /flushdns, and test again.
References
Haneul Seo
Infrastructure engineer · 10+ years running Linux fleets
More in this category
systemd: Start request repeated too quickly
systemd refuses to start a unit that was started more than StartLimitBurst times (default 5) within StartLimitIntervalSec (default 10s), and Restart= counts against that limit. With the 100 ms default RestartSec a crashing service burns all five attempts in under a second. Find the real crash in the journal, fix it, run reset-failed, and give restarts room with RestartSec.
SSH: Received disconnect ... Too many authentication failures
Your agent is offering more keys than the server will let you try. Every public key sshd looks at burns one of the MaxAuthTries attempts — six by default, often three on a hardened host — so the right key never gets its turn and the server hangs up before you type anything. IdentitiesOnly=yes with an explicit IdentityFile pins the connection to one key and the attempt count drops to one.
Active Directory: replication fails with error 1722, The RPC server is unavailable
RPC reports 1722 (0x6ba, RPC_S_SERVER_UNAVAILABLE) when a lower layer fails to connect, so the real fault is almost never RPC itself — it is DNS, a blocked port, or a host-side setting on one of the two domain controllers. repadmin tells you which partner is failing, dcdiag /test:dns rules out name resolution, and Test-NetConnection plus the dynamic port range settle the firewall question. The most common miss is a rule that allows TCP 135 but not 49152–65535.
Windows Server RDS: The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license
The 120-day RD Licensing grace period ended and the session host has no usable license server, so it refuses sessions. GetGracePeriodDays returning DaysLeft 0 and an empty SpecifiedLSList confirm it in seconds. The fix is a real, activated license server with CALs that are new enough for the host — a 2019 CAL cannot serve a 2022 session host — configured through the deployment or the Licensing policies, plus RPC ports open between the two.
Windows 11: "Your organization's security policies block unauthenticated guest access" when opening a NAS share (0x80070035)
The SMB client on Windows 10 Enterprise/Education/Pro for Workstations, Windows 11 Pro and Windows Server 2019+ refuses guest logons by default, and Windows 11 24H2 Enterprise/Pro/Education also requires SMB signing, which guest sessions can't do. A NAS share that only offers guest access therefore fails with the 'block unauthenticated guest access' dialog, Error code 0x80070035, or System error 3227320323, and Event ID 31017 'Rejected an insecure guest logon' lands in the SmbClient/Security log. The fix Microsoft recommends is a real account on the NAS and signing support in its firmware; Set-SmbClientConfiguration -EnableInsecureGuestLogons $true (plus -RequireSecuritySignature $false on 24H2) is the escape hatch, and it costs you signing and encryption on that client.
Ubuntu/Debian: E: Could not get lock /var/lib/dpkg/lock-frontend — who holds it and how to wait for it
Another package manager, usually Ubuntu's unattended-upgrades fired by a persistent systemd timer at boot, holds the dpkg frontend lock while your apt-get runs. apt-get gives up at once while apt waits because Ubuntu ships binary::apt::DPkg::Lock::Timeout "120" for the apt binary only. Read the PID from the message, let the run finish or pass -o DPkg::Lock::Timeout=<seconds> to apt-get, run dpkg --configure -a only after a genuinely interrupted run, and never delete the lock file: it is an fcntl lock the kernel releases when the holder exits.