A user says they can't receive mail, senders are getting bounces that say the mailbox is full, and yet Outlook shows plenty of free space. "Mailbox full" in Exchange Online is really three different problems wearing the same NDR: a primary mailbox at its licence limit, a hidden Recoverable Items folder that has hit its own quota, or a quota that was lowered by hand. In this post I'll show you how to measure each one and what fixes it.
Symptoms#
External and internal senders receive a non-delivery report with the user-facing text "The recipient's mailbox is full and can't accept messages now. Please try resending this message later or contact the recipient directly." The diagnostic section for admins looks like this:
554 5.2.2 mailbox full; STOREDRV.Deliver.Exception:QuotaExceededException.MapiExceptionQuotaExceededDepending on which quota tripped, you may also see:
- The user received a warning email about approaching the limit, then a prohibit-send notice, and now can't send.
- Outlook reports "The message store has reached its maximum size" when the user tries to delete something, or Outlook on the web says "The action couldn't be completed", even though the mailbox looks half empty. Microsoft documents this as the Recoverable Items folder exceeding its quota.
- Meeting updates and cancellations bounce while ordinary mail still arrives, a classic sign that only the hidden folder is full.
Don't confuse this with the other 5.2.2 in the Exchange Online NDR list, "Submission quota exceeded", which is about a sender hitting the recipient rate limit (often a compromised account), not a full mailbox.
Why it happens#
Every mailbox has three thresholds: Warning, Prohibit Send and Prohibit Send/Receive. When the last one is reached Exchange Online rejects inbound mail and returns the NDR. The values come from the licence: for 100 GB plans (Microsoft 365 E3/E5, Office 365 E3/E5, Exchange Online Plan 2, and since the 2026 packaging update Microsoft 365 Business Basic, Standard and Premium) they are 98, 99 and 100 GB; for 50 GB plans (Office 365 E1, Exchange Online Plan 1) 49, 49.5 and 50 GB; for Exchange Online Kiosk and F3, 1.96, 1.98 and 2 GB. Shared and resource mailboxes are 50 GB without a licence and 100 GB with an Exchange Online Plan 2 or E3/E5 licence. Admins can set lower quotas per mailbox, which is the third cause: someone capped the mailbox years ago and nobody remembers.
The Recoverable Items folder is separate. It holds soft-deleted items (Deletions), hard-deleted items kept by single item recovery or holds (Purges, DiscoveryHolds), copies of edited items under hold (Versions), mailbox audit entries, Teams data (SubstrateHolds) and Calendar Logging. It has its own quota: a warning at 20 GB and a hard limit of 30 GB, raised automatically to 90 and 100 GB when the mailbox is on Litigation Hold, In-Place Hold or a Microsoft 365 retention policy (and to 95/105 GB if an archive is also enabled). Deleted items normally age out after 14 days (configurable up to 30), but a hold stops the Managed Folder Assistant from purging anything, so a busy mailbox under hold fills the folder with versions and calendar history. When it is full, users can't delete, retention can't run, versions can't be kept, audit entries can't be written, and calendar processing fails with the same 5.2.2.
How to fix it#
- Measure the mailbox and its quotas.
PowerShell
Connect-ExchangeOnline Get-Mailbox -Identity adele@contoso.com | Format-List IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota, RecoverableItemsQuota, RecoverableItemsWarningQuota, LitigationHoldEnabled, InPlaceHolds, RetainDeletedItemsFor, ArchiveStatus Get-MailboxStatistics -Identity adele@contoso.com | Format-List TotalItemSize, TotalDeletedItemSize, ItemCount Get-MailboxFolderStatistics -Identity adele@contoso.com -FolderScope RecoverableItems | Format-Table Name, FolderPath, ItemsInFolder, FolderAndSubfolderSizeTotalItemSizenearProhibitSendReceiveQuotameans the primary mailbox is genuinely full.TotalDeletedItemSizenearRecoverableItemsQuota, with the folder statistics showing which subfolder is large, means the hidden folder is the problem. (Exchange Online PowerShell V3 also offersGet-EXOMailboxStatisticsandGet-EXOMailboxFolderStatisticsfor the same data.) - Primary mailbox full, quotas at the licence maximum. Short term, have the user empty Deleted Items and Junk Email and remove large attachments;
Get-MailboxFolderStatisticswithout-FolderScopeshows which folders are heavy. Long term, enable the archive mailbox (Enable-Mailbox -Identity adele@contoso.com -Archive) and let the default retention policy move older items there; plans with Exchange Online Plan 2, E3/E5 or Business Premium get an archive that starts at 100 GB and auto-expands to 1.5 TB, while Plan 1, E1, Business Basic and Standard get 50 GB. If the user is on a 50 GB plan and needs more, the mailbox size is set by the licence, so the supported route is assigning a licence with a larger mailbox. - Primary mailbox full, quotas below the licence maximum. Raise them back up (values must stay within what the licence allows):
PowerShell
Set-Mailbox -Identity adele@contoso.com -IssueWarningQuota 98GB -ProhibitSendQuota 99GB -ProhibitSendReceiveQuota 100GB - Recoverable Items full, mailbox not on hold. Check that
RetainDeletedItemsForisn't unusually long, then runStart-ManagedFolderAssistant -Identity adele@contoso.comso expired items are purged. Users can also purge items themselves through Recover Deleted Items in Outlook. - Recoverable Items full, mailbox on hold. Do not simply remove the hold to free space. Enable the archive if it isn't already, confirm the retention tag of type RecoverableItems (in the Default MRM Policy it is "Recoverable Items 14 days move to archive") applies, and, following Microsoft's troubleshooting guidance for this exact situation, shorten its age limit so the move happens now:
Turning on auto-expanding archiving gives the archive's Recoverable Items up to 1.5 TB and lifts the primary folder's quota to 110 GB. If the hold has ended and the data really can be removed, Microsoft's "Clean up or delete items from the Recoverable Items folder" procedure (temporarily disabling single item recovery and retention, then purging with a content search) is the supported way to do it.PowerShell
Get-RetentionPolicyTag | Format-Table Name, Type, RetentionAction, AgeLimitForRetention Set-RetentionPolicyTag "Recoverable Items 14 days move to archive" -AgeLimitForRetention 1 Start-ManagedFolderAssistant -Identity adele@contoso.com - Calendar Logging is the big one. Rooms, delegates and heavy schedulers accumulate calendar change history. The same archive and Managed Folder Assistant steps move it; note that calendar items are purged after 120 days by default rather than 14.
Verify the fix#
- Re-run
Get-MailboxStatisticsand the-FolderScope RecoverableItemsquery; sizes should be comfortably below the relevant quota. Quota changes and assistant runs can take a little while to show. - Send a test message from an external account and confirm delivery with
Get-MessageTraceV2 -RecipientAddress adele@contoso.com -StartDate (Get-Date).AddHours(-1) -EndDate (Get-Date). - Ask the user to delete an item and accept a meeting update; both should succeed without the "message store" error.
Prevent it next time#
- Enable archives (and auto-expanding archiving where the licence allows) for anyone under hold before the Recoverable Items folder fills up, not after.
- Run a monthly report of
TotalItemSizeandTotalDeletedItemSizeagainst quotas so you catch mailboxes at the warning threshold; the Mailbox usage report under Reports › Usage in the Microsoft 365 admin center shows the same trend without PowerShell. - Document any custom quota you set, and review them when licences change, especially after the Business suite move to 100 GB, which does not override a custom value.
- When a user says "my mailbox is empty but it's full", go straight to Recoverable Items.