TooManyBadItemsPermanentException
The mailbox move stopped because it found more corrupt or missing items than the move request allows.
Why it happens
The number of bad items in the source mailbox is higher than the move request's BadItemLimit. Missing items (items in the source that cannot be found in the target when the move is ready to complete) also count towards this limit, so the same fix applies to TooManyMissingItemsPermanentException.
Where you see it, and what it affects
The error appears as the failure on a mailbox move request or migration user in Exchange Online. You can read the detail in the move report, which Get-MoveRequestStatistics returns with the -IncludeReport switch, or in the move history from Get-MailboxStatistics -IncludeMoveReport. A bad item is a corrupt item in the source mailbox that cannot be copied. The default limit is 0, so a single bad item stops the request for that mailbox.
How to fix it
- 1
Step 1
Pull the move report and look at the bad items to see what will be left behind.
- 2
Step 2
Raise
BadItemLimiton the move request to cover the number of bad items you found, then resume the move. - 3
Step 3
For cloud migration batches, Microsoft has deprecated
BadItemLimit. Review the Data Consistency Score and approve skipped items instead (see the DataConsistencyScore entry).
$stats = Get-MailboxStatistics user@contoso.com -IncludeMoveReport
$stats.MoveHistory[0].Report.BadItems
Get-MoveRequest user@contoso.com | Set-MoveRequest -BadItemLimit 10
Resume-MoveRequest user@contoso.comCheck that it is fixed
- Run
Get-MoveRequestStatistics -Identity user@contoso.com. A Status of Queued or InProgress means the request is proceeding normally. - Some failure messages from this cmdlet are temporary. Judge progress by the Status value, not by a single message.
- In on-premises Exchange, if many bad items keep turning up, Microsoft suggests running
New-MailboxRepairRequeston the source mailbox and trying the move again.
Sources
Full guide: How to migrate from Exchange Server to Exchange Online →