Completing individual move requests in a migration batch (changed behavior)

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 "" -CompleteAfter (Get-Date)
  • Resume the move request: Resume-MoveRequest -Identity ""


That should do the trick. All the best!


Comments (6)
  1. dmorandi says:

    Great job done with this information.

  2. Paulo Almas says:

    Great info!!!

  3. Navishkar says:

    Thanks a lot.


  4. Jun1or says:

    Not worked for me.

    When running the above the status of the user remains ‘Synced’ when trying to run the command again I get

    “You can’t modify request ‘Account1’ because it has already completed.

  5. xJKRCx419 says:

    Curious about your statement that syncs are kept synchronized with subsequent incremental syncs. Is there documentation that confirms that? I have sync jobs that are sitting at 95% synced status until I complete the request, but there has been no change in the BytesTransferred or ItemsTransferred values since they autosuspended.

  6. Hi, Below commands might help you.

    Set-MoveRequest -Identity “” -CompleteAfter (Mention yesterday’s date)
    Resume-MoveRequest -Identity “”

Comments are closed.

Skip to main content