| Previous | Next |
| ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS | ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE |
ERROR_VOLMGR_MEMBER_IN_SYNC
Read the code at the owning storage layer: volmgr member in sync
Windows returns ERROR_VOLMGR_MEMBER_IN_SYNC, value 0xC0380023, at the volmgr boundary. It means that the selected plex member already matches the active data set and regeneration would be redundant for it. 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. 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.
Build a trustworthy incident record
| Storage diagnostic field | Value |
|---|---|
| Narrow experiment | query health and synchronization state before requesting regeneration, then compare with a deliberately stale test member or plex |
| Closest comparison | ERROR_VOLMGR_MEMBER_REGENERATING |
| Owning object | dynamic-volume plex member descriptor and its backing extents |
| Rejected invariant | the selected plex member already matches the active data set and regeneration would be redundant |
| Identity and generation | pack ID, volume ID, plex index, member index, disk IDs, extent offsets, health state and regeneration percentage |
Do not overwrite this result with a close, detach or rollback error. Preserve the causal order so the original storage contract remains visible while diagnosing it.
Controlled comparison
- 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 pack ID, volume ID, plex index, member index, disk IDs, extent offsets, health state and regeneration percentage.
- Run the narrow transition described here: query health and synchronization state before requesting regeneration, then compare with a deliberately stale test member or plex.
- Compare resulting IDs, counts, health and ownership to prove the caller crossed the result invariant rather than suppressing it.
Compare traces for ERROR_VOLMGR_MEMBER_REGENERATING and it. The latter page covers a nearby storage boundary, whereas it rejects the selected plex member already matches the active data set and regeneration would be redundant. A correct caller should be able to reproduce each case independently.
Mechanism-specific note
This is an idempotency boundary. The object is healthy enough that another regeneration request would add work without changing redundancy. Verify the reported synchronization generation and health of the other copies; if data is still suspected, investigate checksums or the actual stale object rather than forcing a rebuild of the already synchronized one.
Completion criteria
Treat the result as state feedback and skip regeneration for that object; refresh health information before deciding whether another member or plex needs repair. The result repair is incomplete until a fresh enumeration and new handle observe the corrected state.
- the first retry uses newly enumerated identifiers rather than cached handles for it.
- The durable metadata or provider state agrees with the success returned after it.
- A second run after close/reopen does not recreate the rejected the condition.
- the nearby
ERROR_VOLMGR_MEMBER_REGENERATINGpath remains separately testable and separately logged.
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.
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.