| Previous | Next |
| ERROR_TIERING_WRONG_CLUSTER_NODE | ERROR_TIERING_CANNOT_PIN_OBJECT |
ERROR_TIERING_ALREADY_PROCESSING
Read the code at the owning storage layer: tiering already processing
ERROR_TIERING_ALREADY_PROCESSING has unsigned value 0x80830006. In the tiering layer, it rejects a specific contract because a tier optimization or placement operation already owns the per-volume worker and a second run cannot start concurrently for ERROR_TIERING_ALREADY_PROCESSING. Diagnosis of ERROR_TIERING_ALREADY_PROCESSING should follow file-to-tier placement metadata for the addressed volume through one controlled state transition.
Storage tiering operates above a tiered Storage Spaces virtual disk and records desired placement separately from normal file allocation within the ERROR_TIERING_ALREADY_PROCESSING workflow. Optimization may move data according to heat, whereas pinning expresses an explicit placement preference for a supported file or volume object in the ERROR_TIERING_ALREADY_PROCESSING path. For ERROR_TIERING_ALREADY_PROCESSING, this object model determines which identifiers, counts and ownership state are meaningful in the ERROR_TIERING_ALREADY_PROCESSING path.
Keep the first ERROR_TIERING_ALREADY_PROCESSING result attached to its request parameters and object generation while diagnosing ERROR_TIERING_ALREADY_PROCESSING. Cleanup failures or a later drive-letter change are secondary evidence, not replacements for the original boundary when ERROR_TIERING_ALREADY_PROCESSING is returned.
Build a trustworthy incident record
| Storage diagnostic field | Value for ERROR_TIERING_ALREADY_PROCESSING |
|---|---|
| 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 | observe one Optimize-Volume tier job, issue the second request while it is active, then retry only after the first job reaches a terminal state |
| Closest comparison | ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS |
| Owning object | file-to-tier placement metadata for the addressed volume |
| Rejected invariant | a tier optimization or placement operation already owns the per-volume worker and a second run cannot start concurrently |
- Attach volume GUID path to the
ERROR_TIERING_ALREADY_PROCESSINGincident so later cleanup cannot replace the original identity for ERROR_TIERING_ALREADY_PROCESSING. - Record storage-space at the instant
ERROR_TIERING_ALREADY_PROCESSINGis returned, not after an automatic refresh. - Correlate tier IDs with the first
ERROR_TIERING_ALREADY_PROCESSINGcall and its transaction or job identifier. - Export file ID plus file-system identity for
ERROR_TIERING_ALREADY_PROCESSING; this is more useful than a drive letter or friendly name alone for ERROR_TIERING_ALREADY_PROCESSING. - Verify cluster owner node belongs to the same storage generation that produced
ERROR_TIERING_ALREADY_PROCESSING. - For
ERROR_TIERING_ALREADY_PROCESSING, preserve optimization job state before a rescan; it anchors the failed object generation in the ERROR_TIERING_ALREADY_PROCESSING path. - Attach requested pin target to the
ERROR_TIERING_ALREADY_PROCESSINGincident so later cleanup cannot replace the original identity for the ERROR_TIERING_ALREADY_PROCESSING request.
When ERROR_TIERING_ALREADY_PROCESSING is followed by a secondary cleanup failure, store both codes with timestamps and retain this one as the initiating result for ERROR_TIERING_ALREADY_PROCESSING.
Controlled comparison
- Associate
ERROR_TIERING_ALREADY_PROCESSINGwith one caller, one transaction and one target UniqueId while diagnosing ERROR_TIERING_ALREADY_PROCESSING. - Save the pre-call and post-call inventories, including volume GUID path, storage-space and tier IDs, file ID plus file-system identity, cluster owner node, optimization job state and requested pin target in the ERROR_TIERING_ALREADY_PROCESSING path.
- Use this A/B case for
ERROR_TIERING_ALREADY_PROCESSINGwithout touching unrelated storage: observe one Optimize-Volume tier job, issue the second request while it is active, then retry only after the first job reaches a terminal state while diagnosing ERROR_TIERING_ALREADY_PROCESSING. - Validate both the HRESULT and the on-disk or provider state after the relevant reopen, remount or attach cycle for
ERROR_TIERING_ALREADY_PROCESSING.
Use ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS as the nearest comparison. ERROR_TIERING_ALREADY_PROCESSING is specific to a tier optimization or placement operation already owns the per-volume worker and a second run cannot start concurrently; the neighboring result belongs to another validation or lifecycle branch for the ERROR_TIERING_ALREADY_PROCESSING request. Keeping both names prevents a generic storage label from hiding the actual owner while diagnosing ERROR_TIERING_ALREADY_PROCESSING.
Mechanism-specific note for ERROR_TIERING_ALREADY_PROCESSING
Tier optimization is a serialized background job with measurable progress and a terminal result within the ERROR_TIERING_ALREADY_PROCESSING workflow. Identify the running job rather than starting another for ERROR_TIERING_ALREADY_PROCESSING. A scheduler should coalesce duplicate requests and re-evaluate placement after completion instead of using a fixed retry loop for the ERROR_TIERING_ALREADY_PROCESSING request.
Completion criteria
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 for the ERROR_TIERING_ALREADY_PROCESSING request. Keep the ERROR_TIERING_ALREADY_PROCESSING correction scoped to the owning object and avoid rewriting adjacent metadata merely to make the call return success for ERROR_TIERING_ALREADY_PROCESSING.
- For
ERROR_TIERING_ALREADY_PROCESSING, the first retry uses newly enumerated identifiers rather than cached handles when ERROR_TIERING_ALREADY_PROCESSING is returned. - The durable metadata or provider state agrees with the success returned after
ERROR_TIERING_ALREADY_PROCESSING. - A second run after close/reopen does not recreate the rejected
ERROR_TIERING_ALREADY_PROCESSINGcondition. - For
ERROR_TIERING_ALREADY_PROCESSING, the nearbyERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESSpath remains separately testable and separately logged.
A reboot, blanket disk conversion or deletion of storage metadata is not a justified first response to ERROR_TIERING_ALREADY_PROCESSING; it changes multiple invariants and can erase the evidence needed to identify the defect in the ERROR_TIERING_ALREADY_PROCESSING path.
Technical references
- Microsoft: MSFT_FileStorageTier class — documents the supported management path relevant to
ERROR_TIERING_ALREADY_PROCESSING. - Microsoft: Set method of MSFT_FileStorageTier — defines the tiering objects used to interpret
ERROR_TIERING_ALREADY_PROCESSING. - Microsoft: Optimize-Volume — primary API or object-model reference for the
ERROR_TIERING_ALREADY_PROCESSINGboundary. - Microsoft: fsutil tiering — use this source to verify tiering state and parameters for
ERROR_TIERING_ALREADY_PROCESSING.
Looking for a different code? Search another status or error code.