| Previous | Next |
| ERROR_VOLMGR_MEMBER_MISSING | ERROR_VOLMGR_MEMBER_REGENERATING |
ERROR_VOLMGR_MEMBER_NOT_DETACHED
Interpret the state transition: volmgr member not detached
Windows returns ERROR_VOLMGR_MEMBER_NOT_DETACHED, value 0xC0380027, at the volmgr boundary. It means that replacement was requested for a member that still participates in the active plex and has not entered the detached state. Preserve the exact handle and generation of dynamic-volume plex member descriptor and its backing extents 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 while diagnosing this result. Indices and counts are relative to the submitted layout generation, while configuration logs are replicated across participating dynamic disks while diagnosing it. This object model determines which identifiers, counts and ownership state are meaningful.
Keep the first result attached to its request parameters and object generation. Cleanup failures or a later drive-letter change are secondary evidence, not replacements for the original boundary.
Record geometry, identity and ownership
| Storage diagnostic field | Value |
|---|---|
| Identity and generation | pack ID, volume ID, plex index, member index, disk IDs, extent offsets, health state and regeneration percentage |
| Narrow experiment | compare replacement while the member is active with the same request after an explicit detach transition on a test volume |
| Closest comparison | ERROR_VOLMGR_MEMBER_MISSING |
| Owning object | dynamic-volume plex member descriptor and its backing extents |
| Rejected invariant | replacement was requested for a member that still participates in the active plex and has not entered the detached state |
When it is followed by a secondary cleanup failure, store both codes with timestamps and retain this one as the initiating result for it.
Separate validation from capability
- Associate this result with one caller, one transaction and one target UniqueId for it.
- Save the pre-call and post-call inventories, including pack ID, volume ID, plex index, member index, disk IDs, extent offsets, health state and regeneration percentage while diagnosing this result.
- Use this A/B case for it without touching unrelated storage: compare replacement while the member is active with the same request after an explicit detach transition on a test volume.
- Validate both the HRESULT and the on-disk or provider state after the relevant reopen, remount or attach cycle for it.
A useful diagnostic fork is ERROR_VOLMGR_MEMBER_MISSING versus this result. This code concerns replacement was requested for a member that still participates in the active plex and has not entered the detached state; the alternate code should remain observable after the fix, proving the application did not suppress the entire subsystem for it.
Mechanism-specific note
Replacement assumes the old member has been removed from active data service. Confirm the detach transition and the remaining redundancy before introducing a replacement. A member that is merely unhealthy or temporarily inaccessible is not necessarily detached, and replacing it prematurely can create two objects claiming the same role.
Verification after correction
Refresh the disk layout, serialize the change as one volume-manager transaction and reject any external partition mutation until commit or rollback completes while diagnosing it. Keep the correction scoped to the owning object and avoid rewriting adjacent metadata merely to make the call return success.
- The controlled A/B case changes only the invariant responsible for it.
- No unrelated disk, cluster owner, tier policy or virtual-disk backing file is altered to hide it.
- Health, synchronization or job state reaches a terminal value consistent with the repaired the operation.
- Telemetry includes both symbolic names when it or
ERROR_VOLMGR_MEMBER_MISSINGoccurs again.
Do not use it as a reason to edit dynamic-disk sectors, VHDX metadata, RCT sidecars or snapshot support files directly. Unsupported edits can turn a recoverable state mismatch into persistent corruption.
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.