| Previous | Next |
| ERROR_TIERING_FILE_IS_NOT_PINNED | ERROR_ATTRIBUTE_NOT_PRESENT |
ERROR_NOT_A_TIERED_VOLUME
Identify the owner before touching the layout: not a tiered volume
The practical meaning of ERROR_NOT_A_TIERED_VOLUME (0x80830009) is tied to file-to-tier placement metadata for the addressed volume: the volume is accessible, but its backing virtual disk has no active multi-tier layout for the requested operation within the ERROR_NOT_A_TIERED_VOLUME workflow. The ERROR_NOT_A_TIERED_VOLUME result does not, by itself, prove file-system corruption or physical-media failure when ERROR_NOT_A_TIERED_VOLUME is returned.
Storage tiering operates above a tiered Storage Spaces virtual disk and records desired placement separately from normal file allocation while diagnosing ERROR_NOT_A_TIERED_VOLUME. Optimization may move data according to heat, whereas pinning expresses an explicit placement preference for a supported file or volume object for the ERROR_NOT_A_TIERED_VOLUME request. For ERROR_NOT_A_TIERED_VOLUME, this object model determines which identifiers, counts and ownership state are meaningful for ERROR_NOT_A_TIERED_VOLUME.
Diagnosis of ERROR_NOT_A_TIERED_VOLUME should begin with the object model and generation current at the failure when ERROR_NOT_A_TIERED_VOLUME is returned. A later successful enumeration may describe a replacement object and cannot retroactively validate the rejected request in the ERROR_NOT_A_TIERED_VOLUME path.
Minimum diagnostic set
| Storage diagnostic field | Value for ERROR_NOT_A_TIERED_VOLUME |
|---|---|
| Owning object | file-to-tier placement metadata for the addressed volume |
| Rejected invariant | the volume is accessible, but its backing virtual disk has no active multi-tier layout for the requested operation |
| Identity and generation | volume GUID path, storage-space and tier IDs, file ID plus file-system identity, cluster owner node, optimization job state and requested pin target |
| Narrow experiment | query the volume tier inventory and repeat the exact call on a known tiered Storage Spaces volume without changing the file or policy |
| Closest comparison | ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME |
- Export volume GUID path for
ERROR_NOT_A_TIERED_VOLUME; this is more useful than a drive letter or friendly name alone when ERROR_NOT_A_TIERED_VOLUME is returned. - Verify storage-space belongs to the same storage generation that produced
ERROR_NOT_A_TIERED_VOLUME. - For
ERROR_NOT_A_TIERED_VOLUME, preserve tier IDs before a rescan; it anchors the failed object generation in the ERROR_NOT_A_TIERED_VOLUME path. - Attach file ID plus file-system identity to the
ERROR_NOT_A_TIERED_VOLUMEincident so later cleanup cannot replace the original identity while diagnosing ERROR_NOT_A_TIERED_VOLUME. - Record cluster owner node at the instant
ERROR_NOT_A_TIERED_VOLUMEis returned, not after an automatic refresh. - Correlate optimization job state with the first
ERROR_NOT_A_TIERED_VOLUMEcall and its transaction or job identifier. - Export requested pin target for
ERROR_NOT_A_TIERED_VOLUME; this is more useful than a drive letter or friendly name alone within the ERROR_NOT_A_TIERED_VOLUME workflow.
Do not overwrite ERROR_NOT_A_TIERED_VOLUME with a close, detach or rollback error. Preserve the causal order so the original storage contract remains visible for the ERROR_NOT_A_TIERED_VOLUME request.
Reproduce without destructive cleanup
- Before changing state for
ERROR_NOT_A_TIERED_VOLUME, freeze the failing generation and save volume GUID path, storage-space and tier IDs, file ID plus file-system identity, cluster owner node, optimization job state and requested pin target while diagnosing ERROR_NOT_A_TIERED_VOLUME. - Exercise this exact comparison for
ERROR_NOT_A_TIERED_VOLUME: query the volume tier inventory and repeat the exact call on a known tiered Storage Spaces volume without changing the file or policy within the ERROR_NOT_A_TIERED_VOLUME workflow. - During the
ERROR_NOT_A_TIERED_VOLUMEcomparison, keep image bytes, unrelated disks, provider policy and cluster topology fixed within the ERROR_NOT_A_TIERED_VOLUME workflow. - After the test, record the next return value and the durable object state; crossing the
ERROR_NOT_A_TIERED_VOLUMEboundary should expose a later result rather than silently retrying in the ERROR_NOT_A_TIERED_VOLUME path.
Use ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME as the nearest comparison. ERROR_NOT_A_TIERED_VOLUME is specific to the volume is accessible, but its backing virtual disk has no active multi-tier layout for the requested operation; the neighboring result belongs to another validation or lifecycle branch for ERROR_NOT_A_TIERED_VOLUME. Keeping both names prevents a generic storage label from hiding the actual owner within the ERROR_NOT_A_TIERED_VOLUME workflow.
Mechanism-specific note for ERROR_NOT_A_TIERED_VOLUME
This result describes the configured layout, not a temporary provider outage when ERROR_NOT_A_TIERED_VOLUME is returned. Enumerate storage tiers associated with the virtual disk and map the volume to that disk when ERROR_NOT_A_TIERED_VOLUME is returned. If no tier relationship exists, the caller should use normal optimization or placement behavior rather than retrying a tier-only API while diagnosing ERROR_NOT_A_TIERED_VOLUME.
Restore the contract
Re-enumerate the volume, its storage tiers and the file object on the owner node; serialize optimization jobs and apply pinning only to supported objects on a live tiered volume while diagnosing ERROR_NOT_A_TIERED_VOLUME. After correcting ERROR_NOT_A_TIERED_VOLUME, reopen the pack, volume, tier, snapshot or virtual disk so no cached generation participates in the validation run when ERROR_NOT_A_TIERED_VOLUME is returned.
- For
ERROR_NOT_A_TIERED_VOLUME, the first retry uses newly enumerated identifiers rather than cached handles for the ERROR_NOT_A_TIERED_VOLUME request. - The durable metadata or provider state agrees with the success returned after
ERROR_NOT_A_TIERED_VOLUME. - A second run after close/reopen does not recreate the rejected
ERROR_NOT_A_TIERED_VOLUMEcondition. - For
ERROR_NOT_A_TIERED_VOLUME, the nearbyERROR_TIERING_NOT_SUPPORTED_ON_VOLUMEpath remains separately testable and separately logged.
Before responding to ERROR_NOT_A_TIERED_VOLUME with destructive cleanup, prove which object owns the failure within the ERROR_NOT_A_TIERED_VOLUME workflow. Changing every disk or provider at once prevents a meaningful regression test in the ERROR_NOT_A_TIERED_VOLUME path.
Technical references
- Microsoft: MSFT_FileStorageTier class — use this source to verify tiering state and parameters for
ERROR_NOT_A_TIERED_VOLUME. - Microsoft: Set method of MSFT_FileStorageTier — documents the supported management path relevant to
ERROR_NOT_A_TIERED_VOLUME. - Microsoft: Optimize-Volume — defines the tiering objects used to interpret
ERROR_NOT_A_TIERED_VOLUME. - Microsoft: fsutil tiering — primary API or object-model reference for the
ERROR_NOT_A_TIERED_VOLUMEboundary.
Looking for a different code? Search another status or error code.
