DEV Community

AdminPackStudio
AdminPackStudio

Posted on

Exchange Online "mailbox full" but the online archive isn't helping - a read-first troubleshooting guide

Exchange Online "mailbox full" but the online archive isn't helping

The ticket says: "Outlook says my mailbox is full. IT turned on the archive last month. It's still full."

This is one of the most common Exchange Online tickets, and "turn on the archive" is rarely the whole fix. Enabling an archive gives mail somewhere to go. It doesn't move anything by itself. Something has to tell Exchange what to move and when, and something has to actually run.

This guide goes in the order that finds the cause fastest. Sections 1 to 4 only read. Section 5 lists the changes, which go through your normal change process. Quotas, licensing, and defaults change over time, so check current Microsoft docs for your plans.


1. Confirm what's actually full

"Full" can mean three different things:

  1. The primary mailbox has hit its quota.
  2. The Recoverable Items folder (deleted items that are still kept) has hit its own quota.
  3. Outlook's local data file (the OST in cached mode) has hit a local size limit, while the cloud mailbox is fine.

Connect with a read-only role and look at the numbers:

Connect-ExchangeOnline -UserPrincipalName auditor@contoso.com -ShowBanner:$false

$u = 'user@contoso.com'

Get-EXOMailbox -Identity $u -Properties IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota,
    RecoverableItemsQuota, RecoverableItemsWarningQuota |
  Select-Object DisplayName, IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota,
                RecoverableItemsWarningQuota, RecoverableItemsQuota

Get-EXOMailboxStatistics -Identity $u |
  Select-Object DisplayName, TotalItemSize, TotalDeletedItemSize, ItemCount, LastLogonTime
Enter fullscreen mode Exit fullscreen mode
  • TotalItemSize near ProhibitSendQuota means the primary mailbox is full.
  • TotalDeletedItemSize near RecoverableItemsQuota points to Recoverable Items. That's common on mailboxes under a hold.
  • If both are well under quota but Outlook still complains, look at the local OST and Outlook's cached mode settings, not Exchange.

Quota sizes depend on the license. Business plans and E3/E5 have different primary and archive limits, so look up the current numbers for the plans you actually own.


2. Is the archive really enabled?

Get-EXOMailbox -Identity $u -Properties ArchiveGuid, ArchiveName, ArchiveStatus, ArchiveQuota,
    AutoExpandingArchiveEnabled, RetentionPolicy, RetentionHoldEnabled, ElcProcessingDisabled,
    LitigationHoldEnabled |
  Select-Object DisplayName, ArchiveGuid, ArchiveName, ArchiveStatus, ArchiveQuota,
                AutoExpandingArchiveEnabled, RetentionPolicy, RetentionHoldEnabled,
                ElcProcessingDisabled, LitigationHoldEnabled
Enter fullscreen mode Exit fullscreen mode

What to check:

  • ArchiveGuid is not all zeros, and ArchiveName has a value. That's the reliable sign the archive exists. ArchiveStatus alone can be misleading for cloud mailboxes.
  • AutoExpandingArchiveEnabled tells you whether the archive can grow past its base size (licensing dependent).
  • The three fields at the end matter most. See section 3.

If an archive exists, read its size too:

Get-EXOMailboxStatistics -Identity $u -Archive |
  Select-Object DisplayName, TotalItemSize, ItemCount
Enter fullscreen mode Exit fullscreen mode

An archive with almost nothing in it, next to a full primary mailbox, means nothing is moving mail. That's the most common finding.


3. Why nothing moves: retention tags and the Managed Folder Assistant

Mail moves to the archive because of a retention policy (the Exchange MRM kind) with a Move to Archive tag, processed by the Managed Folder Assistant (MFA).

Three things commonly stop it:

a) The policy only moves old mail. The built-in Default MRM Policy includes a default tag that moves items to the archive after 2 years. If the user's mailbox is full of mail from the last 18 months, the default policy won't move any of it. This is the single most common cause.

Check the policy and its tags:

$policyName = (Get-EXOMailbox -Identity $u -Properties RetentionPolicy).RetentionPolicy
(Get-RetentionPolicy -Identity $policyName).RetentionPolicyTagLinks

