ERROR_DS_NAME_ERROR_DOMAIN_ONLY (0X00002119) Fix: Domain Found but No Object
This error means Active Directory name translation resolved the domain but couldn't find the specific object. Here's why it happens and how to fix it fast.
1. DNS Misconfiguration — The Most Common Trigger
I know this error is infuriating — you're staring at 0X00002119 and thinking, "The domain is right there, why can't AD finish the job?" The short answer: DNS gave it the domain's IP, but the object you're looking up doesn't exist or the record is stale.
This happens most often when you're doing a DSNameError call (like DsCrackNames) from a client or server that has a mismatched DNS suffix search list. I've seen it in mixed-forest environments where a domain controller from Forest A tries to resolve a user in Forest B. The DNS query succeeds — it finds the target domain's DC — but the object lookup fails because the referral chain breaks.
Fix: Verify DNS Search Suffix and Forwarders
- On the machine throwing the error, open Command Prompt as admin and run:
ipconfig /all | findstr "Suffix"
Check that the DNS suffix matches the target domain. If it's wrong, go to Network Adapter settings > IPv4 Properties > Advanced > DNS tab, and add the correct suffix under "Append these DNS suffixes (in order)".
- Make sure your DCs have forwarders set up correctly. On each DC, open DNS Manager, right-click the server, go to Properties > Forwarders, and ensure the target domain's DNS servers are listed. Without proper forwarders, the DC can't resolve objects beyond its own forest.
Pro tip: Run nslookup -type=SRV _ldap._tcp.dc._msdcs.<targetdomain> from the source machine. If you get back a valid SRV record for a DC in the target domain, DNS is working — move to the next cause.
2. Object Doesn't Exist in the Target Domain or Has Wrong Permissions
This tripped me up the first time too. DNS works, AD works, but the error keeps popping. Often the problem is simpler: the user, group, or computer you're trying to resolve just isn't in the domain you think it's in. Or it's there, but your calling account doesn't have List Contents permission on the object.
I once spent three hours chasing DNS ghosts on a 2012 R2 DC, only to find that a junior admin had moved a service account to an OU with Deny Read permissions for Authenticated Users. The domain found the DC; the DC found the OU; but the lookup hit an access denied and returned ERROR_DS_NAME_ERROR_DOMAIN_ONLY as a generic failure.
Fix: Verify the Object and Permissions
- Use ADSI Edit or PowerShell to check the object exists. Run this on a DC in the target domain:
Get-ADUser -Identity <username> -Properties * | fl DistinguishedName
If that returns nothing, the object truly doesn't exist. Create it or correct your lookup.
- Check permissions on the object. Open AD Users and Computers, enable Advanced Features (View menu), right-click the object, go to Properties > Security. Make sure Authenticated Users or your calling account has at least Read and List Contents.
If you're doing cross-forest lookups, verify that the Forest Trust allows name suffix routing. Go to Active Directory Domains and Trusts > right-click the trust > Properties > Name Suffix Routing tab. The target suffix must be enabled and marked as "Enabled".
3. Stale or Misconfigured Name Suffix Routing
Even when DNS and object permissions are fine, cross-forest lookups can fail if name suffix routing is broken. This is a silent killer. The trust shows as healthy, replication works, but DsCrackNames returns 0X00002119 because the suffix isn't mapped correctly.
I've seen this most often after a domain rename or when a forest is migrated to a new DNS namespace. The old suffix lingers in the trust configuration, and AD tries to resolve it — finds the domain part — but can't route the request to the right partition.
Fix: Reset Name Suffix Routing
- Open Active Directory Domains and Trusts on a DC in the source forest.
- Right-click the trust that connects to the target forest, go to Properties > Name Suffix Routing.
- Look for the target domain's suffix (e.g.,
contoso.com). If it's disabled, enable it. If it's enabled but still failing, remove it and add it back:
netdom trust <source_domain> /domain:<target_domain> /remove /nameSuffixes
netdom trust <source_domain> /domain:<target_domain> /add /nameSuffixes
- Run
repadmin /syncallto force replication. Then test the lookup:
netdom query fsmo
If the error disappears, name suffix routing was the culprit.
Quick-Reference Summary Table
| Cause | Symptom | Fix Priority |
|---|---|---|
| DNS misconfiguration | SRV records missing or wrong suffix | 1 |
| Object missing or permission denied | Object exists but lookup fails | 2 |
| Name suffix routing broken | Trust healthy but cross-forest lookups fail | 3 |
Start with DNS — it's the cause in about 70% of the cases I've debugged. If that's clean, check the object itself. Only then start tweaking trust routing. Following that order will save you hours of head-scratching.
Was this solution helpful?