DNS_PROBE_FINISHED_NXDOMAIN
The browser asked DNS where your domain lives and was told the name doesn’t exist, usually because a record is missing or still spreading.
Also appears as
- This site can’t be reached my-app.com’s server IP address could not be found. ERR_NAME_NOT_RESOLVED
- Hmm. We’re having trouble finding that site. We can’t connect to the server at my-app.com.
- Safari Can’t Find the Server Safari can’t open the page “my-app.com” because Safari can’t find the server “my-app.com”.
Prompt to fix it
My custom domain shows "DNS_PROBE_FINISHED_NXDOMAIN" in Chrome. Run dig or nslookup for the bare domain and www, find which nameservers are authoritative, and compare the records with what our hosting provider expects for this project (check the repo’s deploy config to see which host we use). Tell me exactly which records to add or change, at which DNS provider, and how to confirm the fix with a public resolver. Don’t change app code for this; it’s a DNS problem.
Paste into Layerwise or any AI coding tool.
What it means
DNS is the internet’s address book: it turns my-app.com into the IP address of the server that hosts it. NXDOMAIN, short for “non-existent domain,” is the answer DNS gives for a name with no records. The browser never reached your host, so nothing in your app’s code causes this or can fix it.
With a newly connected custom domain, the records usually went to the wrong place. A domain’s nameservers decide which company’s DNS settings count. If you added records at your registrar while the nameservers point to Cloudflare or Vercel, or the other way around, nobody sees them.
A “doesn’t exist” answer gets cached too. If you visited before the records existed, your computer or network may keep that answer for a while after you fix DNS, so check with a public DNS lookup before you decide the change failed.
Common causes
- The host’s DNS records were never added, or were added for
my-app.combut notwww.my-app.com, or the other way around. - The records live at one DNS provider while the domain’s nameservers point to another.
- The domain was just registered or its nameservers just changed, and the update hasn’t reached every DNS server yet.
- The domain expired or is on hold at the registrar, which removes it from DNS.
- The address has a typo, or it uses a subdomain nobody created.
How to fix it
- Run
dig NS my-app.com(ornslookup -type=ns my-app.com) to see which provider’s nameservers are in charge. - Open your host’s domain settings (Vercel: Project → Settings → Domains; Netlify: Domain management) and copy the exact records it asks for.
- Add those records at the provider that runs your nameservers, for both the bare domain and
www. - Check the result with
dig my-app.com @1.1.1.1or a public DNS lookup site. Once it returns an IP address, the fix is live. - Clear the stale answer on your machine: open
chrome://net-internals/#dnsin Chrome and click Clear host cache. - If the domain resolves nowhere, log in to your registrar and confirm the domain is active and paid.
Related errors
All errorsNET::ERR_CERT_COMMON_NAME_INVALID
The site’s security certificate was issued for a different domain name, so the browser can’t confirm it’s really your site.
ERR_TOO_MANY_REDIRECTS
The site keeps redirecting the browser in a circle, usually between HTTP and HTTPS or between two domains, so the browser stops trying.
Error 522: Connection timed out
Cloudflare couldn’t open a connection to the server behind your site in time, so it showed its own error page in place of your app.
404 on page refresh
Your single-page app works from the home page, but the host has no file for deeper URLs, so reloads and shared links hit a 404.
Build with an agent that checks its work
The Layerwise agent clicks through the live preview and reads the console, so it catches errors before you do.