Site icon EfmSoft

What does HRESULT 0x80270220 (FA_E_MAX_PERSISTED_ITEMS_REACHED) mean?

 
Previous Next
NAP_E_SHV_TIMEOUT FA_E_HOMEGROUP_NOT_AVAILABLE

FA_E_MAX_PERSISTED_ITEMS_REACHED

The persisted file-access list has reached its capacity

FA_E_MAX_PERSISTED_ITEMS_REACHED is HRESULT 0x80270220 (signed decimal -2144927200, unsigned decimal 2150040096). AllStat, using winerror.h, describes it as “The maximum number of items for the access list has been reached. An item must be removed before another item is added.” The value has failure severity, facility 0x27, and code field 0x0220.

What limit was reached

This result is associated with a persisted storage-item access list, most commonly the Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList used by packaged Windows applications. A picker, activation, or drag-and-drop operation can grant temporary access to a file or folder; adding the returned StorageFile or StorageFolder to the future-access list preserves that permission for a later app session. The list is finite and is maintained by the application, not as an unlimited document history.

Current Microsoft documentation states that the future-access list can hold up to 1000 items and that the platform does not evict entries automatically. Code should still query MaximumItemsAllowed instead of assuming a constant, because the relevant list and platform contract should be visible in telemetry. Reaching this HRESULT means the attempted persistence failed; it does not mean the user-selected file is corrupt or that the current picker grant has necessarily vanished immediately.

Typical causes

Evidence to collect

Diagnostic sequence

What this HRESULT does not establish

The code does not say that disk space is exhausted, that the target file is too large, or that the user denied access. It also does not identify which entry should be removed. The limit concerns records in the brokered access list, not the number of files in the selected folder and not the capacity of the storage device.

Retry and recovery

Repeating the same Add while the list remains full will fail again. A safe retry requires freeing a slot, replacing an existing token rather than creating another, reducing the batch, or choosing a broader folder entry that accurately represents the required permission. The application should make pruning deterministic: define retention rules, protect pinned entries, remove obsolete tokens during normal maintenance, and leave enough headroom for atomic user operations.

If a batch partly succeeded before the HRESULT was returned, preserve the tokens already created and report the exact subset that was not persisted. Blindly replaying the whole batch can generate more duplicates. Retrieval of an existing token should be tested separately from adding a new one; a full list does not by itself invalidate existing entries.

Practical scenario

A photo application adds every image selected over several years to FutureAccessList. A user later chooses a folder containing 200 more images, and the picker wrapper persists each file separately until the list reaches its maximum. The next addition returns FA_E_MAX_PERSISTED_ITEMS_REACHED. The durable fix is to retain the folder when that permission model is appropriate and prune obsolete per-file tokens, not to retry the import or delete arbitrary recent documents.

References


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

Exit mobile version