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 Exchange on-premises to preserve the content in that folder.


This issue 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 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 need to be preserved, it skips purging items from the DiscoveryHolds folder in the mailbox. Over time, this folder becomes full and results in the Recoverable Items folder reaching its quota. This behavior is by design.


To work around this behavior, use the following steps.

  1. Connect to Exchange Online PowerShell.

  2. 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

  3. For the GUID from the output in step 2, identify the type of hold that has been configured. See How to identify the type of hold placed on an Exchange Online mailbox for more information.

  4. Select one of the following options:

    • Remove the affected user from the policy for the hold identified in step 3 if 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 associated with the hold won't be stamped on the msExchUserHoldPolicies attribute of the user object, and consequently won't be synchronized with the on-premises Active Directory.

    • Configure a retention policy with 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. Then you will need to Clean up or delete items from the Recoverable Items folder.


  • While 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 may also have legal consequences because some items might get deleted this way despite legal obligations to preserve them.

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

What affected your experience?

Thank you for your feedback!