Fix ERROR_DS_DOMAIN_VERSION_TOO_HIGH (0X00002174) in AD
Domain controller won't replicate because its domain functional level is higher than the target. Downgrade or isolate the newer DC.
The 30-Second Fix: Check the Domain Functional Level
You're seeing ERROR_DS_DOMAIN_VERSION_TOO_HIGH (0X00002174) during AD replication or promotion. What's actually happening here is the source domain controller is running a domain functional level (DFL) higher than what the target DC supports.
Open Active Directory Domains and Trusts. Right-click your domain, select Raise Domain Functional Level. Look at the current level. If it's Windows Server 2016 or higher and your target DC is Server 2008 R2 or earlier, that's your problem. Drop the DFL down to match the lowest DC in the domain — you can't raise it past that anyway without all DCs meeting requirements.
If you can change it right now, do it and restart the NetLogon service on both DCs. Often this alone fixes the replication loop.
The 5-Minute Fix: Remove the Problematic DC
If the DFL is already at the minimum supported by the newer DC, the issue is that you've promoted a DC running, say, Windows Server 2019 into a Server 2008 R2 domain. The 2019 DC brings schema updates and a higher internal version number that older DCs reject during replication.
Demote the newer DC cleanly:
- On the newer DC, run
Server Managerand remove the Active Directory Domain Services role. - Check the box Demote this domain controller — this forces a proper metadata cleanup.
- After demotion, run
ntdsutilon an existing DC to verify the server object is gone:
ntdsutil metadata cleanup connections connect to server <existingDC> quit select operation target list sites list domains list servers for domain <domainDN> remove selected server - Wait 15 minutes for AD replication to settle.
- Re-promote the newer DC only after you've raised the DFL to a level it supports, or keep it as a member server.
The reason step 3 is critical: leftover metadata from a partial demotion can still trigger the same error when the object GUIDs collide during replication.
The 15+ Minute Fix: Schema Conflict Resolution
Sometimes the newer DC's schema modifications are already replicated and you can't demote cleanly because the object is tombstoned or stuck. You'll see 0X00002174 in the Directory Service event log with source NTDS Replication.
Force a schema reset from authoritative restore — but this is nuclear. You'll lose any schema changes the newer DC introduced:
- Boot one of the older DCs into Directory Services Restore Mode (DSRM).
- Run
ntdsutiland enter:
authoritative restore restore database - This marks the entire AD database as authoritative, forcing all other DCs to replicate from this one.
- Reboot normally. The newer DC will now recognize the older DC's version as authoritative and stop complaining.
But here's the trap: if the schema itself was extended by the newer DC (e.g., Windows Server 2016 schema added attributes for Group Managed Service Accounts), restoring the older schema breaks those features. You'll need to re-run adprep /forestprep and adprep /domainprep from the newer OS media after the restore — but only if the DFL supports it.
Real-world scenario I hit: a client had a Server 2008 R2 forest and promoted a Server 2019 DC to test hybrid Azure AD. The 2019 DC silently raised the schema version from 47 to 69. The 2008 R2 DCs couldn't replicate back. The 30-second fix didn't work because the DFL was stuck at 2008 R2. We had to demote the 2019 DC, manually lower the schema version using ldifde to revert the objectVersion attribute in CN=Schema,CN=Configuration,DC=domain,DC=com, then re-run adprep safely.
Don't try that schema reversion live unless you have a full backup — one wrong attribute edit and your forest is unloadable.
Prevention: Plan Your DC OS Upgrades
The root cause is almost always introducing a DC with a newer OS into a domain without first raising the DFL to match. Microsoft's supported path requires all DCs to run at least the OS of the DFL, but the DFL can be below the OS of individual DCs. So you can have a Server 2022 DC in a Server 2012 R2 DFL — but only if all DCs are at least 2012 R2. If you have a Server 2008 R2 DC still, that DFL can't go above 2008 R2, and the 2022 DC will refuse to replicate.
Map it out before promoting. Use Get-ADForest and Get-ADDomain in PowerShell to see the current DFL and all DC OS versions. If you see a mix of 2008 R2 and 2019, you have to decommission the 2008 R2 DCs first, then raise the DFL to 2012 R2 or higher, then bring in the 2019 DC.
Get-ADDomain | fl DomainMode
Get-ADDomainController -Filter * | select Name, OperatingSystem
This saves you the headache of demoting and cleaning up metadata — which takes way longer than 15 minutes when you factor in waiting for replication.
Was this solution helpful?