| Previous | Next |
| ERROR_VOLMGR_NOT_PRIMARY_PACK | ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID |
ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED
Locate the rejected storage invariant: volmgr pack log update failed
The practical meaning of ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED (0xC0380053) is tied to dynamic-disk pack identity, quorum and replicated configuration log: the new pack log record could not be committed to any required disk copy, so the metadata transaction cannot be trusted. The result does not, by itself, prove file-system corruption or physical-media failure.
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.
Evidence to preserve before repair
| Storage diagnostic field | Value |
|---|---|
| Closest comparison | ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE |
| Owning object | dynamic-disk pack identity, quorum and replicated configuration log |
| Rejected invariant | the new pack log record could not be committed to any required disk copy, so the metadata transaction cannot be trusted |
| Identity and generation | pack GUID and name, online state, primary flag, disk inventory, configuration-log sequence numbers, quorum view and failing transaction ID |
| Narrow experiment | enumerate configuration-log copies and sequence numbers, restore one healthy writable disk in a lab pack, and repeat the commit |
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
- serialize the failing request and the enumeration from which its identifiers came.
- Preserve pack GUID and name, online state, primary flag, disk inventory, configuration-log sequence numbers, quorum view and failing transaction ID while every handle is still valid.
- Repeat the operation using this controlled change: enumerate configuration-log copies and sequence numbers, restore one healthy writable disk in a lab pack, and repeat the commit.
- Close and reacquire the relevant objects, then run once more to test lifecycle correctness after this result.
The distinction from ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE is operational. The new pack log record could not be committed to any required disk copy, so the metadata transaction cannot be trusted; log the neighboring code separately so capability, identity and state are not conflated.
Mechanism-specific note
Dynamic-disk configuration is replicated, and sequence plus integrity decide which copy is authoritative. Inventory every participating disk and record the newest readable sequence before repair. Sector-level edits or copying a log from another pack can destroy the GUID and generation relationships that allow supported recovery to select a consistent configuration.
Repair without rewriting unrelated metadata
Repair the pack configuration through supported dynamic-disk management, preserving GUIDs and the newest valid log sequence; avoid sector-level edits to replicated metadata. Apply the change through the supported storage API, then close and reacquire affected objects before retrying.
- 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_UNEXPECTED_DISK_LAYOUT_CHANGEand has no unbounded retry loop.
Technical references
- Microsoft: COM error codes for VOLMGR, VHD and SDIAG — use this source to verify volmgr state and parameters.
- Microsoft: Virtual Disk Service object model — documents the supported management path relevant to this HRESULT.
- Microsoft: Pack object — defines the volmgr objects used to interpret it.
- Microsoft: Virtual Disk Service common return codes — primary API or object-model reference.
Looking for a different code? Search another status or error code.