| Previous | Next |
| ERROR_NOT_A_TIERED_VOLUME | ONL_E_INVALID_AUTHENTICATION_TARGET |
ERROR_ATTRIBUTE_NOT_PRESENT
The actionable meaning of missing storage-tiering file attribute comes from the component that returned it. The HRESULT belongs to the storage-tiering facility and records that the requested tiering-related attribute is absent on the selected file or directory. Absence is a capability/state result, not proof that the path itself is missing.
The contract boundary
The declared return type and source header determine the relevant status namespace.
Missing attribute is distinct from unsupported information class, access denied, or a stale path. The object can exist and be readable while the optional metadata is not present. Keep the numeric value, declared return type, and first returning operation together with ERROR_ATTRIBUTE_NOT_PRESENT; the same integer can belong to a different status namespace in another API.
Capture before changing state
| Capture | Diagnostic value |
|---|---|
| Exact attribute class or information request, file ID/path, volume, filesystem, and handle access flags. | Identifies the concrete object and operation associated with missing storage-tiering file attribute. |
| Storage-tier inventory and whether the object is a placeholder, pinned file, reparse point, or ordinary resident file. | Separates argument or lifecycle state from a lower-layer provider failure. |
| The API that queried the attribute and the returned buffer/version before interpretation. | Creates a stable before-and-after comparison. |
| A sibling object created by the same policy that does expose the requested attribute. | Shows whether this condition is the first result or a translated summary. |
Preserve the API that queried the attribute and the returned buffer/version before interpretation before reinstalling, rebooting, clearing state, or substituting another device or provider. A success observed only after such a change is useful comparison data, but it does not identify the original cause.
Focused experiments
- Query the same attribute on a known tiered object and on a normal file on the same volume. Treat a changed result as a new boundary rather than automatic resolution.
- Open by file ID or stable handle to exclude path replacement between enumeration and query. Repeat the original supported operation so the check remains tied to the same API boundary.
- Change only the placement/tiering policy in a test volume and observe when the attribute appears. Keep unrelated inputs fixed so the changed result remains attributable to the tested variable.
Adjacent outcomes
| Observed comparison | Next conclusion to test |
|---|---|
| The first control changes the result | Concentrate on the variable isolated by this check: Query the same attribute on a known tiered object and on a normal file on the same volume. |
| The second comparison reproduces the same first status | Preserve lower-layer provider, driver, service, or runtime evidence before editing application data. The second controlled check was: Open by file ID or stable handle to exclude path replacement between enumeration and query. |
| A different status appears after the bounded change | The operation moved to another boundary after the third controlled check. That check was: Change only the placement/tiering policy in a test volume and observe when the attribute appears. Retain both results and interpret the replacement through its own API contract. |
A defensible resolution
Targeted correction. Treat absence as an explicit branch, create or apply the attribute only through the owning storage-tiering API, and avoid fabricating metadata in alternate streams or reparse data. Modify only the object, argument, policy, provider, or lifecycle state identified by the collected evidence.
Acceptance criterion. The caller handles objects with and without the attribute, the intended tiered object reports consistent metadata, and path replacement cannot change the interpretation. Re-run the original operation that produced this condition under its original identity and supported configuration, then keep one negative control that still produces the expected neighboring outcome.
Technical references
References for ERROR_ATTRIBUTE_NOT_PRESENT on the deployed platform version.
- Microsoft Open Specifications: HRESULT values — defines the status namespace used.
- Microsoft: HRESULT facility extraction — documents the API or lifecycle boundary behind this condition.
- Microsoft: file management information classes — provides ABI, implementation, or protocol context.
- Microsoft: storage tiers overview — supports the portability and verification limits.
Looking for a different code? Search another status or error code.