In a hybrid environment, the Recoverable Items folder in an on-premises mailbox becomes full and reaches its quota, even though there are no holds configured in Microsoft Exchange Server on-premises to preserve the content in that folder.
This behavior is by design. It is likely caused by a retention policy that has been configured in Microsoft 365 for the user object that is associated with the on-premises mailbox. For example, a user who has an on-premises mailbox and uses Microsoft Teams might have a retention policy configured to place a hold on their Teams chat items.
After a retention policy is configured in Microsoft 365 to place a user object under a hold, the GUID for this hold is stamped on the msExchUserHoldPolicies attribute of the user object. This attribute is then synchronized from Azure Active Directory (Azure AD) to the on-premises Active Directory. When the on-premises Exchange Managed Folder Assistant (MFA) processes the mailbox for items that can be purged, it encounters the msExchUserHoldPolicies attribute. However, it is unable to retrieve the details of the configured hold because they’re stored in Microsoft 365. So, to prevent deleting data that might have to be preserved, MFA skips purging items from the DiscoveryHolds folder in the mailbox. Over time, this folder becomes full and causes the Recoverable Items folder to reach its quota.
To work around this behavior, follow these steps:
Connect to Exchange Online PowerShell.
Run the following cmdlet to get the GUID of the hold that's configured in Microsoft 365 for the user object:
Get-MailUser <affected on-premises mailbox> | fl InPlaceHolds
For the GUID from the output in step 2, identify the type of hold that was configured configured. For more information, see How to identify the type of hold placed on an Exchange Online mailbox.
Select one of the following options:
Remove the affected user from the policy for the hold that's identified in step 3, if this is allowed by your organization's policies.
Configure the hold in Microsoft 365 to apply to the entire organization instead of the individual user object. Then, the GUID that's associated with the hold won't be stamped on the msExchUserHoldPolicies attribute of the user object. Consequently, it won't be synchronized with the on-premises Active Directory.
Configure a retention policy that has a retention policy tag of type "RecoverableItems" by using Exchange Management Shell, and apply it to the affected mailbox.
New-RetentionPolicyTag -Name "Archive Recoverable Items contents after 30 days" -Type RecoverableItems -AgeLimitForRetention 30 -RetentionAction MoveToArchive
New-RetentionPolicy "My archive policy" -RetentionPolicyTagLinks "Archive Recoverable Items contents after 30 days", <other retention tags to include if needed>
Set-Mailbox <affected mailbox> -RetentionPolicy "My archive policy"
This retention policy will direct MFA to move expired items to the user's archive mailbox, thereby helping the main mailbox to remain under quota limits.
Note The archive mailbox itself might also eventually reach its quota limits in this scenario. If it does, you will have to Clean up or delete items from the Recoverable Items folder.
Although it's possible to remove the GUID of the problematic hold from the on-premises user object temporarily by using a tool such as ADSIEdit and running MFA to initiate the mailbox cleanup, this option is not supported.
Editing the configuration of a hold manually might also have legal consequences. This is because some items might get deleted in this process despite legal obligations to preserve them.