| Previous | Next |
| ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 | ERROR_DS_INCOMPATIBLE_CONTROLS_USED |
ERROR_DS_OUT_OF_VERSION_STORE
The database is out of version store.
Windows assigns decimal 8573 and hexadecimal 0x0000217D to ERROR_DS_OUT_OF_VERSION_STORE. The constant belongs to Active Directory Domain Services; its name is not enough to identify the affected directory object, DNS zone, policy, installer, package, or resource context.
Operational meaning
The key question is whether the directory transaction can retain every required version until readers and writers complete. The value describes the directory database version store used by the current transaction; it does not prove that the whole domain, DNS service, network, servicing stack, application package, or operating system has failed.
Likely impact: Further writes may fail even though the database files are readable; repeated blind retries can worsen pressure. Record the scope that was actually tested instead of escalating from one rejected object or phase to a system-wide outage.
Where the result appears
- This result can appear while processing the directory database version store used by the current transaction.
- This result can appear while an LDAP, replication, domain-join, schema, trust, or directory-management request.
- This result can appear while a request routed to one particular domain controller whose replica and site state matters.
- It can appear while a management tool that translates LDAP extended diagnostics into a Win32 result.
Typical causes
- a long-running LDAP search pins old database versions.
- write volume creates versions faster than they can be reclaimed.
- backup, indexing, or maintenance holds a transaction open.
- resource pressure reduces available version-store capacity.
Diagnostic sequence
- capture it immediately after the failing or status-returning call and record whether the API uses Win32, DNS_STATUS, HRESULT conversion, or callback semantics.
- identify the exact target involved in the directory database version store used by the current transaction, including stable GUIDs, DNs, zone names, package identities, file hashes, policy names, or process identifiers as applicable.
- prove the state boundary: the directory transaction can retain every required version until readers and writers complete.
- collect NTDS database and version-store events and long-running LDAP operations and client identities before restarting services, deleting objects, rebuilding packages, or changing policy.
- correlate write rate and transaction duration with Directory Service events, Security events, LDAP extended error text, replication metadata, dcdiag output, repadmin output, and the caller trace.
- determine whether the result is a failure, warning, informational completion, continuation request, or marker constant before choosing retry behavior.
- after changing one responsible condition, repeat the same smallest operation and verify both success and absence of unintended partial effects.
Evidence to preserve
- collect NTDS database and version-store events.
- collect long-running LDAP operations and client identities.
- collect write rate and transaction duration.
- collect database maintenance and backup state.
- collect memory and ESE diagnostic data.
Correlate this evidence with Directory Service events, Security events, LDAP extended error text, replication metadata, dcdiag output, repadmin output, and the caller trace. Preserve raw identifiers and the first detailed diagnostic: translating everything to 8573 can hide whether the cause was validation, topology, authorization, replication, policy, file I/O, packaging, or an intentional continuation state.
Recovery and retry
The recovery objective for it is to remove or complete the transaction that pins old versions, reduce the write burst, and allow the database to reclaim version-store entries before retrying.
Retry only after the recorded boundary changes and prior completion is known. Read-only discovery for it can usually be repeated with bounded backoff; directory mutations, DNS updates, policy installation, servicing actions, and PRI writes require a state check first. Backoff for it cannot repair malformed input, unsupported structure, identity collision, missing authority, or incompatible package metadata.
Telemetry and support fields
- record
ds_out_of_version_store_operation— producing API, command, callback, or servicing phase. - record
ds_out_of_version_store_target— stable object, zone, policy, package, file, or account identity. - record
ds_out_of_version_store_state_beforeandds_out_of_version_store_requested_state. - record
ds_out_of_version_store_first_status— earliest component-specific code before translation. - record
ds_out_of_version_store_server,ds_out_of_version_store_process, UTC timestamp, and correlation ID.
A support bundle for it should include decimal 8573, hexadecimal 0x0000217D, the smallest reproducible request, target identity, effective configuration, and evidence from the owning Windows component. When documenting it, remove secrets from exported logs but keep SIDs, GUIDs, package-family names, record types, and hashes when they are needed to distinguish objects.
Difference from nearby results
ERROR_DS_DATABASE_ERROR is a broad database failure; this code specifically identifies exhaustion of retained record versions This distinction determines whether the correct next step is input correction, topology repair, continuation, policy review, package rebuild, or no error handling at all.
Practical validation scenario
A directory synchronization job holds a paged search open while a bulk importer changes thousands of objects. Ending the stale search lets ESE reclaim versions and the import resume. A negative test should reproduce it with the responsible condition preserved; the recovery test should alter only that condition and confirm the intended final state.
Developer and administrator guidance
Developers should model it explicitly in the result domain instead of collapsing every nonzero value into “failed.” Administrators should capture evidence before destructive remediation and use the component that owns the directory database version store used by the current transaction. Monitoring for it should suppress range markers and classify warning, informational, cancellation, and continuation values separately from terminal failures.
References
- Microsoft: exact Win32 system error range — official context relevant to it.
- Microsoft: AD DS troubleshooting — official context relevant to it.
- Microsoft: dcdiag — official context relevant to it.
- Microsoft: repadmin — official context relevant to it.
Looking for a different code? Search another status or error code.