Cannot migrate an Exchange 2013/2016 mailbox after it has been migrated earlier

This week we had been performing a migration from Exchange 2013 to 2016. This process included a migration of mailboxes from Exchange 2013 database availability group to a new DAG on Exchange 2016 servers. As you may know, there is no way to add Exchange 2016 servers into an existing DAG, created on Exchange 2013 servers. So, I had been performing these migrations and found out that a correct target database was not set for one mailbox. This mailbox migrated to a second database located on Exchange 2013. When I noticed that mistake I tried to move the mailbox to a correct database, but I did not succeed.

I created a new mailbox move request using ECP targeting it to a correct database. This move request have started an initialization process and ended up with a message that 0 mailboxes were synced and 0 were finalized.


The highlighted line stands for "Number of mailboxes finalized". I have migrated all the remaining mailboxes and was in need to solve that issue to decommission Exchange 2013 servers. Rerunning the move request was a stupid idea because it has already failed once. And finally I found the reason of such behavior of the Exchange server.

When you create a move request a migration user is created in Exchange. This is an intermediate object during the move. Interestingly, it will not be removed after a successful migration and you can get a list of this migration users by running the Get-MigrationUser cmdlet in EMS. When you run it you will see the Batch name which has been using the migration user object. Each time you try to run a new move request for a mailbox a migration user object is failing to be created because it already exists and the request shows zeros.



We need to remove this migration user from Exchange using Remove-MigrationUser.


Finally, we will be able to move the mailbox from incorrect mailbox database into a correct one by creating a new move request in ECP.

Comments