| Previous | Next |
| ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE | ERROR_VOLMGR_VOLUME_NOT_RETAINED |
ERROR_VOLMGR_VOLUME_NOT_MIRRORED
Why this is narrower than a generic disk error: volmgr volume not mirrored
Windows returns ERROR_VOLMGR_VOLUME_NOT_MIRRORED, value 0xC0380049, at the volmgr boundary. It means that the request requires multiple synchronized plexes, but the selected volume is not mirrored. Preserve the exact handle and generation of logical volume geometry and the disk extents that realize it before any rescan changes the evidence.
Storage facts that change the diagnosis
| Storage diagnostic field | Value |
|---|---|
| Owning object | logical volume geometry and the disk extents that realize it |
| Rejected invariant | the request requires multiple synchronized plexes, but the selected volume is not mirrored |
| Identity and generation | volume ID, requested length, sector sizes, extent table, plex/member counts, disk health and the exact VM_VOLUME_LAYOUT buffer |
| Narrow experiment | run the request against matched simple and mirrored test volumes that have the same length and sector geometry |
| Closest comparison | ERROR_VOLMGR_VOLUME_MIRRORED |
A/B test
- Before changing state, freeze the failing generation and save volume ID, requested length, sector sizes, extent table, plex/member counts, disk health and the exact VM_VOLUME_LAYOUT buffer.
- Exercise this exact comparison: run the request against matched simple and mirrored test volumes that have the same length and sector geometry.
- During the comparison, keep image bytes, unrelated disks, provider policy and cluster topology fixed.
- 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.
The distinction from ERROR_VOLMGR_VOLUME_MIRRORED is operational. The request requires multiple synchronized plexes, but the selected volume is not mirrored; log the neighboring code separately so capability, identity and state are not conflated.
Mechanism-specific note
The requested path depends on a second active plex, but the volume currently has only one data copy. Enumerate plexes and their states rather than relying on a UI label. If redundancy is required, create or restore the mirror through a supported operation before invoking mirror-only maintenance.
Corrective action and regression check
Select an operation compatible with the actual plex type and keep at least one active data copy throughout detach, repair or regeneration. 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 corrected object.
- The application still distinguishes it from
ERROR_VOLMGR_VOLUME_MIRROREDand has no unbounded retry loop.
Technical references
- Microsoft: COM error codes for VOLMGR, VHD and SDIAG — primary API or object-model reference.
- Microsoft: Virtual Disk Service object model — use this source to verify volmgr state and parameters.
- Microsoft: Pack object — documents the supported management path relevant to this HRESULT.
- 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.
