| Previous | Next |
| ERROR_VOLMGR_PLEX_LAST_ACTIVE | ERROR_VOLMGR_PLEX_REGENERATING |
ERROR_VOLMGR_PLEX_MISSING
Why this is narrower than a generic disk error: volmgr plex missing
Windows returns ERROR_VOLMGR_PLEX_MISSING, value 0xC038003C, at the volmgr boundary. It means that the volume metadata refers to a plex that has no complete set of reachable members. Preserve the exact handle and generation of volume plex descriptor, layout type and regeneration state before any rescan changes the evidence.
Dynamic volumes are represented as packs containing disks and volumes; each volume has one or more plexes, and each plex is assembled from members and extents. Indices and counts are relative to the submitted layout generation, while configuration logs are replicated across participating dynamic disks. This object model determines which identifiers, counts and ownership state are meaningful.
Diagnosis of this result should begin with the object model and generation current at the failure. A later successful enumeration may describe a replacement object and cannot retroactively validate the rejected request.
Storage facts that change the diagnosis
| Storage diagnostic field | Value |
|---|---|
| Narrow experiment | capture the disk/extent inventory, re-present the missing test disk without changing IDs, and repeat the lookup or repair request |
| Closest comparison | ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE |
| Owning object | volume plex descriptor, layout type and regeneration state |
| Rejected invariant | the volume metadata refers to a plex that has no complete set of reachable members |
| Identity and generation | volume ID, plex ordinal, plex type, member array, active/inactive state, health status and current regeneration job |
Do not overwrite this result with a close, detach or rollback error. Preserve the causal order so the original storage contract remains visible.
A/B test for this HRESULT
- Capture the API parameters and object map that led to this result; do not begin with cleanup.
- Build a passing control with the same disks or image copy and preserve volume ID, plex ordinal, plex type, member array, active/inactive state, health status and current regeneration job for it.
- Run the narrow transition described here: capture the disk/extent inventory, re-present the missing test disk without changing IDs, and repeat the lookup or repair request.
- Compare resulting IDs, counts, health and ownership to prove the caller crossed the result invariant rather than suppressing it.
Compare traces for ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE and this result. The latter page covers a nearby storage boundary, whereas it rejects the volume metadata refers to a plex that has no complete set of reachable members. A correct caller should be able to reproduce each case independently.
Mechanism-specific note
“Missing” is an identity result: metadata names an object whose backing extents are not present in the current pack view. Compare disk unique IDs and extent offsets rather than substituting a same-sized disk. If the original disk returns, re-enumerate before repair so the recovered object is matched to its existing metadata instead of added as a new member.
Corrective action and regression check
Restore access to the identified disk or extent and confirm its identity and health; do not substitute a different disk merely because its size matches. After correcting it, reopen the pack, volume, tier, snapshot or virtual disk so no cached generation participates in the validation run.
- 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 object corrected after it.
- The passing state survives the lifecycle transition relevant to it, such as reopen, remount, owner change or detach/attach.
- The application still distinguishes it from
ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGEand has no unbounded retry loop.
Before responding to it with destructive cleanup, prove which object owns the failure. Changing every disk or provider at once prevents a meaningful regression test while diagnosing it.
Technical references
- Microsoft: COM error codes for VOLMGR, VHD and SDIAG — primary API or object-model reference for the boundary.
- Microsoft: Virtual Disk Service object model — use this source to verify volmgr state and parameters for it.
- Microsoft: Pack object — documents the supported management path relevant to it.
- Microsoft: Virtual Disk Service common return codes — defines the volmgr objects used to interpret it.
Looking for a different code? Search another status or error code.
