How to Force Microsoft 365 Email Archiving When a Mailbox Is Full Print

  • PowerShell, Exchange, Storage, Archive
  • 0

APPLIES TO: Microsoft 365 / Exchange Online (Exchange Online PowerShell)

Overview

When a Microsoft 365 mailbox reaches its 100 GB limit, mail starts bouncing. Enabling archiving alone does not clear it immediately. This article explains how archiving timing works and how to force it to run for one mailbox or the whole organization.

Symptom

Mailbox is at approximately 100 GB and inbound email is bouncing with a mailbox full or quota exceeded error.

Background - How Auto-Archiving Timing Works

  • The Managed Folder Assistant (MFA) is the background process that moves mail into the archive mailbox
  • It processes each mailbox automatically at least once every 7 days - the exact time cannot be predicted
  • Only mail older than the archive tag age is moved. The default tag ("Default 2 year move to archive") only offboards items older than 2 years, so recent mail will not clear
  • Forcing MFA to run starts archiving within about 5 minutes instead of waiting for the next cycle

Step 1 - Connect to Exchange Online PowerShell

Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com

Step 2 - Verify the Archive Is Enabled

Get-Mailbox user@yourdomain.com | fl DisplayName,ArchiveStatus,AutoExpandingArchiveEnabled
Get-OrganizationConfig | fl AutoExpandingArchive

ArchiveStatus = Active and AutoExpandingArchive = True means archiving is on. If not, enable it:

Enable-Mailbox user@yourdomain.com -Archive
Set-OrganizationConfig -AutoExpandingArchive
CAUTION: Set-OrganizationConfig -AutoExpandingArchive cannot be undone once applied.

Step 3 - Force Archiving for a Single Mailbox

Start-ManagedFolderAssistant -Identity user@yourdomain.com

Step 3 (Alternative) - Force Archiving for All User Mailboxes

Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq "UserMailbox"} |
  ForEach-Object {
    try { Start-ManagedFolderAssistant -Identity $_.PrimarySmtpAddress -ErrorAction Stop }
    catch { Write-Warning "Skipped $($_.PrimarySmtpAddress): $($_.Exception.Message)" }
  }

Step 4 - Confirm It Is Working

Run the following commands before forcing archiving, wait 15-30 minutes, then run them again. The primary mailbox should shrink and the archive should grow.

Get-MailboxStatistics user@yourdomain.com | fl DisplayName,TotalItemSize,ItemCount
Get-MailboxStatistics user@yourdomain.com -Archive | fl DisplayName,TotalItemSize,ItemCount

If Nothing Moves

This usually means the mail is newer than the archive tag age (default 2 years) rather than a failed command. Create a shorter retention tag to pull more mail into the archive:

New-RetentionPolicyTag "1 Year Move to Archive" -Type All -RetentionAction MoveToArchive -AgeLimitForRetention 365 -RetentionEnabled $true
Set-RetentionPolicy "Default MRM Policy" -RetentionPolicyTagLinks (Get-RetentionPolicy "Default MRM Policy").RetentionPolicyTagLinks + "1 Year Move to Archive"
Start-ManagedFolderAssistant -Identity user@yourdomain.com

Expected Time to Resolution

  • Archiving should begin within a few minutes when forced
  • Full drainage of a large mailbox may take minutes to hours depending on mailbox size
  • Only items older than the archive policy age will be moved

Notes

  • Set-OrganizationConfig -AutoExpandingArchive cannot be undone once applied to the organization
  • Large tenants may experience throttling - MFA will continue processing in the background over several hours

Was this answer helpful?

« Back