I'm in the middle of migrating from Exchange 2013 to 2016. Most of the moves have gone well, however, some mailboxes seem to be getting stuck at Initial Seeding, and then after some hours of stalling here, fail at FailedStuck.
Running Get-MailboxStatistics -IncludeReport
shows that the move is stuck running IsInteg because they are large mailboxes. This seems to basically be a New-MailboxRepairRequest
that just gets queued indefinitely.
I can run New-MailboxRepairRequest
with -Force
and it will complete immediately, so I think it's just a workload management issue, but it's been a few days and repairs are still not completing.
Possible Solutions
How can I tell
New-MoveRequest
to skip the IsInteg run upfront? I will happily manually run them after the move.How can I edit the Mailbox Repair Requests that the Move Requests creates, with the -Force flag? As far as I can tell there is no
Set-MailboxRepairRequest
.How can I disable workload management for mailbox repair requests? As this seems to be what is stalling my moves/repairs, even when nothing is going on (it's the weekend at 4 AM on new hardware, and they won't budge).
How can I raise the "Large Mailbox" threshold (message below alludes to it being a config option). If I set it to something like 50GB, all of the mailboxes will be moved without doing a repair.
More Info
The report shows:
Report : 18/03/2017 12:34:12 AM [EXCH16-SYD-01] Setting up ISInteg repair run upfront for this mailbox since it's a large mailbox.
"Primary mailbox size = 11120110046, Archive mailbox size = 0, Large mailbox size threshold config value = 10737418240
Then:
18/03/2017 12:54:33 AM [EXCH16-SYD-01] Store IsInteg task is pending completion for mailbox '6e6a0983-02ab-4d1d-84ea-d0071e7e6536'. IsInteg
The report repeats this for hours, until it eventually times out because no progress has been made. I eventually found that there is a corresponding
To prove that the workload management is causing problems, I checked for all mailbox repair requests across all mailboxes, and confirmed none of them were in progress.
[PS] C:\Windows\system32>Get-Mailbox -Server EXCH01-SYD | Foreach { Get-MailboxRepairRequest -Mailbox $_.PrimarySMTPAddress.tostring() }
Identity Task Detect Only Job State Progress
-------- ---- ----------- --------- --------
62d54094-6b61-4f1c-a... {MessageId} False Queued 0
...
62d54094-6b61-4f1c-a... {FolderView} False Queued 0
There's 29 repairs here, all of them are queued.
Things to Note
This only happens to mailboxes 10+ GB in size, because that's the threshold limit that causes an IsInteg task to be run before doing the move.
It's the IsInteg that is causing things to get held up. Yet if I do an IsInteg repair with
-Force
then the repair happens immediately.Even for the IsInteg repairs I am able to do with
-Force
(which show as successful), I do not see any event log entries like I am supposed to.My environment is 1x 2013 Exchange and 2x 2016 Exchanges, and 1x 2010 Exchange. All are running the latest CU or RU version.
Moving from 2010 is not a problem, even for mailboxes > 10 GB.
I've been running in Co-existence for a few weeks and migrated my own mailbox from 2013 to 2016 as a test. My mailbox is 15 GB and it did not get queued. This leads me to think if I was patient enough, the others might succeed. But my mailbox did not show FailedStuck and showed constant progress.
I am wondering if I just need to wipe out all the failed moves (right now I simply resume them) and re-try them one by one.
I feel like I've exhausted most of my options, so any advice is appreciated. Even if someone could tell me how to execute some of the "possible solutions" listed. As these are just theoretical solutions to me, I haven't found ways to actually do them.