Site icon EfmSoft

What does HRESULT 0xC0380059 (ERROR_VOLMGR_PRIMARY_PACK_PRESENT) mean?

 
Could be also:
ConstantTypeOS
STATUS_VOLMGR_PRIMARY_PACK_PRESENTNTSTATUSWindows
Previous Next
ERROR_VOLMGR_NO_VALID_LOG_COPIES ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID

ERROR_VOLMGR_PRIMARY_PACK_PRESENT

Locate the rejected storage invariant: volmgr primary pack present

ERROR_VOLMGR_PRIMARY_PACK_PRESENT (0xC0380059) is emitted by the volmgr path when the system already has a primary dynamic-disk pack and cannot promote another one in the same scope. The deciding object for it is dynamic-disk pack identity, quorum and replicated configuration log, so the first investigation belongs there rather than in a generic “disk failure” bucket.

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. Indices and counts are relative to the submitted layout generation, while configuration logs are replicated across participating dynamic disks for 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 for it.

Evidence to preserve before repair

Storage diagnostic fieldValue
Owning objectdynamic-disk pack identity, quorum and replicated configuration log
Rejected invariantthe system already has a primary dynamic-disk pack and cannot promote another one in the same scope
Identity and generationpack GUID and name, online state, primary flag, disk inventory, configuration-log sequence numbers, quorum view and failing transaction ID
Narrow experimentserialize the exact VM_VOLUME_LAYOUT buffer, validate every count and Size field, and compare it with a layout produced by a known-good management API
Closest comparisonERROR_VOLMGR_NOT_PRIMARY_PACK

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

  1. Before changing state for it, freeze the failing generation and save pack GUID and name, online state, primary flag, disk inventory, configuration-log sequence numbers, quorum view and failing transaction ID.
  2. Exercise this exact comparison for it: serialize the exact VM_VOLUME_LAYOUT buffer, validate every count and Size field, and compare it with a layout produced by a known-good management API.
  3. During the result comparison, keep image bytes, unrelated disks, provider policy and cluster topology fixed.
  4. 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.

Use ERROR_VOLMGR_NOT_PRIMARY_PACK as the nearest comparison. This result is specific to the system already has a primary dynamic-disk pack and cannot promote another one in the same scope; the neighboring result belongs to another validation or lifecycle branch. Keeping both names prevents a generic storage label from hiding the actual owner for it.

Mechanism-specific note

Primary-pack selection defines which disk group owns the authoritative dynamic-disk namespace in this scope. Preserve both pack GUIDs and the reason promotion was requested. Do not change the primary flag as a generic repair: first establish whether the operation was sent to the wrong pack or whether a stale management object points at a former primary.

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. Keep the correction scoped to the owning object and avoid rewriting adjacent metadata merely to make the call return success.

Avoid broad rescans, forced failovers and metadata deletion until identities and generations are captured. Those actions can make a stale request appear to heal without fixing its caller.

Technical references


Looking for a different code? Search another status or error code.

Exit mobile version