Lingering objects and replication event 1988
A controller that was offline longer than the tombstone lifetime holds objects the rest of the domain has deleted. Replication stops rather than resurrect them.
What you see
Event 2042 saying it has been too long since this machine replicated, or event 1988 naming a lingering object. Replication with that partner is halted.
What is actually wrong
A domain controller offline for longer than the tombstone lifetime — 180 days on most domains — then brought back. Its copy of the directory contains objects that were deleted while it was away.
Codes and articles
Fixes (2)
Identify and remove the lingering objects
The controller is otherwise healthy and you want to keep it.
Find the tombstone lifetime for this forest — it governs everything below.
Get-ADObject -Identity "CN=Directory Service,CN=Windows NT,CN=Services,$((Get-ADRootDSE).configurationNamingContext)" -Properties tombstoneLifetime | Format-List tombstoneLifetimeCheck the replication state to see which partners are blocked.
repadmin /replsummaryrepadmin /showrepl * /csv | ConvertFrom-Csv | Where-Object 'Number of Failures' -gt 0 | Format-Table
List the lingering objects without removing anything — the /advisory_mode flag is what makes this safe.
repadmin /removelingeringobjects DC02 <source-DC-GUID> dc=example,dc=local /advisory_modeAdvisory mode writes event 1946 for every object it would remove, into the Directory Service log. Read that list before running it for real — this is a deletion and it is not reversible.
Read the resulting events to see exactly what would go.
Get-WinEvent -LogName 'Directory Service' -MaxEvents 200 | Where-Object Id -in 1938,1942,1946 | Format-List TimeCreated,Id,MessageRemove them once the list is understood.
repadmin /removelingeringobjects DC02 <source-DC-GUID> dc=example,dc=localRe-enable strict replication consistency so this cannot recur silently.
repadmin /regkey * +strictrepadmin /replsummary
repadmin /replsummary; repadmin /showrepl DC02Demote and rebuild rather than repair
The controller was offline far beyond the tombstone lifetime. This is usually the right answer and it is often faster.
Take it off the network first so it cannot replicate anything outward while you work.
Move any FSMO roles it holds to a healthy controller, and check it is not the only global catalog or DNS server for a site.
netdom query fsmoGet-ADDomainController -Filter * | Format-Table Name,Site,IsGlobalCatalog,OperationMasterRoles
Demote it forcibly, since it cannot replicate the demotion out.
Uninstall-ADDSDomainController -ForceRemoval -DemoteOperationMasterRole -LocalAdministratorPassword (Read-Host -AsSecureString) -ForceA forced demotion does not tell the rest of the domain. That is why the metadata cleanup in the next step is mandatory rather than tidy-up — without it, every other controller keeps trying to replicate with a machine that no longer exists.
Clean the metadata from a healthy controller.
Get-ADObject -Filter { Name -eq 'DC03' } -SearchBase (Get-ADDomain).DomainControllersContainer | Remove-ADObject -Recursive -Confirm:$falseRebuild the machine from clean media and promote it again.
Install-ADDSDomainController -DomainName example.local -InstallDns -Credential (Get-Credential) -SafeModeAdministratorPassword (Read-Host -AsSecureString)Verify the new controller replicates in both directions before putting it into service.
repadmin /showrepldcdiag /v | Select-String 'failed|passed test'
dcdiag /test:sysvolcheck /test:advertising /v | Select-String 'passed|failed'net share | findstr /i sysvol
Related faults
Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.