Fix "Unable to Resolve Target System Name" in tracert
Windows can return Unable to resolve target system name almost immediately after you run tracert. The message looks like a routing problem, but in this case the route trace usually has not started. Windows first has to convert the destination hostname into an IP address. If that lookup fails, tracert has nowhere to send its probes.
The fastest diagnostic split is hostname versus IP. If tracert example.com fails instantly but a trace to the destination IP begins showing hops, stop looking for a broken router first. The failed stage is name resolution.
Do not confuse that with a trace that starts normally and later shows Request timed out. Once tracert displays the destination IP or begins listing hops, the hostname has already been resolved. Timeouts after that belong to routing, filtering, or ICMP behavior, not to the original DNS error.
Quick answer: if tracert hostname returns Unable to resolve target system name, verify the hostname, test the target by IP, then check Resolve-DnsName, nslookup, and the DNS servers Windows is actually using. Flush the DNS cache or change network settings only after those tests point to a local resolver problem.
What Does "Unable to Resolve Target System Name" in tracert Mean?
Unable to resolve target system name means Windows could not obtain an IP address for the destination hostname before tracert began tracing the route.
A failed lookup can look like this:
C:\>tracert bad-name
Unable to resolve target system name bad-name.
Compare that with a target whose name has already been resolved:
C:\>tracert valid-host
Tracing route to valid-host [192.0.2.10]
over a maximum of 30 hops:
In the second example, the DNS stage is already behind you. Whatever happens on hop 1, hop 5, or at the destination is a different problem.
The initial resolution can fail because the hostname is mistyped, the requested DNS record does not exist, the configured DNS server is unreachable, or Windows is asking a resolver that does not know the relevant DNS zone. Private names introduce another layer: server01 may work on an office network because a DNS suffix is appended automatically, then fail at home because neither the suffix nor the private resolver is available.
| Result | What it proves | What it does not prove |
|---|---|---|
Unable to resolve target system name |
The destination name was not converted to a usable address | That a router or firewall is blocking the route |
Tracing route to host [IP] |
Name resolution succeeded | That every hop or the destination will answer |
Request timed out after tracing starts |
A probe did not receive a response | That DNS is still failing |
If the error appears before the first hop, keep the first round of troubleshooting on the name-resolution side.
Does tracert Work When You Use the Destination IP Address?
If tracert fails with a hostname but starts when you supply the destination IP directly, DNS becomes the first layer to investigate. Using an IP removes the initial forward lookup of the target name.
Start with the failing command:
tracert example.com
Then test the real destination address:
tracert IP_ADDRESS
If you are documenting the syntax rather than tracing a real host, use a reserved documentation address such as 203.0.113.10. Do not expect that address to behave like a live Internet server.
Suppose the hostname fails immediately, while the IP version begins showing routers. That is a strong signal: Windows can start the network trace once DNS is removed from the equation. It still does not prove that the entire route is healthy or that the final host will reply.
Do not overread the IP test. A hostname behind a CDN, Anycast network, reverse proxy, or load balancer may resolve to different IP addresses depending on resolver, location, or time. Tracing one known IP proves that tracert can operate without target-name resolution; it does not always prove that you are testing the exact path the hostname would use right now.
If both the hostname test and the direct-IP trace fail, there may be two separate issues. The DNS error still needs to be explained, but routing, local firewall rules, VPN state, interface configuration, or upstream connectivity may also need attention.
| Command or symptom | Likely layer to check | Next test |
|---|---|---|
tracert hostname returns Unable to resolve... |
Name resolution | Run Resolve-DnsName and nslookup |
tracert IP_ADDRESS starts showing hops |
DNS becomes the first suspect | Query the hostname directly |
tracert hostname starts, then times out |
DNS already succeeded | Investigate routing and ICMP separately |
ping hostname says it cannot find the host |
Windows name resolution | Compare DNS-specific tools |
Resolve-DnsName hostname fails |
DNS record, resolver, or DNS path | Identify the DNS server and query it explicitly |
First isolate DNS from the path. It is a much cleaner test than rebooting the router or changing several settings at once.
Can Windows Resolve the Hostname Outside tracert?
Test the hostname with DNS-specific commands before changing Windows networking. Resolve-DnsName and nslookup tell you much more than another failed tracert: whether the name exists, whether the requested address record exists, whether the resolver answers, and whether different DNS servers return different results.
Test the hostname with Resolve-DnsName
Open PowerShell and run:
Resolve-DnsName example.com
A working query may return an A record, an AAAA record, a CNAME chain, or several records. Focus on the record type and returned address rather than just seeing that the command printed something.
A simplified successful result can look like:
Name : example.com
Type : A
IPAddress : 192.0.2.10
The address above is only documentation data. Your target should return the address or addresses expected for its own DNS configuration.
You can query one address family explicitly:
Resolve-DnsName example.com -Type A
Resolve-DnsName example.com -Type AAAA
This distinction matters because "the name does not exist" and "the name exists but has no AAAA record" are not the same condition.
Compare the result with nslookup
nslookup is useful when you want to see which DNS server is answering or send the same query to another resolver.
nslookup example.com
To query a specific DNS server:
nslookup example.com DNS_SERVER_IP
If the normal resolver fails but another appropriate resolver returns the expected record, you have a useful difference to investigate. For a public hostname, comparing against another public resolver can help. For a private corporate hostname, it can mislead you: public DNS is not supposed to know a private zone.
| DNS result | What it usually means | What to check next |
|---|---|---|
| Expected A or AAAA record | The queried resolver can resolve that record type | Compare with the Windows system resolution path if tracert still fails |
| NXDOMAIN / non-existent domain | The resolver says that DNS name does not exist in the namespace it queried | Verify spelling, FQDN, DNS zone, and resolver |
| Name exists but requested A or AAAA data is absent | The hostname exists, but not with that record type | Check whether the service is meant to use IPv4, IPv6, or both |
| SERVFAIL / server failure | The resolver could not complete resolution successfully | Try the authoritative path or another appropriate resolver and inspect DNS configuration |
| Query timeout | No usable reply arrived from the resolver in time | Check reachability, DNS server address, VPN state, and filtering |
| One DNS server resolves while another does not | The resolvers have different data, visibility, policy, or cache state | Determine which resolver should answer for this namespace |
A particularly useful case is when nslookup returns the expected address but tracert hostname still reports that the name cannot be resolved. Stop changing public DNS servers at that point. nslookup performs a direct DNS query, while Windows applications use the system name-resolution path, where local cache, hosts, suffix processing, interface configuration, and policy can matter.
The reverse mismatch is possible too. A website may open in a browser while system tools have trouble resolving the same hostname if the browser is using its own DNS-over-HTTPS resolver or cached DNS data. Browser success alone does not prove that Windows system DNS is healthy.
Is the Hostname Correct and Does a DNS Record Actually Exist?
If other domains resolve normally and only one target fails, verify the target itself before changing Windows. An incorrect hostname, a URL pasted into tracert, a missing DNS record, or a name that exists only in a private zone can all produce the same starting symptom.
tracert accepts a hostname or IP address. It does not accept a complete web URL.
Wrong:
tracert https://example.com/path
Correct:
tracert example.com
The same applies to ports and application paths. Reduce a browser address such as https://example.com:8443/admin to example.com before tracing it.
Private environments add another common trap. Inside an office network, this may work:
tracert server01
Windows may be appending a DNS suffix automatically. From another network, the short name can fail while the FQDN still works:
tracert server01.example.internal
Query exactly what you are trying to trace:
Resolve-DnsName exact-hostname
nslookup exact-hostname
If you know the resolver that should know the zone, ask it directly:
nslookup exact-hostname DNS_SERVER_IP
Recent DNS changes are another reason not to assume every resolver has the same answer. One server may already have fresh data while another still holds an older cached result until its TTL expires. Compare resolvers instead of treating the age of the change as proof by itself.
Check the target before fixing the resolver. If the hostname is wrong or the expected record is missing from the DNS namespace being queried, changing Windows DNS settings only moves the failed query somewhere else.
Is Windows Using the DNS Server You Expect?
A hostname can exist perfectly well and still fail on one Windows machine if that machine is asking the wrong resolver. This gets less obvious when Ethernet, Wi-Fi, VPN software, Hyper-V, WSL, Docker, or other virtual adapters coexist.
Start with:
ipconfig /all
Check the relevant adapters for DNS server addresses, connection-specific DNS suffixes, DHCP state, and VPN or virtual interfaces. Then get a cleaner PowerShell view:
Get-DnsClientServerAddress
For IP configuration by interface:
Get-NetIPConfiguration
Two adapters can be up, the VPN can say Connected, and ipconfig /all can show several DNS servers at once. This is where querying the resolver explicitly is more useful than staring at the GUI.
nslookup example.com DNS_SERVER_1
nslookup example.com DNS_SERVER_2
If one server returns the expected address and another does not, compare what those resolvers are intended to know. A corporate DNS server may resolve both Internet names and private company zones. A public resolver may handle example.com correctly while knowing nothing about db01.corp.example.
Public DNS can be perfectly healthy here. It can simply be the wrong DNS for that namespace.
- Run
ipconfig /allandGet-DnsClientServerAddress. - Identify the DNS servers attached to the relevant physical, VPN, and virtual interfaces.
- Query the failing hostname against each resolver that should know it.
- Compare the responses rather than assuming the first visible adapter controls every DNS query.
- For private names, confirm that the resolver has access to the private zone.
When VPN or DNS policy overrides normal adapter settings
On managed Windows systems, DNS selection is not always as simple as "use the DNS server on the interface with the default route." VPN clients and Windows Name Resolution Policy Table rules can send queries for selected namespaces to specific DNS servers.
If ordinary adapter settings look correct but only a corporate suffix behaves differently, inspect NRPT policy:
Get-DnsClientNrptPolicy
NRPT is especially relevant to split-DNS and corporate VPN setups. A rule can affect corp.example without changing how Windows resolves unrelated public domains. That explains the classic pattern where Google and other public sites resolve normally while one internal namespace fails.
Do not remove NRPT or VPN DNS policy just because it appears in the output. First confirm whether the failing hostname falls under one of those namespaces and whether the specified resolver is reachable.
Could the Windows DNS Cache or hosts File Be Returning the Wrong Result?
If one Windows PC behaves differently from another device on the same network, local resolver state deserves attention. The DNS client cache can retain previous positive or negative results, while the hosts file can override normal DNS lookup for particular names.
Inspect and clear the Windows DNS cache
View the current resolver cache with:
ipconfig /displaydns
On a busy workstation, filter the output:
ipconfig /displaydns | findstr /i "example.com"
If the DNS record recently changed or the machine cached an earlier failed lookup, flush the local DNS cache:
ipconfig /flushdns
Then repeat the actual tests:
Resolve-DnsName example.com
tracert example.com
ipconfig /flushdns cannot create a missing record, repair an unreachable resolver, or teach public DNS about a private hostname. If the same lookup fails immediately after the flush with the same DNS server, keep troubleshooting the resolver or DNS data instead of flushing again.
Check the Windows hosts file
The Windows hosts file is located at:
C:\Windows\System32\drivers\etc\hosts
Look for an old test address, duplicate entry, typo, forgotten development mapping, or a line added by filtering software.
- an obsolete IP left from testing;
- a misspelled hostname;
- duplicate or conflicting mappings;
- a temporary development entry;
- an unexpected entry added by another program.
Do not wipe the file just because name resolution is failing. Correct only an entry that actually affects the hostname you are troubleshooting.
There is also an important limitation here: a syntactically valid stale hosts entry normally resolves the hostname to the wrong IP rather than causing the exact Unable to resolve target system name message. That makes hosts especially relevant when one machine returns an unexpected address, not as the automatic explanation for every unresolved target.
Does the Name Require a DNS Suffix or a VPN Connection?
Short and private hostnames may resolve only when Windows has the right DNS suffix and access to the private resolver. A common pattern is simple: server01 works in the office, fails at home, then starts working again as soon as the corporate VPN connects.
Compare the short name with its FQDN:
server01
server01.example.internal
Then query both:
Resolve-DnsName server01
Resolve-DnsName server01.example.internal
And compare tracert:
tracert server01
tracert server01.example.internal
If the FQDN resolves while the short name fails, the target itself probably exists. Look at suffix processing next.
Useful commands include:
ipconfig /all
Get-DnsClient
Get-DnsClientGlobalSetting
Check connection-specific suffixes and the global suffix search list. DHCP, Group Policy, manual configuration, and VPN software can all influence those settings.
Now consider the VPN case. Public domains still resolve, but server01.example.internal fails the moment the tunnel disconnects. Replacing the home router's DNS with a public resolver is not a useful fix. The private namespace probably depends on a DNS server reachable through the VPN.
Even a connected VPN does not guarantee that DNS is correct. The tunnel may be established while the expected corporate resolver, DNS suffix, or namespace policy is missing or unreachable.
| Test | Result | Likely direction |
|---|---|---|
| Public FQDN | Works | General Internet DNS is available |
| Private short hostname | Fails | Check suffix, private DNS, and VPN |
| Private FQDN | Works | Short-name suffix processing is suspect |
| Private FQDN | Fails without VPN, works with VPN | The name depends on DNS reachable through the tunnel |
| Only one private namespace fails while VPN is connected | Public DNS works, selected namespace does not | Check split-DNS or NRPT policy |
Check whether the name is private before blaming public DNS.
Is IPv4 or IPv6 Resolution Causing Different Results?
Separate A and AAAA lookups when the hostname behaves differently between address families. An A record supplies an IPv4 address; an AAAA record supplies an IPv6 address.
Query IPv4:
Resolve-DnsName example.com -Type A
Query IPv6:
Resolve-DnsName example.com -Type AAAA
Then force tracert to use one family at a time:
tracert -4 example.com
tracert -6 example.com
A hostname can legitimately have only an A record. Missing AAAA data in that case is not a DNS failure. Another target may publish both families while the local network has working IPv4 and broken IPv6 connectivity.
If tracert -4 works and tracert -6 does not, verify whether an AAAA record exists and whether IPv6 connectivity actually works on the active interface. The reverse can happen on IPv6-preferred networks.
Test first. Disable nothing yet.
Disabling IPv6 is a poor first response to Unable to resolve target system name. First establish whether the problem is a missing AAAA record, failed IPv6 connectivity, or a DNS failure that happens before either address family can be used.
If no address exists for the family you force, tracert -4 or tracert -6 cannot manufacture one. The test narrows the fault; it does not repair DNS.
Why Does tracert -d Not Fix "Unable to Resolve Target System Name"?
tracert -d does not bypass the initial lookup of a destination hostname. The -d option suppresses hostname resolution for intermediate hop addresses after the trace has started.
This command can still fail on the target name:
tracert -d example.com
because Windows first needs to perform a forward lookup:
example.com
to
IP address
Without the destination IP, no probes can be sent.
During a working trace, Windows may also perform reverse lookups on intermediate router IP addresses so that names appear beside or instead of numeric addresses. That is the lookup -d suppresses.
Compare:
tracert -d example.com
with:
tracert -d IP_ADDRESS
The second command needs no forward lookup for the target because you supplied the address yourself. That is why an IP test can isolate target DNS resolution while -d cannot fix an unresolved hostname.
You can check the built-in option description with:
tracert /?
A good rule is short: -d skips reverse lookups along the path; it does not convert an unresolved destination name into an IP.
What Should You Check Before Changing DNS or Resetting the Network?
Before resetting the Windows network stack, narrow the failure to a hostname, DNS record, resolver, local Windows state, VPN/private DNS configuration, or one address family. Most of the useful early tests are read-only.
- Verify the target syntax. Pass a hostname or IP to
tracert, not a URL, path, or port. - Check the hostname spelling. If only one name fails, confirm that it really exists.
- Trace the destination by IP. If hops begin appearing, investigate name resolution first.
- Run
Resolve-DnsName hostname. Note whether you get an A/AAAA record, NXDOMAIN, missing record type, server failure, or timeout. - Run
nslookup hostname. Record the DNS server answering the query. - Inspect DNS configuration. Use
ipconfig /allandGet-DnsClientServerAddress. - Query the expected resolver explicitly. Use
nslookup hostname DNS_SERVER_IP. - Compare scope. Test the same hostname from another device, another network, or with VPN on and off.
- Check local state if only one PC fails. Inspect
ipconfig /displaydnsand thehostsfile; flush the cache only when justified. - For internal names, test the FQDN. Compare it with the short hostname and inspect DNS suffix settings.
- Check VPN and policy. For corporate namespaces, inspect the VPN-assigned DNS configuration and, when relevant,
Get-DnsClientNrptPolicy. - Separate IPv4 and IPv6. Compare A/AAAA records and
tracert -4withtracert -6. - Repeat the original trace. Once resolution works, run
tracert hostnameagain.
One extra comparison often locates the fault faster than another reset command:
| What you observe | Most useful layer to investigate |
|---|---|
| The hostname fails on one Windows PC only | Local resolver cache, hosts, DNS client configuration, adapter, or policy |
| The hostname fails on every device in the same network | Network DNS resolver, router-provided DNS, upstream DNS, or the DNS record itself |
| The hostname works only while VPN is connected | Private DNS, VPN DNS assignment, split DNS, or NRPT |
| Only one hostname or DNS zone fails | Name, DNS record, zone visibility, delegation, or namespace-specific policy |
| FQDN works but the short hostname fails | DNS suffix or suffix search list |
| A lookup works but AAAA does not | Record-family or IPv6-specific issue, not a generic DNS outage |
A compact decision flow is:
Unable to resolve target system name
Check the target syntax
If wrong: correct the hostname
Test tracert with the destination IP
If it starts: investigate name resolution
Run Resolve-DnsName and nslookup
If the name is absent: verify the record and zone
If the query times out: verify the resolver and path to it
If resolvers disagree: identify which one should answer
If the name is private or short:
check FQDN, suffix, VPN, private DNS, and policy
If only one Windows PC fails:
inspect cache, hosts, adapter DNS, and NRPT
If IPv4 and IPv6 differ:
compare A, AAAA, tracert -4, and tracert -6
Do not start by removing adapters, randomly replacing DNS servers, disabling IPv6, changing firewall rules, or performing a full network reset. Those actions change several variables before you know which layer failed.
The original error is resolved when Windows returns the expected address for the hostname and tracert hostname no longer stops with Unable to resolve target system name. The trace can still contain Request timed out afterward. If that happens, DNS has already done its job and the investigation has moved to another layer.
A useful troubleshooting result is specific: the hostname was wrong, the record did not exist, the resolver could not answer, the private DNS server was unavailable without VPN, the short name needed a suffix, one Windows machine had local resolver state or policy problems, or IPv4 and IPv6 behaved differently. "tracert does not work" is only the starting symptom.


