Recent changes in Exchange Online changed the way we finish individual migrations within migration batches. We used to run Set-MoveRequest -SuspendWhenReadyToComplete $false and Resume-MoveRequest, but that does not work anymore and the move requests get stuck in Synced state.
Imagine you have a migration batch set to start automatically and complete manually. Like the image below:
Exchange Online will synchronize the content from Exchange on-premises to the cloud and keep them synchronized with subsequent incremental syncs.
Now let’s say you have 100 mailboxes with Synced status but you are ready to complete the migration for only half of them. Since the SuspendWhenReadyToComplete switch does not work anymore, that is what you have to do:
- For each of the mailboxes you plan to complete the migration, set the CompleteAfter date: Set-MoveRequest -Identity "email@example.com" -CompleteAfter (Get-Date)
- Resume the move request: Resume-MoveRequest -Identity "firstname.lastname@example.org"
That should do the trick. All the best!