How Many Bad Items in a Mailbox?
- Oct 22, 2018
- 2 min read

When using the New-MoveRequest to move users mailboxes there are times when you should use the BadItemLimit setting. However, what should you set this to? I see in some case people say "set this to 100", however detailed below we see recommendations of 10.
Wouldn't it make sense to generate a report on the mailboxes and provide details of how many Bad Items someone has, before you run move requests? Instead of running a move request only for it to fail due to it hitting the BadItemLimit......
This brings up the following questions, how do I generate such a report. From looking into this I would suggest starting with this command:
New-MailboxRepairRequest -Mailbox user1 -CorruptionType ProvisionedFolder,SearchFolder -DetectOnly
More details located here:
https://technet.microsoft.com/en-us/library/ff625221%28v=exchg.141%29.aspx
This got me thinking about what denotes a bad item, and I came across the following article:
http://blogs.technet.com/b/mikehall/archive/2013/08/06/managing-failed-mailbox-move-requests.aspx
Text from article:
This issue occurs when the number of bad items encountered exceeds the bad item limit. By default if you don't specify a bad item limit the move request will fail if it encounters any bad items.
I'm not going to go into much detail around bad items, but from my understanding these items are usually MIME properties from e-mail clients that do not comply with the MIME standard. In the past Exchange (E2k3 and E12) didn't understand the illegal properties that do not comply with the MIME standard so when it tries to index these illegal properties it may encounter corruption. Exchange 2010/2013 simply excludes these items in new messages and blocks these corrupted properties when mailbox items are moved from older Exchange versions, thus the bad items.
More details on the "BadItemLimit:
Link:
https://technet.microsoft.com/en-us/library/dd351123(v=exchg.150).aspx
Details from the Link:
The BadItemLimit parameter specifies the maximum number of bad items that are allowed before the request fails. A bad item is a corrupt item in the source mailbox that can't be copied to the target mailbox. Also included in the bad item limit are missing items. Missing items are items in the source mailbox that can't be found in the target mailbox when the request is ready to complete.
Valid input for this parameter is an integer or the value unlimited. The default value is 0, which means the request will fail if any bad items are detected. If you are OK with leaving a few bad items behind, you can set this parameter to a reasonable value (we recommend 10 or lower) so the request can proceed. If too many bad items are detected, consider using the New-MailboxRepairRequest cmdlet to attempt to fix corrupted items in the source mailbox, and try the request again.
In Conclusion:
Based on the above information it would appear that it would make sense to run a report using the "New-MailboxRepairRequest". Based on the details from the report you could then use the same command to attempt to fix the corrupted items in the source.

Comments