-->

Saturday, April 28, 2018

Exchange Mailbox Migration Batch Error: A subscription wasn't found for this user...

I recently needed to move 49 mailboxes from one Database to another because due to a bug way back in Exchange 2016 CU2, mailbox creation didn't autoprovision them on random databases...it shoved them all onto your first one, and I never got around to redistributing them.

So I created a CSV with the list of mailboxes I wanted to move and created a migration batch.
Some of these mailboxes in the list are GIANT (like 60GB) so naturally it took forever for them to move. So, I had to Suspend them until later.

The problem is, when moving mailboxes in a migration batch, manually suspending them with "Get-MoveRequest -Identity "mailbox" | Suspend-RemoveRequest" causes the EAC to "think" that since the move was suspended outside of the migration, it has failed.

Here's our scenario:

You've started your migration batch "DB01mailboxmoves" and see that they took too long, so in PowerShell you've suspended some of the mailbox moves (but not all) and let the migration batch complete the smaller mailboxes.

Later, for the ones we've suspended, we've run the cmdlet "Get-MoveRequest -MoveStatus Suspended | Resume-MoveRequest" and let those complete.

In the EAC, you can see that the batch has "completed with errors", there are 14 "finalized" moves meaning, the migration batch finished these, but there are 35 "failed" meaning the migration batch no longer has control of them so it cries failure!

EAC Migration Batch

If you hit View details and select one of the "failed" moves, you get a warning banner saying "the subscription for the migration user "emailaddress@domain.com" couldn't be loaded. The following error was encountered: A subscription wasn't found for this user..."

This comes from O365 and has no bearing in on-prem. Why it's present in Exchange 2016 I dunno, maybe Exchange product engineers were too lazy to take it out. But, you can safely ignore it.

And the next one: "Error: ExternallySuspendedException: Email migration failed for this user because the subscription was suspended externally to the Migration Service"

Again, there's no subscription, but it's partially correct: I did suspend the move from outside the migration batch...because there's no way to suspend moves within the migration batch! Again, you can ignore this error.

EAC Migration Errors


Back in the EAC migration control panel, you'll see the last piece of the puzzle. The migration isn't actually running any longer because we've taken control of the moves from within PowerShell. Notice the "play" button:

EAC Migration Play Button

What to do in this case?

Since we've manually resumed the suspended moves and can no longer see the status in the EAC, we'll want to verify that they have completed:

In the EMS, run the following cmdlet:

Get-MoveRequest -MoveStatus Completed

Your successful moves will be listed on the target DB.

Now we'll remove those by running:

Get-MoveRequest -MoveStatus Completed | Remove-MoveRequest -Confirm:$false

Next, we can safely remove the Migration Batch from the EAC:

Hit the trashcan icon in the control panel:

EAC Trashcan Icon
 
Click Yes:
 
EAC Yes To Remove
 


Now all those mailboxes have been successfully moved to another DB...even though the EAC threw a fit about it :)

No comments:

Post a Comment