| Previous | Next |
| ERROR_VOLMGR_PLEX_TYPE_INVALID | ERROR_VOLMGR_PLEX_NOT_SIMPLE |
ERROR_VOLMGR_PLEX_NOT_RAID5
Locate the rejected storage invariant: volmgr plex not raid5
ERROR_VOLMGR_PLEX_NOT_RAID5 (0xC038003F) is emitted by the volmgr path when the requested operation requires RAID-5 parity semantics but the selected plex has a different layout type. The deciding object is volume plex descriptor, layout type and regeneration state, so the first investigation belongs there rather than in a generic “disk failure” bucket.
Evidence to preserve before repair
| Storage diagnostic field | Value |
|---|---|
| Rejected invariant | the requested operation requires RAID-5 parity semantics but the selected plex has a different layout type |
| Identity and generation | volume ID, plex ordinal, plex type, member array, active/inactive state, health status and current regeneration job |
| Narrow experiment | separate plex-type validation from platform capability by testing one real RAID-5 plex and one nonparity plex on the same system |
| Closest comparison | ERROR_VOLMGR_RAID5_NOT_SUPPORTED |
| Owning object | volume plex descriptor, layout type and regeneration state |
When it is followed by a secondary cleanup failure, store both codes with timestamps and retain this one as the initiating result.
One-variable reproduction
- Create a nonproduction case that preserves the same geometry and ownership model.
- Collect volume ID, plex ordinal, plex type, member array, active/inactive state, health status and current regeneration job before invoking the first mutating API.
- Change one condition only: separate plex-type validation from platform capability by testing one real RAID-5 plex and one nonparity plex on the same system.
- Re-enumerate after the transition and confirm this result is not reproduced by a stale handle from the old generation.
The distinction from ERROR_VOLMGR_RAID5_NOT_SUPPORTED is operational. The requested operation requires RAID-5 parity semantics but the selected plex has a different layout type; log the neighboring code separately so capability, identity and state are not conflated.
Mechanism-specific note
Separate two questions: whether the selected plex is RAID-5 and whether this Windows edition/provider can perform the requested parity operation. Record the actual plex type, disk count and provider capability so a topology mismatch is not misdiagnosed as a product limitation, or vice versa.
Repair without rewriting unrelated metadata
Select an operation compatible with the actual plex type and keep at least one active data copy throughout detach, repair or regeneration. 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_RAID5_NOT_SUPPORTEDand has no unbounded retry loop.
Technical references
- Microsoft: COM error codes for VOLMGR, VHD and SDIAG — defines the volmgr objects used to interpret it.
- Microsoft: Virtual Disk Service object model — primary API or object-model reference.
- Microsoft: Pack object — use this source to verify volmgr state and parameters.
- Microsoft: Virtual Disk Service common return codes — documents the supported management path relevant to this HRESULT.
Looking for a different code? Search another status or error code.