What does HRESULT 0xC0380039 (ERROR_VOLMGR_PLEX_INDEX_DUPLICATE) mean?

 
Could be also:
ConstantTypeOS
STATUS_VOLMGR_PLEX_INDEX_DUPLICATENTSTATUSWindows
Previous Next
ERROR_VOLMGR_PLEX_IN_SYNC ERROR_VOLMGR_PLEX_INDEX_INVALID

ERROR_VOLMGR_PLEX_INDEX_DUPLICATE

Locate the rejected storage invariant: volmgr plex index duplicate

The practical meaning of ERROR_VOLMGR_PLEX_INDEX_DUPLICATE (0xC0380039) is tied to volume plex descriptor, layout type and regeneration state: the volume layout assigns the same plex ordinal to more than one plex descriptor. The result does not, by itself, prove file-system corruption or physical-media failure.

A useful record contains more than the final UI symptom: retain the first failing call, target identity, topology and state transition before management software rescans the disks.

Evidence to preserve before repair

Storage diagnostic fieldValue
Owning objectvolume plex descriptor, layout type and regeneration state
Rejected invariantthe volume layout assigns the same plex ordinal to more than one plex descriptor
Identity and generationvolume ID, plex ordinal, plex type, member array, active/inactive state, health status and current regeneration job
Narrow experimentsubmit a copied layout with one deliberately repeated ordinal, then change only that ordinal to a unique value
Closest comparisonERROR_VOLMGR_PLEX_INDEX_INVALID

Do not overwrite this result with a close, detach or rollback error. Preserve the causal order so the original storage contract remains visible.

One-variable reproduction

  1. Before changing state, freeze the failing generation and save volume ID, plex ordinal, plex type, member array, active/inactive state, health status and current regeneration job.
  2. Exercise this exact comparison: submit a copied layout with one deliberately repeated ordinal, then change only that ordinal to a unique value.
  3. During the comparison, keep image bytes, unrelated disks, provider policy and cluster topology fixed.
  4. After the test, record the next return value and the durable object state; crossing the boundary should expose a later result rather than silently retrying.

ERROR_VOLMGR_PLEX_INDEX_INVALID describes a nearby but different storage condition; this result indicates that the volume layout assigns the same plex ordinal to more than one plex descriptor.

Mechanism-specific note

This code is about uniqueness inside one serialized array, not about the physical health of the indexed object. Dump the full ordinal sequence in submission order and identify which two descriptors claim the same slot. Renumbering after filtering or sorting is a common source of this defect because references retained from the prefiltered layout no longer match the emitted array.

Repair without rewriting unrelated metadata

Rebuild the layout from enumerated objects and checked arithmetic rather than patching one serialized field; validate counts, indices, sizes, alignment and overflow before submission. Keep the correction scoped to the owning object and avoid rewriting adjacent metadata merely to make the call return success.

  • The original request now reaches success or a documented later status with the intended layout and access mode.
  • A new enumeration reports internally consistent IDs, counts, geometry and ownership for the corrected object.
  • The passing state survives the relevant lifecycle transition, such as reopen, remount, owner change or detach/attach.
  • The application still distinguishes it from ERROR_VOLMGR_PLEX_INDEX_INVALID and has no unbounded retry loop.

Technical references


Looking for a different code? Search another status or error code.