| Previous | Next |
| ERROR_TIERING_STORAGE_TIER_NOT_FOUND | ERROR_TIERING_WRONG_CLUSTER_NODE |
ERROR_TIERING_INVALID_FILE_ID
Interpret the state transition: tiering invalid file id
Windows returns ERROR_TIERING_INVALID_FILE_ID, value 0x80830004, at the tiering boundary. It means that the supplied file identifier does not resolve to the intended file on the current volume generation. Preserve the exact handle and generation of file-to-tier placement metadata for the addressed volume before any rescan changes the evidence.
Storage tiering operates above a tiered Storage Spaces virtual disk and records desired placement separately from normal file allocation. Optimization may move data according to heat, whereas pinning expresses an explicit placement preference for a supported file or volume object. 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 |
|---|---|
| Owning object | file-to-tier placement metadata for the addressed volume |
| Rejected invariant | the supplied file identifier does not resolve to the intended file on the current volume generation |
| 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 | resolve the file by path and by ID on the same mounted volume, then repeat after reopening the volume handle without moving the file |
| Closest comparison | ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME |
A management layer handling this result should report later recovery errors separately, because they answer a different question from the failed storage operation for it.
Separate validation from capability
- Before changing state for it, 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.
- Exercise this exact comparison for it: resolve the file by path and by ID on the same mounted volume, then repeat after reopening the volume handle without moving the file.
- During the result comparison, keep image bytes, unrelated disks, provider policy and cluster topology fixed.
- 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 for it.
Compare traces for ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME and this result. The latter page covers a nearby storage boundary, whereas it rejects the supplied file identifier does not resolve to the intended file on the current volume generation for it. A correct caller should be able to reproduce each case independently.
Mechanism-specific note
File IDs are volume-scoped and can become stale after delete/recreate or after using a handle from another volume. Record volume serial or GUID with the file ID. Reopen the file by path and obtain a fresh identifier before retrying; do not assume a matching numeric ID on another volume names the same file.
Verification after correction
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 this result. Keep the correction scoped to the owning object and avoid rewriting adjacent metadata merely to make the call return success while diagnosing it.
- 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 this result.
- Health, synchronization or job state reaches a terminal value consistent with the repaired the operation.
- Telemetry includes both symbolic names when it or
ERROR_TIERING_NOT_SUPPORTED_ON_VOLUMEoccurs again.
Avoid broad rescans, forced failovers and metadata deletion until identities and generations are captured while diagnosing it. Those actions can make a stale request appear to heal without fixing its caller while diagnosing it.
Technical references
- Microsoft: MSFT_FileStorageTier class — primary API or object-model reference for the boundary.
- Microsoft: Set method of MSFT_FileStorageTier — use this source to verify tiering state and parameters for it.
- Microsoft: Optimize-Volume — documents the supported management path relevant to it.
- Microsoft: fsutil tiering — defines the tiering objects used to interpret it.
Looking for a different code? Search another status or error code.