Fix it now
Error 8524 is published as the DSA operation being unable to proceed because of a DNS lookup failure. Before you touch DNS, check Microsoft’s first documented cause: the source DC is offline or gone, and only its stale NTDS Settings object is keeping the destination trying.
repadmin /showrepl <fqdn of source DC>
ipconfig /all
dcdiag /test:dns /v /e /f:dnsresults.txt
- Read the DSA Object GUID out of the
repadmin /showreploutput for the partner that is failing. Everything else uses it. - Ask whether that partner still exists. If it has been decommissioned or force-removed, the fix is metadata cleanup, not DNS:
ntdsutil,metadata cleanup,connections,connect to server <healthy partner>,quit,remove selected server <name>. - If it does exist, test the record that matters against each DNS server the destination uses:
nslookup -type=cname <guid>._msdcs.<forest root DNS name> <dns server ip> - If the alias does not resolve, force the source DC to register it:
net stop netlogon & net start netlogonon the source. - Test the host record too, and re-register it if it is missing:
nslookup -type=A+AAAA <fqdn of source DC> <dns server ip>, thenipconfig /registerdnson the source.
Query each DNS server by address rather than relying on whatever the resolver picks. The whole point is finding the server that has a different answer from the others.
If replication resumes, stop here. If it does not, the next section explains which record is being looked up and why you have never created it by hand.
Why it happens
When the Knowledge Consistency Checker builds a connection between two controllers, it records the partner by the GUID of its NTDS Settings object rather than by name. Names change; the GUID does not. To turn that GUID back into an address, the controller looks up an alias record of the form <ObjectGUID>._msdcs.<forest root DNS name>, which the partner registers automatically. That alias points at the partner’s own host record, and everything else follows from there.
Microsoft’s cause list for 8524 has six entries and the first one is not about DNS at all: the source DC is offline or no longer exists, but its NTDS Settings object still exists in the destination DC’s copy of Active Directory. The destination keeps trying to reach a partner that has gone, and the failure it reports is a DNS lookup failure because the lookup for a decommissioned machine naturally fails. Anyone who starts by rebuilding a zone here has been sent to the wrong place by the error text.
The remaining five causes are DNS in the ordinary sense: the source failed to register its records because its own DNS client settings do not point at servers that host, forward or delegate the _msdcs.<forest root> zone; the destination’s DNS client settings have the same problem; the records exist somewhere but not on the servers the destination queries, because of replication latency, a replication failure or a zone transfer failure; forwarders or delegations prevent cross-domain resolution; or a DNS server in the path is simply not working.
The partner does not exist any more
You have this one if The GUID alias resolves nowhere, and nobody can say where that server is because it was decommissioned months ago.
- Confirm the machine really is gone rather than switched off.
- Remove the stale object from Sites and Services: expand the site, Servers, the server name, right-click the NTDS Settings object and delete it.
- Or do it from the command line:
ntdsutil,metadata cleanup,connections,connect to server <healthy partner>,quit,remove selected server <name>. - Confirm the destination stops trying, then re-check
repadmin /replsummary.
Microsoft lists this first among the causes of 8524. It is also the one that makes the error text most misleading, because it really is a DNS lookup that failed – for a machine that should not be looked up at all.
The source never registered its records
You have this one if The GUID alias is absent from the zone entirely, and the source has recently been rebuilt, renamed or restored.
- On the source, run
ipconfig /alland confirm its DNS servers host, forward or delegate the_msdcs.<forest root>zone and the source’s own primary DNS suffix zone. - Force the alias to register:
net stop netlogon & net start netlogon. - Force the host record to register:
ipconfig /registerdns. - Re-query both from the destination’s DNS servers by address and confirm they are now there.
If registration is refused, check whether the zone allows secure dynamic updates and that the source’s computer account can write to it.
The destination is asking a DNS server that does not have the answer
You have this one if The record resolves from one machine and not from the failing controller.
- Run
ipconfig /allon the destination and confirm its DNS servers host, forward or delegate the zones that hold the source’s records. - Query the SOA for each zone against each of those servers by address:
nslookup -type=soa _msdcs.<forest root> <dns server ip> - Remove any public resolver from the adapter. External resolution belongs in the DNS server’s forwarders, not on a domain controller’s network adapter.
- Flush and retest:
ipconfig /flushdns, thendcdiag /test:dns /v /e /f:dnsresults.txt.
A domain controller with a public DNS server on its adapter resolves the internet perfectly and its own forest intermittently. It is one of the most common shapes of this error.
Only cross-domain partners fail
You have this one if Controllers replicate fine inside their own domain and fail only across domains in the same forest.
- Confirm the
_msdcs.<forest root>zone exists and is visible to every controller in the forest. - Check the delegation from the forest root zone to it, including the name server records the delegation carries.
- Check the forwarders on the DNS servers each side uses; invalid forwarders or delegations are a documented cause of exactly this pattern.
- Test resolution of a partner’s GUID alias from a controller in each domain before declaring it fixed.
Full reference
The record you are actually looking for
The fully qualified alias for a domain controller takes the form <ObjectGUID from the source DC's NTDS Settings object>._msdcs.<forest root domain>. For a controller with GUID 8a7baee5-cd81-4c8c-9c0f-b10030574016 in the contoso.com forest, that is 8a7baee5-cd81-4c8c-9c0f-b10030574016._msdcs.contoso.com. You get the GUID from repadmin /showrepl <fqdn of the source DC>, which prints it as the DSA Object GUID.
The queries, in the order that isolates the fault
| Query | What it tells you |
|---|---|
nslookup -type=soa <source DC DNS domain> <dns server ip> |
Whether that DNS server is authoritative for, or can reach, the source’s own domain zone |
nslookup -type=soa _msdcs.<forest root> <dns server ip> |
The same for the forest-wide zone that holds the alias |
nslookup -type=cname <guid>._msdcs.<forest root> <dns server ip> |
Whether the alias is registered on that specific server |
nslookup -type=A+AAAA <fqdn of source DC> <dns server ip> |
Whether the host record the alias points at is there too |
ping <guid>._msdcs.<forest root> |
An end-to-end check of the same name from the destination |
Run each of these against the primary and the secondary DNS server of the source, and then against those of the destination. Four machines, four answers, and the one that differs is your fault. Doing it without naming the server is how people conclude that DNS is fine when one of four servers has a stale answer.
Forcing registration, correctly
| What is missing | Command, on the source DC |
|---|---|
| The GUID alias in _msdcs | net stop netlogon & net start netlogon |
| The A or AAAA host record | ipconfig /registerdns |
Those are the two documented actions and they are not interchangeable. Restarting Netlogon registers the locator and alias records; ipconfig /registerdns registers the host record. If the alias is present and the host record is not, the lookup still fails, and only the second command helps.
Removing a partner that has gone
- From Active Directory Users and Computers, connect to a replication partner of the removed DC, expand Domain Controllers, right-click the computer object and delete it. Confirm that the DC is permanently offline and cannot be demoted, and let it move any operations master roles it held.
- Or from Sites and Services, expand the site, Servers, the server, right-click NTDS Settings and delete it, confirm the same prompt, then delete the server object itself.
- Or from the command line:
ntdsutil,metadata cleanup,connections,connect to server <partner>,quit,remove selected server <name>, then quit out. - If any of those fails with access denied, clear “Protect object from accidental deletion” on the computer object and the NTDS Settings object and try again.
- Confirm the object no longer appears under Domain Controllers, and that the server object has no NTDS Settings beneath it.
Events, and which one to act on
| Event | Published meaning | What to do |
|---|---|---|
| 2087 | AD DS could not resolve the DNS host name of the source DC to an IP address; replication failed | This is the one that matches 8524. Work the causes above |
| 2088 | The same lookup failed, but replication succeeded using the NetBIOS or fully qualified computer name | Fix it anyway. This is a broken DNS configuration that has not caused an outage yet |
| 1925 | The attempt to establish a replication link for a writable directory partition failed | Usually the same underlying reason; read it alongside 2087 |
Microsoft’s wording on 2088 is worth taking at face value: invalid DNS configuration may be affecting other essential operations including logon authentication and access to network resources, and you should resolve it immediately. A forest full of 2088 warnings is a forest that will produce 2087 errors the next time anything changes.
Domain controller DNS settings that stop this recurring
- Point each controller at another controller first and at itself second. A controller that resolves only through itself can become isolated from the forest and will not notice.
- Keep public resolvers off the adapter entirely. Put external resolution in the DNS server’s forwarders, where it belongs.
- Confirm that every DNS server a controller uses hosts, forwards to, or delegates the
_msdcs.<forest root>zone. That is Microsoft’s phrasing and it is the test that matters. - Run
dcdiag /test:dns /v /e /f:<file>across the forest periodically rather than only when something breaks, and read what it flags.
Every code this article covers
| Code | What it points at | Source |
|---|---|---|
8524 |
ERROR_DS_DNS_LOOKUP_FAILURE: the DSA operation is unable to proceed because of a DNS lookup failure | Microsoft Learn |
Event ID 2087 |
Active Directory could not resolve the DNS host name of the source domain controller to an IP address, and replication failed | Microsoft Learn |
Event ID 2088 |
The same lookup failed but replication succeeded using the NetBIOS or fully qualified computer name; a warning that DNS is broken and has not bitten yet | Microsoft Learn |
Event ID 1925 |
The attempt to establish a replication link for a writable directory partition failed | Microsoft Learn |
Confirm the fix worked
- Resolve the partner’s GUID alias from the previously failing controller, against each of its DNS servers by address, and confirm they all agree.
- Run
dcdiag /test:dns /v /e /f:dnsresults.txtand confirm the tests pass on both controllers. - Run
repadmin /replsummaryand confirm no partner reports a failure or a stale last-success time. - Check the Directory Service log over the following day for new 2087 or 2088 entries.
- If you removed a stale partner, confirm it no longer appears in Sites and Services or under Domain Controllers.
Questions people ask about this
Is this going to cost me anything to fix?
No. Every step is DNS configuration or directory maintenance on servers you already run, using tools already installed. There is no product that fixes an 8524.
The partner was decommissioned. Why am I still getting a DNS error?
Because the destination is still being told to replicate with it. Microsoft lists a stale NTDS Settings object for an offline or removed DC as the first cause of 8524. Clean the metadata and the lookups stop.
Can I just add a hosts file entry to get replication going?
No. The lookup is for a GUID alias in the _msdcs zone, not for a host name, and a workaround that appears to work only hides a DNS fault that will resurface the next time the topology changes.
Should a domain controller point at itself for DNS?
As a secondary entry, yes. As the only entry, no. And keep public resolvers off the adapter entirely; external resolution belongs in the DNS server’s forwarders.
How do I know whether it is really DNS?
Event ID 2088 is the clearest tell: replication succeeded through a fallback name while the proper lookup failed. If you see 2088 anywhere, treat DNS as broken even though nothing is failing yet.
