What does HRESULT 0x80830006 (ERROR_TIERING_ALREADY_PROCESSING) mean?

 
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 fieldValue for ERROR_TIERING_ALREADY_PROCESSING
Identity and generationvolume GUID path, storage-space and tier IDs, file ID plus file-system identity, cluster owner node, optimization job state and requested pin target
Narrow experimentobserve 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 comparisonERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS
Owning objectfile-to-tier placement metadata for the addressed volume
Rejected invarianta 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_PROCESSING incident so later cleanup cannot replace the original identity for ERROR_TIERING_ALREADY_PROCESSING.
  • Record storage-space at the instant ERROR_TIERING_ALREADY_PROCESSING is returned, not after an automatic refresh.
  • Correlate tier IDs with the first ERROR_TIERING_ALREADY_PROCESSING call 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_PROCESSING incident 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

  1. Associate ERROR_TIERING_ALREADY_PROCESSING with one caller, one transaction and one target UniqueId while diagnosing ERROR_TIERING_ALREADY_PROCESSING.
  2. 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.
  3. Use this A/B case for ERROR_TIERING_ALREADY_PROCESSING without 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.
  4. 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_PROCESSING condition.
  • For ERROR_TIERING_ALREADY_PROCESSING, the nearby ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS path 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


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