When the Recoverable Items folder in an Exchange Online mailbox reaches its quota, users can't delete items, retention tags stop deleting, and calendar invitations can fail. Almost always the mailbox is on some kind of hold, so nothing is purged, and either the archive isn't enabled or deleted items arrive faster than the default tag moves them to the archive. Check the quota and usage with Get-Mailbox and Get-MailboxStatistics, identify the hold from InPlaceHolds, and then free space by enabling the archive (and auto-expanding archiving if needed), shortening the Recoverable Items retention tag, and running Start-ManagedFolderAssistant.
Who this is for and what you will have at the end
This guide is for Exchange Online and Microsoft Purview administrators dealing with a mailbox that suddenly can't delete mail, a user who can't accept meeting invitations, or a quota warning on the Recoverable Items folder. It covers user and shared mailboxes in Exchange Online.
By the end you will have:
- The mailbox's real quota, the space used in the primary and archive Recoverable Items folders, and which subfolders hold it.
- The hold or retention setting that's preventing purges.
- A fix that frees space without breaking a legal or compliance obligation.
- Commands to confirm the folder is draining.
How the Recoverable Items folder fills up
The Recoverable Items folder lives in the hidden non-IPM part of the mailbox and has its own quota, separate from the mailbox quota. Its subfolders matter for diagnosis:
| Subfolder | What lands there |
|---|---|
| Deletions | Items deleted from Deleted Items, or with Shift+Delete. Users can recover these. |
| Purges | Hard-deleted items, when Litigation Hold or single item recovery is enabled. |
| Versions | Original copies of items edited while the mailbox is on hold (copy-on-write). |
| DiscoveryHolds | Hard-deleted items that match an In-Place Hold, or that a Microsoft 365 retention policy keeps. |
| SubstrateHolds | Original copies of Teams messages that were modified or deleted, kept by a hold or Teams chat retention policy. |
| Audits | Mailbox audit log entries. |
| Calendar Logging | Calendar change logs. |
Without a hold, the folder mostly takes care of itself. Items are purged when the deleted item retention period expires (14 days by default, up to 30 days), and if the folder reaches the warning quota, items are purged first in, first out. With single item recovery enabled, which is the Exchange Online default, users can't purge the folder themselves, but the Managed Folder Assistant still purges expired items.
A hold changes that. Litigation Hold or In-Place Hold stops the Managed Folder Assistant from purging the Deletions, Purges and DiscoveryHolds subfolders and turns on copy-on-write. Microsoft 365 retention policies and retention labels that retain content have the same effect. Data now only leaves the primary Recoverable Items folder by moving to the archive, through the Recoverable Items 14 days move to archive tag in the Default MRM Policy. If the archive isn't enabled, that tag does nothing and the folder grows until it hits the quota.
The quotas you are working with
| Mailbox state | Warning quota | Hard quota |
|---|---|---|
| Not on hold | 20 GB | 30 GB |
| On Litigation Hold, In-Place Hold or a Microsoft 365 retention policy | 90 GB | 100 GB |
| On hold, archive enabled | 95 GB | 105 GB |
| On hold, auto-expanding archiving enabled for the user | 100 GB | 110 GB |
The archive mailbox has its own Recoverable Items folder. With auto-expanding archiving, the archive including its Recoverable Items folder can grow to 1.5 TB in total, spread across several archive shards rather than one large mailbox.
You can't raise these values directly. The Set-Mailbox reference lists RecoverableItemsQuota and RecoverableItemsWarningQuota as available only in on-premises Exchange.
Prerequisites
- Exchange Online PowerShell, and Security & Compliance PowerShell if you need to name retention policies or eDiscovery holds:
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -UserPrincipalName admin@contoso.com
Connect-IPPSSession -UserPrincipalName admin@contoso.com- Mail Recipients permissions (or Organization Management) to enable archives and auto-expanding archiving.
- The Legal Hold role if you will remove a delay hold.
- Agreement from whoever owns the hold (legal, records management or compliance) before you change or remove anything that preserves data.
Step 1: Measure the quota and the usage
Read the quotas and hold flags on the mailbox:
Get-Mailbox ana@contoso.com | Format-List Alias, RecoverableItemsQuota, RecoverableItemsWarningQuota,
LitigationHoldEnabled, InPlaceHolds, ArchiveGuid, ArchiveStatus, AutoExpandingArchiveEnabled,
RetainDeletedItemsFor, SingleItemRecoveryEnabled, RetentionPolicyThen measure how much of it is used. TotalDeletedItemSize is the Recoverable Items usage:
Get-MailboxStatistics ana@contoso.com | Format-List TotalDeletedItemSize, TotalItemSize
Get-MailboxStatistics ana@contoso.com -Archive | Format-List TotalDeletedItemSizeGet-MailboxStatistics -Archive can be slow or time out when the user has several archive shards, and it shows aggregated figures. Passing the archive GUID instead returns the main archive alone.
Break the usage down by subfolder to see what kind of data is filling it:
Get-MailboxFolderStatistics ana@contoso.com -FolderScope RecoverableItems |
Format-Table Name, FolderAndSubfolderSize, ItemsInFolderAndSubfolders -AutoSizeLarge Purges or DiscoveryHolds point to a hold preserving hard deletes. Large Versions point to heavy editing under hold. Large SubstrateHolds points to Teams retention. A large Deletions with no archive is the classic case of the 14-day move-to-archive tag having nowhere to go.
Step 2: Identify every hold on the mailbox
A mailbox can be held by several things at once, and LitigationHoldEnabled is only one of them:
Get-Mailbox ana@contoso.com | Select-Object -ExpandProperty InPlaceHolds
Get-OrganizationConfig | Select-Object -ExpandProperty InPlaceHolds
Get-Mailbox ana@contoso.com | Format-List ComplianceTagHoldApplied, DelayHoldApplied, DelayReleaseHoldAppliedRead the InPlaceHolds values by prefix:
| Value | Hold type | How to name it |
|---|---|---|
mbx... | Microsoft 365 retention policy applied to the mailbox | Get-RetentionCompliancePolicy <GUID> | Format-List Name, with the prefix and any :1, :2 or :3 action suffix removed |
skp... | Retention policy for Skype for Business conversations | Same cmdlet, prefix and suffix removed |
UniH... | eDiscovery case hold | Get-CaseHoldPolicy <GUID without prefix> |
-mbx... | Mailbox excluded from an organization-wide policy | Check the organization-wide policy |
An empty InPlaceHolds on the mailbox doesn't mean no hold: organization-wide retention policies show up only in Get-OrganizationConfig. ComplianceTagHoldApplied set to True means a retention label that retains content was applied to an item or folder. DelayHoldApplied or DelayReleaseHoldApplied set to True means a hold was recently removed and the mailbox is still treated as on hold for 30 days.
Step 3: Free space without dropping the hold
These fixes keep every hold in place. Start here.
Enable the archive mailbox
If ArchiveStatus is None, enabling the archive alone gives the default Recoverable Items 14 days move to archive tag somewhere to move items, and raises the primary Recoverable Items quota from 100 GB to 105 GB for mailboxes on hold:
Enable-Mailbox ana@contoso.com -ArchiveTell the user first: the Default MRM Policy also contains Default 2 year move to archive, so older mail in their primary mailbox can move to the new archive too.
Turn on auto-expanding archiving for this user
If the main archive is itself filling, enable auto-expanding archiving for the user. For a mailbox on hold, this adds 10 GB to both the archive quota and the primary Recoverable Items quota (to 110 GB) as a buffer, and the archive can then grow to 1.5 TB:
Enable-Mailbox ana@contoso.com -AutoExpandingArchive
Get-Mailbox ana@contoso.com | Format-List AutoExpandingArchiveEnabledKnow the trade-offs before you run it. Auto-expanding archiving can't be turned off once enabled. A mailbox with it enabled can't be recovered or restored from an inactive state, and a cloud archive with it enabled can't be offboarded to Exchange Server. Extra storage is provisioned when the archive reaches 90 GB and can take up to 30 days. For users whose primary mailbox is on-premises and archive is in the cloud, the per-user command isn't supported; you have to use Set-OrganizationConfig -AutoExpandingArchive for the whole organization, which doesn't add the 10 GB buffer.
Run the Managed Folder Assistant
After you enable the archive, start the Managed Folder Assistant instead of waiting up to seven days for it to process the mailbox:
Start-ManagedFolderAssistant ana@contoso.comMove items to the archive sooner
Microsoft's troubleshooting article for this symptom covers mailboxes on hold with an archive enabled, where a new or changed retention policy deletes many items at once. They all land in Recoverable Items, and the 14-day tag keeps them there for two weeks while the folder hits its quota. The fix is a shorter age limit on the tag that applies to the Recoverable Items folder:
Get-RetentionPolicyTag | Format-Table Name, Type, RetentionAction, AgeLimitForRetentionThe troubleshooting article sets the age limit of the tag whose type is RecoverableItems to 1 day and then runs the Managed Folder Assistant:
Set-RetentionPolicyTag "Recoverable Items 14 days move to archive" -AgeLimitForRetention 1
Start-ManagedFolderAssistant ana@contoso.comUse the exact tag name from the previous output. Changing the default tag affects every retention policy that links it. A narrower option, based on Microsoft's procedure for mailboxes on hold, is a dedicated tag and policy:
New-RetentionPolicyTag -Name "Recoverable Items 1 day move to archive" -Type RecoverableItems -AgeLimitForRetention 1 -RetentionAction MoveToArchive
New-RetentionPolicy "MRM Policy for Mailboxes on Hold" -RetentionPolicyTagLinks "Recoverable Items 1 day move to archive","Default 2 year move to archive","Junk Email","Never Delete"
Set-Mailbox ana@contoso.com -RetentionPolicy "MRM Policy for Mailboxes on Hold"
Start-ManagedFolderAssistant ana@contoso.comAdd the other tags your users rely on to the new policy, because assigning it replaces the retention policy the mailbox had before. Microsoft's general guidance is to match the Recoverable Items tag's age to the deleted item retention period so users keep their full window to recover deleted items; a one-day age is for draining a full folder, so consider raising it again later.
If you import large PST files into a mailbox on hold, plan for this as well. The Import service also turns on retention hold, as the PST import guide explains.
Step 4: When the hold itself is the problem
If the data no longer needs preserving, removing the hold lets the Managed Folder Assistant purge again. Do this only with written approval from the hold's owner.
- Litigation Hold:
Set-Mailbox ana@contoso.com -LitigationHoldEnabled $false. It can take up to 240 minutes to take effect. - Retention policy: edit the policy in the Microsoft Purview portal and remove the mailbox, or exclude it from an organization-wide policy. Exclusions can take up to 24 hours to apply.
- eDiscovery hold: remove the mailbox from the hold in its eDiscovery case.
Removing any hold triggers a delay hold: for 30 days the mailbox is still treated as on hold. If you need the space sooner and the hold owner agrees, remove it (requires the Legal Hold role):
Set-Mailbox ana@contoso.com -RemoveDelayHoldApplied
Set-Mailbox ana@contoso.com -RemoveDelayReleaseHoldAppliedThe first removes delay holds on email data, the second on data from cloud apps such as Teams. To see the hold history first, run Export-MailboxDiagnosticLogs -Identity ana@contoso.com -ComponentName HoldTracking.
To delete specific items while a hold stays in place, for example after data spillage, Microsoft documents a separate procedure in "Delete items in the Recoverable Items folder for mailboxes on hold in eDiscovery". It disables client access and single item recovery, sets ElcProcessingDisabled, temporarily removes every hold, purges with New-ComplianceSearchAction -Purge -PurgeType HardDelete (up to 10 items per mailbox per run), and then restores everything. It doesn't work for mailboxes under a Preservation Lock policy or for inactive mailboxes. Follow that article step by step rather than improvising; the purge is permanent.
Verification
Re-run the measurements over the next day or two:
Get-MailboxStatistics ana@contoso.com | Format-List TotalDeletedItemSize
Get-Mailbox ana@contoso.com | Format-List RecoverableItemsQuota, ArchiveStatus, AutoExpandingArchiveEnabled, RetentionPolicy
Get-MailboxFolderStatistics ana@contoso.com -FolderScope RecoverableItems -Archive |
Format-Table Name, FolderAndSubfolderSize -AutoSizeYou want TotalDeletedItemSize in the primary mailbox falling below the warning quota, and the archive's Recoverable Items folders growing by roughly the same amount. Then ask the user to delete an item and accept a meeting invitation.
To catch the next one early, check TotalDeletedItemSize with Get-MailboxStatistics periodically on mailboxes under long-term holds, and enable the archive on those mailboxes before the Recoverable Items folder approaches its warning quota.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| User can't delete items or accept invitations | Recoverable Items at hard quota | Steps 1 to 3. |
Folder full, LitigationHoldEnabled is False | Retention policy, eDiscovery hold, label or delay hold | Check InPlaceHolds, Get-OrganizationConfig, ComplianceTagHoldApplied, DelayHoldApplied. |
| Archive enabled, MFA runs, nothing moves | Items still inside the 14-day tag window after a mass deletion | Shorter Recoverable Items tag, then Start-ManagedFolderAssistant. |
| Large SubstrateHolds subfolder | Teams retention policy or hold | Review the Teams retention policy with its owner. |
Set-Mailbox -RecoverableItemsQuota fails | Parameter is on-premises only | Use archive and auto-expanding archiving. |
| Cross-tenant move fails with a quota error | Target mail user's Recoverable Items quota is 30 GB | Raise it on the target with Set-MailUser <identity> -EnableLitigationHoldForMigration; see the cross-tenant migration post. |
| Purge leaves items behind | A hold source is still in effect | Recheck every hold type, including delay holds. |
Checklist
- Record quota,
TotalDeletedItemSizeand the per-subfolder sizes. - List every hold: mailbox
InPlaceHolds, organization-wide policies, labels, delay holds, Litigation Hold. - Enable the archive if it's missing; run the Managed Folder Assistant.
- Consider auto-expanding archiving, knowing it can't be undone.
- Shorten the Recoverable Items tag through a dedicated policy if a mass deletion filled the folder.
- Change or remove holds only with the owner's approval; account for the 30-day delay hold.
- Verify the primary folder drains and the archive grows.
References
- Recoverable Items folder in Exchange Online
- Increase the Recoverable Items quota for mailboxes on hold in eDiscovery
- Recoverable Items folder not emptied for mailbox on litigation or retention hold
- Delete items in the Recoverable Items folder for mailboxes on hold in eDiscovery
- Enable auto-expanding archiving
- Demystifying Exchange Online Mailbox Quotas (Exchange Team Blog)
- Place a mailbox on retention hold in Exchange Online
- Set-Mailbox