networking
dns
ai_generated
true
NXDOMAIN: Host example.invalid not found: 3(NXDOMAIN)
ID: networking/dns-nxdomain
90%Fix Rate
92%Confidence
70Evidence
2023-01-01First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| any | active | — | — | — |
Root Cause
The DNS server authoritatively responded that the queried domain name does not exist. Unlike SERVFAIL, this is a definitive answer: the domain is not registered, is misspelled, or the DNS zone does not contain the requested record.
genericWorkarounds
-
92% success Verify the domain name spelling and check if the DNS record exists
1. Double-check the hostname for typos 2. Query with dig: dig example.com A +trace 3. Check the authoritative nameservers: dig example.com NS 4. If it is a subdomain, verify the record exists in the zone: dig sub.example.com A @ns1.example.com 5. If the domain was recently registered, wait for propagation (up to 48h for new TLDs) 6. Check WHOIS for domain registration status: whois example.com
-
95% success Create the missing DNS record in the zone
1. Log into your DNS provider or zone management interface 2. Add the A/AAAA/CNAME record for the hostname 3. Verify the record was published: dig hostname @authoritative-ns 4. Wait for TTL expiry on caches that have cached the NXDOMAIN 5. Flush local DNS cache: sudo systemd-resolve --flush-caches or sudo resolvectl flush-caches
Dead Ends
Common approaches that don't work:
-
Switch to a different public DNS resolver expecting the domain to resolve
90% fail
NXDOMAIN is an authoritative answer propagated by the domain's nameservers. All recursive resolvers will return the same NXDOMAIN because the record genuinely does not exist in the authoritative zone.
-
Retry the query repeatedly hoping for a different result
95% fail
NXDOMAIN is a definitive negative answer, often with a negative TTL. Retrying produces the same result until the domain is actually created or the record is added to the zone.
Error Chain
Leads to:
Preceded by:
Frequently confused with: