Common Exchange Online Migration Errors — Causes and Resolutions
Although the migration process is generally smooth, administrators often encounter various errors related to mailbox configuration, Active Directory objects, archive settings, mailbox quotas, hybrid attributes, and existing move requests. This article covers the most common real-world Exchange Online migration errors, along with their causes and resolutions based on practical troubleshooting experience.
📋 Errors Covered in This Article
For each error we cover: the exact error message, what it means, common causes, resolution steps, and relevant PowerShell commands.
- UserAlreadyBeingMigratedException — User Already Being Migrated
- OnpremisesUserIsBeingMovedException — Existing Move Request Blocking Migration
- MigrationRecipientNotFoundException — Recipient Not Found
- TargetUserAlreadyHasPrimaryMailboxException — Target User Already Has a Primary Mailbox
- TargetDeliveryDomainMismatchPermanentException — Missing Target Delivery Domain
- NotAcceptedDomainException — Invalid SMTP Domain
- MailboxReplicationPermanentException — Archive Mailbox Already Exists
- CorruptFolderRule — Corrupt Inbox Rule
- MailboxExceedsTargetQuotaPermanentException — Mailbox Size Exceeds Target Quota
- QuotaExceededException — Folder Item Count Limit Reached
- MailboxDumpsterExceedsTargetQuotaPermanentException — Recoverable Items (Dumpster) Exceeds Quota
1. User Already Being Migrated
Exchange Online Error Message
The user already has a pending request. Please remove the existing request and resume the current batch or start a new batch for this user.
Target user already has a primary mailbox.
What This Means
Exchange Online has detected an existing migration request or the mailbox has already been migrated to the cloud. A duplicate move request is preventing the new one from being created.
Resolution
- 1
Check for an existing move request in Exchange Online using
Get-MoveRequest. - 2
Remove the stale or completed move request with
Remove-MoveRequest. - 3
If no move request exists, verify whether the mailbox has already been successfully migrated to Exchange Online.
Connect-ExchangeOnline # Check for existing move request Get-MoveRequest -Identity user@domain.com # Remove the stale request if found Remove-MoveRequest -Identity user@domain.com # Verify the mailbox exists in Exchange Online Get-Mailbox -Identity user@domain.com | Select-Object DisplayName,RecipientTypeDetails
2. Existing Move Request Blocking Migration
Exchange Online Error Message
On-premises user has an existing move to database ‘<Database>’ with status ‘InProgress’ and flags ‘IntraOrg, Pull’.
What This Means
A previous mailbox move request still exists in Exchange on-premises. Exchange Online will not create another move request until the existing one is removed from the source environment.
Resolution
- 1
Connect to Exchange on-premises PowerShell and verify the existing move request.
- 2
Remove the completed or stuck move request.
- 3
Re-initiate the migration once confirmed clear.
# Run from Exchange On-Premises Management Shell # Check for existing move request Get-MoveRequest -Identity user@domain.com # Remove the completed or stuck request Remove-MoveRequest -Identity user@domain.com # Confirm no move requests remain Get-MoveRequest -Identity user@domain.com
3. Recipient Not Found
Exchange Online Error Message
A recipient wasn’t found for this migration.
Create a recipient of the appropriate type for this migration and try again.
What This Means
Exchange cannot locate the mailbox object in Active Directory or Exchange on-premises. The recipient does not exist or is not visible to the migration engine.
Common Causes
- User account deleted from Active Directory
- User account disabled before migration completed
- Mailbox object missing or corrupt
- Azure AD synchronisation issue — user not synced to Exchange Online
Resolution
- 1
Verify the mailbox exists in Exchange on-premises using
Get-Recipient. - 2
Confirm the user account is active and enabled in Active Directory.
- 3
Check Azure AD Connect synchronisation status and force a delta sync if needed.
- 4
Restart the migration once the recipient object is confirmed and synchronised.
# Verify recipient exists on-premises Get-Recipient user@domain.com # Check mailbox object Get-Mailbox -Identity user@domain.com # Force Azure AD Connect delta sync (run on the AD Connect server) Start-ADSyncSyncCycle -PolicyType Delta
4. Target User Already Has a Primary Mailbox
Exchange Online Error Message
Target user already has a primary mailbox.
What This Means
A mailbox already exists in Exchange Online for this user. The migration engine cannot create a second primary mailbox for the same account.
Common Causes
- User was already migrated in a previous batch
- Duplicate mailbox configuration — both on-premises and cloud mailboxes exist
- A cloud mailbox was created manually before migration was initiated
Resolution
- 1
Verify the mailbox location and recipient type to confirm where the primary mailbox currently exists.
- 2
If a duplicate mailbox exists in Exchange Online, disable the on-premises mailbox.
- 3
Enable the remote mailbox on-premises to properly represent the cloud mailbox.
- 4
Initiate a new
New-MoveRequestfrom the on-premises Exchange to cloud.
# Check recipient type and location Get-Recipient -Identity user@domain.com | Select-Object DisplayName,RecipientType,RecipientTypeDetails # Verify if mailbox exists in Exchange Online Get-Mailbox -Identity user@domain.com | Select-Object DisplayName,RecipientTypeDetails,ExchangeGuid # Disable on-premises mailbox if duplicate exists Disable-Mailbox -Identity user@domain.com # Enable as remote mailbox pointing to Exchange Online Enable-RemoteMailbox -Identity user@domain.com -RemoteRoutingAddress user@tenant.mail.onmicrosoft.com
5. Missing Target Delivery Domain
Exchange Online Error Message
The target mailbox doesn’t have an SMTP proxy matching ‘<tenant>.mail.onmicrosoft.com’.
What This Means
The required Exchange Online routing address (@tenant.mail.onmicrosoft.com) is missing from the mailbox’s proxy addresses. This address is mandatory for hybrid remote move migrations to function correctly.
Resolution
- 1
Open Exchange on-premises Admin Center (ECP) and verify that email address policies are applied to the mailbox.
- 2
Enable automatic address updates if the policy is not stamping the
mail.onmicrosoft.comrouting address. - 3
Manually add the routing address if email address policies are not covering this mailbox.
- 4
Restart the migration once the routing address appears in the proxy addresses.
# Check existing proxy addresses Get-Mailbox -Identity user@domain.com | Select-Object -ExpandProperty EmailAddresses # Manually add the missing routing address Set-Mailbox -Identity user@domain.com -EmailAddresses @{Add="user@tenant.mail.onmicrosoft.com"} # Force email address policy update on the mailbox Set-Mailbox -Identity user@domain.com -EmailAddressPolicyEnabled $true # Verify the address was added Get-Mailbox -Identity user@domain.com | Select-Object -ExpandProperty EmailAddresses
6. Invalid SMTP Domain
Exchange Online Error Message
You can’t use the domain localhost because it’s not an accepted domain for your organization.
What This Means
The mailbox contains an invalid SMTP address using a domain that Exchange Online does not recognise as an accepted domain — most commonly user@localhost or other non-routable addresses left over from legacy configurations.
Resolution
- 1
Identify all invalid proxy addresses on the mailbox (e.g. addresses using
@localhost,@localdomain, or other non-routable domains). - 2
Remove the invalid SMTP address from the mailbox.
- 3
Restart the migration once the invalid address is removed.
# List all proxy addresses to identify invalid ones Get-Mailbox -Identity user@domain.com | Select-Object -ExpandProperty EmailAddresses # Remove the specific invalid SMTP address Set-Mailbox -Identity user@domain.com -EmailAddresses @{Remove="user@localhost"} # Verify removal Get-Mailbox -Identity user@domain.com | Select-Object -ExpandProperty EmailAddresses
7. Archive Mailbox Already Exists
Exchange Online Error Message
You must specify the PrimaryOnly parameter.
Target user already has an archive mailbox.
What This Means
The archive mailbox already exists in Exchange Online, but the corresponding remote archive object is missing on-premises. Exchange Online cannot create a second archive during migration and requires the -PrimaryOnly flag to migrate just the primary mailbox.
Resolution
- 1
Enable the remote archive mailbox on-premises to align the hybrid objects.
- 2
Create the move request using the
-PrimaryOnlyparameter to migrate only the primary mailbox and avoid the archive conflict.
# Enable remote archive mailbox on-premises Enable-RemoteMailbox "user@domain.com" -Archive # Create move request with -PrimaryOnly to skip archive migration New-MoveRequest -Identity "user@domain.com" -Remote -TargetDeliveryDomain tenant.mail.onmicrosoft.com -PrimaryOnly # Monitor the move request Get-MoveRequest -Identity "user@domain.com" | Select-Object Status,PercentComplete,Message
8. Corrupt Inbox Rule
Exchange Online Error Message
Inbox, FolderRule, SourcePrincipalError
What This Means
An invalid Inbox rule is preventing mailbox synchronisation during migration. A common example is a rule such as “If message is received from user@domain.com, move message to Inbox” — since all messages are already delivered to Inbox, Exchange treats this as an invalid circular rule during migration.
Resolution
- 1
Review all Inbox rules on the mailbox to identify any that are invalid, circular, or reference missing folders.
- 2
Remove the problematic rule by name or identity.
- 3
Resume the migration once the corrupt rule is removed.
Connect-ExchangeOnline # List all inbox rules for the mailbox Get-InboxRule -Mailbox user@domain.com | Select-Object Name,Enabled,Description # Remove the problematic rule by name Remove-InboxRule -Mailbox user@domain.com -Identity "Rule Name" -Confirm:$false # Verify remaining rules Get-InboxRule -Mailbox user@domain.com | Select-Object Name,Enabled
9. Mailbox Size Exceeds Target Quota
Exchange Online Error Message
Mailbox size exceeds target quota.
What This Means
The source mailbox is larger than the quota available in Exchange Online under the user’s current licence. The migration engine cannot place the mailbox content into a target that has insufficient space.
Exchange Online Mailbox Quotas by Licence
| Licence Type | Mailbox Quota | Recommended Migration Limit |
|---|---|---|
| Exchange Online Plan 1 | 50 GB | Keep below 45 GB |
| Exchange Online Plan 2 / E3 / E5 | 100 GB | Keep below 90 GB |
⚠️ Best Practice Buffer
As a recommended practice, keep mailbox sizes below 45 GB for Exchange Online Plan 1 and 90 GB for Exchange Online Plan 2. This buffer accommodates mailbox growth during the migration process and reduces the likelihood of quota-related migration failures.
Resolution
- Upgrade the user’s Exchange Online licence to Plan 2 or an E3/E5 plan
- Enable Online Archive (In-Place Archive) to offload older content
- Move historical mail to archive before migration
- Export older data to PST and import post-migration
- Clean Deleted Items and Junk Email folders before migrating
# Check mailbox size on-premises Get-MailboxStatistics -Identity user@domain.com | Select-Object DisplayName,TotalItemSize,ItemCount # Check mailbox size in Exchange Online Connect-ExchangeOnline Get-MailboxStatistics -Identity user@domain.com | Select-Object DisplayName,TotalItemSize,ItemCount # Enable Online Archive in Exchange Online Enable-Mailbox -Identity user@domain.com -Archive
10. Folder Item Count Limit Reached
Exchange Online Error Message
MapiExceptionMailboxMessagesPerFolderCountReceiveQuotaExceeded
What This Means
One or more folders in the mailbox contain more items than Exchange Online supports. The most common threshold is 1,000,000 items in a single folder. This is frequently seen in Inbox, Sent Items, or custom folders that have accumulated items over many years.
Resolution
- 1
Identify folders with the highest item count using
Get-MailboxFolderStatistics, sorted descending. - 2
Reduce the item count by deleting unnecessary emails in the over-limit folder.
- 3
Split the folder contents into subfolders to distribute items across multiple containers.
- 4
Archive older emails or export to PST and remove from the mailbox.
- 5
Restart the migration after cleanup.
# Identify folders sorted by item count (highest first) Get-MailboxFolderStatistics -Identity user@domain.com | Select-Object Name,ItemsInFolder,FolderSize | Sort-Object ItemsInFolder -Descending | Format-Table -AutoSize # Find folders exceeding 1 million items Get-MailboxFolderStatistics -Identity user@domain.com | Where-Object { $_.ItemsInFolder -gt 1000000 } | Select-Object Name,ItemsInFolder,FolderSize
11. Recoverable Items (Dumpster) Exceeds Quota
Exchange Online Error Message
Mailbox dumpster size exceeds target quota.
What This Means
The Recoverable Items folder (also known as the Dumpster) contains more data than the target mailbox in Exchange Online can accept. The Recoverable Items quota in Exchange Online is 30 GB by default (100 GB when a hold is applied).
Common Causes
- Litigation Hold enabled — retains all deleted items indefinitely
- In-Place Hold applied — retains items matching search criteria
- Single Item Recovery enabled — retains deleted items for the recovery period
- Large Purges folder — items purged by the user but retained by holds
- Large Versions folder — multiple versions of items stored by holds
Diagnose
Connect-ExchangeOnline # Verify total deleted item size and count Get-MailboxStatistics user@domain.com | Format-List TotalDeletedItemSize,ItemCount # Verify hold settings on the mailbox Get-Mailbox user@domain.com | Format-List LitigationHoldEnabled,InPlaceHolds,SingleItemRecoveryEnabled # Verify Recoverable Items folder breakdown Get-MailboxFolderStatistics -Identity user@domain.com -FolderScope RecoverableItems | Select-Object Name,FolderAndSubfolderSize,ItemsInFolder
Resolution
- 1
Remove mailbox holds — ensure legal and compliance teams have approved this step before removing any holds.
- 2
Disable Single Item Recovery if not required.
- 3
Reset retention periods where permitted by policy.
- 4
Run the Managed Folder Assistant to process retention policies and allow the Recoverable Items folder to reduce in size.
- 5
Allow time for the dumpster to drain, then restart the migration.
Connect-ExchangeOnline # Remove Litigation Hold (ensure legal approval first) Set-Mailbox -Identity user@domain.com -LitigationHoldEnabled $false # Disable Single Item Recovery Set-Mailbox -Identity user@domain.com -SingleItemRecoveryEnabled $false -RetainDeletedItemsFor 14 # Run Managed Folder Assistant to process retention immediately Start-ManagedFolderAssistant user@domain.com # Confirm Recoverable Items size after processing Get-MailboxFolderStatistics -Identity user@domain.com -FolderScope RecoverableItems | Select-Object Name,FolderAndSubfolderSize,ItemsInFolder
Conclusion
Exchange Hybrid Remote Move migrations from Exchange Server 2016, Exchange Server 2019, and Exchange Server Subscription Edition (SE) to Exchange Online are generally reliable, but administrators may occasionally encounter mailbox, directory, archive, quota, or synchronisation-related errors.
Understanding the root cause of these errors is often the key to resolving them quickly and avoiding unnecessary troubleshooting. By performing proper pre-migration checks and following the resolutions in this article, most migration failures can be identified and corrected before they significantly impact migration timelines.
- Always run
Get-MoveRequestbefore initiating migration to check for existing or stale requests - Verify all proxy addresses include the
@tenant.mail.onmicrosoft.comrouting address - Check mailbox size against the target licence quota and apply a buffer before migrating
- Review Inbox rules for circular or invalid conditions that corrupt folder rules
- Check holds and Recoverable Items size for large mailboxes before initiating migration
- Run
Get-MailboxFolderStatisticson large mailboxes to identify folders approaching the 1M item limit
⚠️ Note
The errors, causes, and resolutions documented in this article are based on real-world Exchange Hybrid migration scenarios encountered during mailbox migrations to Exchange Online. While these solutions have proven effective in many environments, every organisation may have unique configurations and requirements. Always validate changes in a non-production environment where possible and review the latest Microsoft documentation before implementing changes in production.
Explore More Exchange Online Resources
Continue learning with our complete Exchange Online administration guide, course modules, and interview preparation resources.