AD Cross-Reference 0X000020B6: Fix Conflict
This error hits when you try to add a cross-reference in Active Directory that already exists. Usually happens during domain rename or trust setup. Here's how to clear it.
Cause 1: Stale cross-reference left over from a failed domain rename or trust setup
This is the most common trigger. You or someone in your org tried to rename a domain, set up a cross-forest trust, or add a crossRef partition, and the process halfway failed. The directory service created the cross-reference object but never finished the job. Now every time you retry, you get 0X000020B6.
The fix is to manually remove that leftover cross-reference. You'll need ADSI Edit, which is part of the Remote Server Administration Tools (RSAT) or available directly on a domain controller.
- Open ADSI Edit. On a domain controller, go to
Start > Run, typeadsiedit.msc, and press Enter. If you don't have it, install the Active Directory module from Server Manager. - Connect to the Configuration container. In the left pane, right-click ADSI Edit, choose Connect to. In the dialog, select Configuration from the dropdown under Select a well-known Naming Context. Click OK.
- Navigate to the Cross-References container. Expand the tree:
Configuration [server.domain.com] > CN=Configuration,DC=domain,DC=com > CN=Partitions. You should see a list ofCN=... objects—these are cross-references. - Find the duplicate or stale entry. Look for the cross-reference that matches the domain or partition you're trying to add. It's usually named
CN=<domainFQDN>, likeCN=child.domain.com. Thecnattribute holds the DNS name. If you see two entries with the same name, one is stale. - Delete the stale cross-reference. Right-click the object, choose Delete. Confirm the deletion. After clicking Delete, you should see a confirmation dialog asking if you're sure. Click Yes.
- Close ADSI Edit and retry your operation. Go back to your domain rename, trust creation, or partition addition. It should now proceed without the 0X000020B6 error.
One real-world scenario: I had a client trying to add a child domain after a failed rendom /execute. The crossRef was sitting there for three months. Removing it via ADSI Edit took thirty seconds.
Cause 2: An orphaned cross-reference from a decommissioned domain controller
When you demote a domain controller, especially if you force-deleted it or it died hard, sometimes the cross-reference objects in the Partitions container don't get cleaned up. You end up with a reference to a domain that no longer exists.
The fix is the same as above—use ADSI Edit—but you need to confirm which crossRef is truly dead.
- Open ADSI Edit and connect to the Configuration container, same as before.
- Navigate to
CN=Partitionsunder the Configuration naming context. - Examine each crossRef. Look at the
dnsRootattribute. Double-click each candidate object. In the Attribute Editor, finddnsRoot. If the domain controller for that domain is gone, or the domain itself is gone, this crossRef is orphaned. - Check the
msDS-NC-Replica-Locationsattribute. This lists the servers that host this partition. If the list is empty or points to a server that no longer exists, you've found your culprit. After viewing the attribute, you should see a multivalued path likeCN=NTDS Settings,CN=DC01,CN=Servers,CN=SiteName,CN=Sites,CN=Configuration...—if that server is gone, delete the crossRef. - Delete the orphaned crossRef. Right-click and delete it.
- Force replication to all domain controllers: run
repadmin /syncall /AdePin an elevated command prompt. This ensures the deletion is propagated.
Don't skip the replication step. I've seen admins delete the object locally but the error persisted on other DCs because the change hadn't replicated.
Cause 3: Competing cross-references from a misconfigured application partition
Some apps (like Exchange, Skype for Business, or DNS management tools) create their own application partitions. If you manually added a crossRef for the same partition name, or the app created one and then you tried to add another with the same DNS name, you'll hit 0X000020B6.
The fix here is to identify which crossRef is the legitimate one and remove the extra.
- Open ADSI Edit and connect to the Configuration container.
- Go to
CN=Partitionsagain. - Sort by
cnordnsRoot. You're looking for two (or more) objects with the samednsRootvalue. One might be an application partition likeDC=DomainDnsZones,DC=domain,DC=comand the other is a domain crossRef. - Check the
systemFlagsattribute. For a domain crossRef,systemFlagstypically has a value of1(meaning it's a domain partition) or3(domain partition with GC). For application partitions, it's0or2. If you see a duplicatednsRootwhere one is an app partition and the other is a domain crossRef, the domain one is usually the one you want to keep. Delete the app partition crossRef if it's the duplicate. - Delete the extra crossRef. Right-click and delete the object you don't need.
Be careful: deleting the wrong crossRef can break DNS resolution or application functionality. If you're unsure, back up the partition object first—use ldifde -f backup.ldf -d "CN=Partitions,CN=Configuration,DC=domain,DC=com" to export everything.
Quick-reference summary table
| Cause | Symptom | Fix tool | Key action |
|---|---|---|---|
| Stale crossRef from failed rename/trust | Error when adding same domain/trust again | ADSI Edit | Delete duplicate CN object in CN=Partitions |
| Orphaned crossRef from dead DC | Reference to domain that no longer exists | ADSI Edit + repadmin | Check dnsRoot and msDS-NC-Replica-Locations, delete, replicate |
| Duplicate from app partition | Two crossRefs with same dnsRoot | ADSI Edit | Compare systemFlags, keep domain one, delete extra |
Bottom line: 0X000020B6 is almost always a cleanup problem. The directory is protecting itself from duplicate entries. Your job is to find the ghost crossRef and remove it. ADSI Edit is your best friend here. Once you've cleared it, the operation will go through like nothing happened.
Was this solution helpful?