In this blog post, I will show you how to fix an issue when emails are not moving to archive mailbox in exchange online. I recently created a mailbox retention policy and applied it to all Exchange Online users. The policy is working for most users, but for a few, messages aren’t moving from the primary mailbox to their archive mailbox.
After investigating, we found that a retention hold was enabled on those mailboxes; as a result, the Managed Folder Assistant (MFA) prevented messages from moving to the archive mailbox. Follow the steps in this blog post to check and update the retention hold status for affected users to resolve the problem. If it still does not fix your issue, you can use any of the other troubleshooting steps given in this post.
Placing a mailbox on retention hold suspends the processing of an MRM retention policy by the Managed Folder Assistant (MFA) for that mailbox. Retention hold is designed for situations such as a user being on vacation or away temporarily.
About retention hold
Contents
Install and Connect to Exchange Online
Install and Import Exchange Online PowerShell Module (More Information)
Install-Module ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement
Connect to Exchange Online
$UserCredential = Get-Credential
Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true
1. Check and Update Retention Hold Status
Check user’s retention hold status and update it if needed. In the commands below, replace the placeholder email address with the user’s actual email address.
Check RetentionHoldEnabled status
Get-Mailbox "email address" | Select RetentionHoldEnabled
If RetentionHoldEnabled is true, then change it to false
Set-Mailbox "email address" -RetentionHoldEnabled $false
Check the Retention Policy and Retention Hold Value for all Mailboxes
Get-Mailbox -ResultSize unlimited | Where-Object {$_.RetentionHoldEnabled -eq $true} | Format-Table Name,RetentionPolicy,RetentionHoldEnabled -Auto
Retention hold is usually the reason for emails not moving to archive mailbox. However, there could be other basic reasons, like archive mailbox is full or deleted, retention policy issue etc. Let’s investigate it further.
2. Check Archive Mailbox Exists and not Full
Check if Archive Mailbox is Full
Get-Mailbox -ResultSize Unlimited |
Select DisplayName,ArchiveStatus,ArchiveQuota,ArchiveWarningQuota |
Format-Table -Auto
3. Check if retention policy with an Archive tag is assigned
Ensure there’s a Default Policy Tag (DPT) or personal/folder tag with RetentionAction = MoveToArchive and RetentionEnabled = True. Before executing the commands, replace the variable placeholders with actual user.
Check retention policy
Get-Mailbox <user@domain> | fl RetentionPolicy
Get-RetentionPolicy "<policy name>" | fl Name,RetentionPolicyTagLinks
Get-RetentionPolicyTag | ? {$_.Type -in 'All','Archive'} |
ft Name,Type,AgeLimitForRetention,RetentionAction,RetentionEnabled
4. Manually Kickstart Managed Folder Assistant
Kickstart MFA
Start-ManagedFolderAssistant -Identity <user>
Example:
Start-ManagedFolderAssistant -Identity [email protected]
Impact of Turning Off Retention Hold
Turning off RetentionHold lets Exchange’s Managed Folder Assistant (MFA) resume acting on items in user-visible folders (move/delete per MRM tags). It does not disable Microsoft Purview (Compliance Center) features. You can still run eDiscovery and place/maintain Litigation Hold or eDiscovery holds exactly as before.
What RetentionHold does
- When ON:
MFA keeps stamping retention tags/labels, but does not expire or move items in user folders. It continues to process the Recoverable Items subtree. This is meant for scenarios like a user on leave; it’s not a compliance hold. - When OFF:
MFA resumes normal processing (archive/move/delete) in user folders according to your MRM tags and/or Purview retention settings.
eDiscovery & legal hold after turning RetentionHold off
- Still fully available and unaffected. For preservation, use Litigation Hold, an eDiscovery (case) hold, or a Purview retention policy/label configured to retain. These are independent of
RetentionHold
.
Note: When removing an actual compliance hold (Litigation/eDiscovery/Purview hold), Exchange applies a 30-day delay hold before purging can occur. This delay-hold concept does not apply to toggling RetentionHold.
Important nuance: labels vs. archive
- Purview retention labels do not move items to the Online Archive.
- Only Exchange MRM retention tags support the Move to Archive action. If your goal is auto-archiving, ensure the mailbox’s MRM policy includes a tag with
MoveToArchive
.
Quick health checks (PowerShell)
Get-Mailbox <user@domain> | fl `
RetentionHoldEnabled,ElcProcessingDisabled,RetentionPolicy, `
InPlaceHolds,LitigationHoldEnabled,ComplianceTagHoldApplied
# If needed, re-enable processing and kick MFA:
Set-Mailbox <user@domain> -RetentionHoldEnabled:$false
Start-ManagedFolderAssistant -Identity <user@domain>
ElcProcessingDisabled
should be False; if True, MFA won’t process anything. If ElcProcessingDisabled is false, fix it using below PowerShell commands.
ElcProcessingDisabled Fix
# Check a single mailbox
Get-Mailbox <user@domain> | fl ElcProcessingDisabled
# Find all mailboxes with MFA disabled
Get-Mailbox -ResultSize Unlimited -Filter "ElcProcessingDisabled -eq $true" |
Select DisplayName,PrimarySmtpAddress
# Re-enable MFA processing for a mailbox
Set-Mailbox <user@domain> -ElcProcessingDisabled:$false
# (Optional) Nudge MFA to run asap
Start-ManagedFolderAssistant -Identity <user@domain>
Concluding
- Turning off
RetentionHold
has no negative impact on Compliance Center capabilities. - Use Litigation/eDiscovery holds or Purview retention policies/labels for preservation; use MRM tags if you want Move to Archive behavior.
Litigation Hold
Although litigation hold is not a reason for emails not moving to archive mailbox error. It’s related information to understand about a mailbox. For legal or compliance purposes, you can place a user’s mailbox on hold. This preserves mailbox content in the Purges folder even if the user deletes items.
Get the list of all the users where Litigation Hold is enabled
get-mailbox -ResultSize Unlimited | Where-object {$_.LitigationHoldenabled -eq $true} | Select Name, LitigationHoldEnabled,Litigationholdduration
Set the Litigation hold on a user mailbox for 7 Years
set-mailbox "email address" -LitigationHoldEnabled $true -LitigationHoldDuration 2556
Enable the Litigation hold on All the User Mailboxes and Set the Duration to 7 years.
Get-Mailbox -ResultSize Unlimited -Filter "RecipientTypeDetails -eq 'UserMailbox'" | Set-Mailbox -LitigationHoldEnabled $true -LitigationHoldDuration 2556
Good Day Techpress, Thanks for the writeup on this issue.
I recently experienced the same issue applying retention labels to all emails and then realized nothing is happening with the labeled items, after contact with Microsoft they suggested that I turn off RetentionHold. What is the effect of this with regard to the compliance center? Can you still use eDiscovery & legal hold after this feature is turned off?