Get-RetentionPolicyTag |
  Where-Object { $_.RetentionAction -eq 'MoveToArchive' } |
  Select-Object Name, Type, AgeLimitForRetention, RetentionEnabled
Enter fullscreen mode Exit fullscreen mode

b) Processing is switched off for this mailbox. RetentionHoldEnabled = True pauses retention processing (often set for someone on leave and never turned back). ElcProcessingDisabled = True stops the MFA from processing the mailbox at all. Either one means no moves.

c) The assistant hasn't run yet. The MFA processes mailboxes on a work cycle, not immediately. A policy assigned this morning may not have done anything yet. Wait a cycle before deciding it's broken.


4. Recoverable Items and holds

If section 1 showed the Recoverable Items folder near its quota, look inside it:

Get-EXOMailboxFolderStatistics -Identity $u -FolderScope RecoverableItems |
  Select-Object Name, FolderSize, ItemsInFolder
Enter fullscreen mode Exit fullscreen mode

On mailboxes under Litigation Hold or a Microsoft Purview retention policy, deleted items are kept rather than purged, so this folder grows. Holds raise the Recoverable Items quota, and the archive can take some of the load, but if a mailbox is under a legal or compliance hold, talk to whoever owns that hold before changing anything. "The user is out of space" is never a reason to quietly lift a hold.


5. The fixes (these are changes)

Each of these changes the mailbox or org config. Put them through change control, and test on one mailbox first.

Finding Change
Archive doesn't exist Enable-Mailbox -Identity $u -Archive (needs a license that includes archiving)
Only the 2-year default tag applies Create a shorter Move to Archive tag, add it to a retention policy, and assign that policy with Set-Mailbox -RetentionPolicy
RetentionHoldEnabled is True and no longer needed Set-Mailbox -Identity $u -RetentionHoldEnabled $false
Archive itself is filling up Consider auto-expanding archiving. Microsoft documents it as one-way: once enabled, it can't be turned off. Check licensing first
Want to see results sooner after a change Start-ManagedFolderAssistant -Identity $u asks the assistant to process the mailbox. It doesn't guarantee an instant move

A shorter tag looks like this (example values, adjust to your policy):

New-RetentionPolicyTag -Name 'Move to Archive - 1 year' -Type All `
  -RetentionAction MoveToArchive -AgeLimitForRetention 365 -RetentionEnabled $true
Enter fullscreen mode Exit fullscreen mode

After a change, check Get-EXOMailboxStatistics -Archive over the next few days. The archive size should grow as the primary shrinks.


6. Common mistakes

Mistake What happens Fix
Enabling the archive and closing the ticket Primary stays full Check which tags apply and how old the mail is
Ignoring Recoverable Items "Full" mailbox with an empty-looking inbox Read TotalDeletedItemSize and folder stats
Lifting a hold to free space Compliance and legal exposure Talk to the hold owner first
Leaving Retention Hold on after leave Nothing moves for months Add Retention Hold to your return-from-leave checklist
Expecting instant moves Re-tickets the next day Allow for the assistant's work cycle
Turning on auto-expanding without reading the docs Can't be undone Decide deliberately, document it

Want the Exchange Online checklists?

The Exchange Online Admin Hygiene Pack ($29) from Admin Pack Studio is a set of Markdown playbooks: shared vs user vs group mailbox guidance, a permissions and external-forward audit with a findings worksheet, five mail-flow triage cards, a monthly Exchange Online hygiene checklist, and admin break/fix cards. It's docs only, with no scripts and nothing that changes your tenant.

Get the pack: https://cashflow4375.gumroad.com/l/exchange-online-admin-hygiene-pack?utm_source=devto&utm_medium=article&utm_campaign=mailbox_full

Archive and retention aren't backup. The M365 Backup Awareness & Restore Runbook ($19) covers what Microsoft 365 can restore natively and a quarterly restore drill: https://cashflow4375.gumroad.com/l/m365-backup-awareness-restore-runbook


Admin Pack Studio. Not affiliated with Microsoft. Exchange Online, Outlook, Microsoft 365, and Microsoft Purview are Microsoft products. Operational guidance for admins authorized to manage their tenant. Quotas, licensing, cmdlets, and defaults change, so check current Microsoft documentation. Examples use placeholder names.

Top comments (0)