0X000020F0

Fix ERROR_DS_ROOT_REQUIRES_CLASS_TOP (0x000020F0) Fast

Windows Errors Intermediate 👁 0 views 📅 May 28, 2026

Active Directory Domain Services install fails on a fresh server. This error means the root domain naming context is missing 'top' in its objectClass. Fix it in ADSI Edit.

You're stuck with error 0x000020F0 when promoting a domain controller

I get it — you've run dcpromo or installed the AD DS role, clicked through the wizard, and bam: ERROR_DS_ROOT_REQUIRES_CLASS_TOP. The fix is straightforward once you know where to look. Let's get your domain controller running.

The Real Fix: Add the 'top' Object Class via ADSI Edit

The culprit here is almost always a corrupted or incomplete root domain naming context. This happens when a previous domain controller was demoted improperly, or someone restored AD data from an older backup. The root object (the entry named after your domain) must have objectClass: top — without it, AD DS promotion refuses to continue.

Step 1: Open ADSI Edit

  1. Click Start, type adsiedit.msc and hit Enter.
  2. If you don't see ADSI Edit, install it via Server Manager > Add Features (it's part of AD DS and AD LDS tools).

Step 2: Connect to the Root Domain Naming Context

  1. Right-click ADSI Edit in the left pane, choose Connect to.
  2. In the dialog, under Connection Point, select Select a well-known Naming Context.
  3. Choose Root Domain Naming Context from the dropdown. Click OK.

Step 3: Find the Root Object

  1. Expand the tree — you'll see an entry like DC=yourdomain,DC=com.
  2. Right-click that root object, then choose Properties.

Step 4: Add the 'top' Class

  1. In the Attribute Editor, scroll to objectClass.
  2. Click Edit. You'll see a list of existing classes. If top is missing here, that's your problem.
  3. Click Add, type top, and hit OK. (Case doesn't matter here.)
  4. Make sure top appears in the list, then click OK twice to close.

Step 5: Retry the Domain Controller Promotion

Close ADSI Edit. Run the AD DS installation again. The error should be gone — if it isn't, reboot the server first. It usually sticks.

Why This Works

Every object in Active Directory has an objectClass attribute that defines what it is. The top class is the abstract base class for all AD objects. Without it, the root domain naming context isn't recognized as a valid directory partition. The promotion process checks this during the prerequisite validation — it's a hard stop.

Most admins waste time checking DNS, replication, or burning out a clean OS reinstall. Those aren't the issue here. The root object lost its top class during a botched cleanup or restore. Adding it back is the only real fix.

Less Common Variations of This Error

You'll see error 0x000020F0 in three main scenarios. Here's how they differ:

ScenarioWhat's DifferentFix
After a forced demotiondcdiag /q might show orphaned partitionsSame ADSI Edit fix — the root is usually intact, just missing top class
Restored from system state backupAD database restored from a backup of a different serverRequires a metadata cleanup first, then add top class
Cross-forest migration failedADMT or similar tool left the naming context incompleteUse ntdsutil to seize roles, then apply the same ADSI Edit change

In all these cases, the root object itself is the problem. Don't bother checking DNS forwarders, firewall rules, or time sync — they won't generate this specific error code.

Prevention: How to Keep This From Coming Back

Three rules I've learned the hard way:

  • Never force-demote a domain controller without proper cleanup. Always run dcpromo /forceremoval as a last resort, but clean up metadata in AD Sites and Services afterward. Or use Remove-ADDomainController in PowerShell.
  • Don't restore AD from backups of other DCs. If you need an authoritative restore, use the correct backup from the same server. Cross-server restores break the root object class.
  • Script your domain promotions. Save a step-by-step or PowerShell log. When something goes wrong, you'll see exactly where it failed.

Stick to those, and you'll never see 0x000020F0 again. If you do — well, now you know the fix.

Was this solution helpful?