You want to find the RemoteHostName URL because you have a mailbox migration planned to…
Mailbox move failure – Troubleshoot and Fix
We have to offboard a mailbox from Exchange Online to Exchange on-premises. After following the steps, we get a mailbox move failure at the end, and the mailbox will not complete. Why is the mailbox move failing, and what is the solution? Let’s look at how to troubleshoot a mailbox move that fails.
Table of contents
StatusDetail TransientFailure
Let’s connect to Exchange Online PowerShell and follow the article move mailbox from Exchange Online to on-premises. However, an error shows up at the end of the migration, and the mailbox will not finalize.
The StatusDetail shows:
- TransientFailure
- TransientFailureTarget
PS C:\> Get-MoveRequest | Get-MoveRequestStatistics
DisplayName StatusDetail TotalMailboxSize TotalArchiveSize PercentComplete
----------- ------------ ---------------- ---------------- ---------------
Boris Campbell TransientFailureTarget 2.279 MB (2,389,872 bytes) 3.235 KB (3,313 bytes) 100
We did suspend and resume the mailbox move request, which helps in most cases. But it didn’t this time, and the error is still there.
So what is happening, and how to fix the mailbox move fail? Let’s have a better look at the move status details.
Troubleshoot mailbox move failure
Add the -IncludeReport parameter to return additional information about the mailbox move. Store the mailbox move report in the $stats variable.
PS C:\> $stats = Get-MoveRequestStatistics "boris.campbell@exoip.com" -IncludeReport
Get all move request failures and their count.
PS C:\> $stats.report.Failures | group FailureType | fl
Name : CannotEnterFinalizationTransientException
Count : 36
Group : {CannotEnterFinalizationTransientException: Cannot enter finalization because Data Guarantee is lagging behind by more than 00:05:00. Failure: Database b6a840a4-670e-43d7-9ecc-1d8b99e66ba4 doesn't satisfy the constraint SecondCopy
because the commit time 5/28/2022 9:13:28 AM isn't guaranteed by replication time 5/28/2022 9:12:54 AM.., CannotEnterFinalizationTransientException: Cannot enter finalization because Data Guarantee is lagging behind by more than
00:05:00. Failure: Database b6a840a4-670e-43d7-9ecc-1d8b99e66ba4 doesn't satisfy the constraint SecondCopy because the commit time 5/28/2022 9:14:02 AM isn't guaranteed by replication time 5/28/2022 9:12:54 AM..,
CannotEnterFinalizationTransientException: Cannot enter finalization because Data Guarantee is lagging behind by more than 00:05:00. Failure: Database b6a840a4-670e-43d7-9ecc-1d8b99e66ba4 doesn't satisfy the constraint SecondCopy because
the commit time 5/28/2022 9:14:38 AM isn't guaranteed by replication time 5/28/2022 9:12:54 AM.., CannotEnterFinalizationTransientException: Cannot enter finalization because Data Guarantee is lagging behind by more than 00:05:00.
Failure: Database b6a840a4-670e-43d7-9ecc-1d8b99e66ba4 doesn't satisfy the constraint SecondCopy because the commit time 5/28/2022 9:15:12 AM isn't guaranteed by replication time 5/28/2022 9:12:54 AM.....}
Values : {CannotEnterFinalizationTransientException}
Get full details of the last failure.
PS C:\> $stats.report.Failures[0]
Timestamp : 5/28/2022 10:19:03 AM
FailureType : CannotEnterFinalizationTransientException
FailureHash : 317e
FailureCode : -2146233088
MapiLowLevelError : 0
FailureSide :
FailureSideInt : 0
ExceptionTypes : {CannotEnterFinalization, MRSExpected, MRS, MRSTransient...}
ExceptionTypesInt : {632, 14, 10, 11...}
WorkItem : CheckDataGuaranteeIfNeeded
Message : Cannot enter finalization because Data Guarantee is lagging behind by more than 00:05:00. Failure: Database b6a840a4-670e-43d7-9ecc-1d8b99e66ba4 doesn't satisfy the constraint SecondCopy because the commit time 5/28/2022
10:14:07 AM isn't guaranteed by replication time 5/28/2022 10:07:15 AM..
MessageData :
DataContext : --------
>>>> Current WorkItem: CheckDataGuaranteeIfNeeded, Scheduled WorkItems: PostContentVerificationBadItemCheck(P:0,R:-63789329909495,S:63789329909495,C:0,D:0);
CheckDataGuaranteeIfNeeded(P:0,R:-63789329909495,S:63789329909495,C:374,D:0); BeginJob(P:0,R:0,S:0,C:0,D:0); ConfigureProviders(P:0,R:-63789329939897,S:63789329939897,C:0,D:0);
BeforeConnections(P:0,R:-63789329939897,S:63789329939897,C:0,D:0); CheckTriggerRecoveryActions(P:0,R:-63789329939897,S:63789329939897,C:0,D:0); MakeConnections(P:0,R:-63789329939897,S:63789329939897,C:2016,D:0);
StartMove(P:0,R:-63789329941913,S:63789329941913,C:264,D:0); IncrementalSync(P:0,R:-63789329942178,S:63789329942178,C:751,D:0); PostContentVerificationBadItemCheck(P:62,R:-63789329942929,S:63789329942929,C:0,D:0)
DataContextData :
StackTrace : at Microsoft.Exchange.MailboxReplicationService.MoveBaseJob.CheckDataGuaranteeIfNeeded()
at Microsoft.Exchange.MailboxReplicationService.Job.ExecuteWorkItemCallback(WorkItem workItem)
InnerException :
UnknownElements :
UnknownAttributes :
XmlSchemaType :
Solution for mailbox move failure
Looking at the Message, it shows:
Message : Cannot enter finalization because Data Guarantee is lagging behind by more than 00:05:00. Failure: Database b6a840a4-670e-43d7-9ecc-1d8b99e66ba4 doesn’t satisfy the constraint SecondCopy because the commit time 5/28/2022 10:14:07 AM isn’t guaranteed by replication time 5/28/2022 10:07:15 AM..
This happens in the mailbox database b6a840a4-670e-43d7-9ecc-1d8b99e66ba4 (which is DB01).
Verify mailbox database GUID
Run Exchange Management Shell as administrator and identify the mailbox database GUID.
[PS] C:\>Get-MailboxDatabase "b6a840a4-670e-43d7-9ecc-1d8b99e66ba4" | ft -AutoSize
Name Server Recovery ReplicationType
---- ------ -------- ---------------
DB01 EX01-2019 False Remote
Get DataMoveReplicationConstraint value
The DataMoveReplicationConstraint parameter specifies the throttling behavior for high availability mailbox moves.
Run the Get-MailboxDatabase cmdlet and get the mailbox database DB01 DataMoveReplicationConstraint value.
Note: The DataMoveReplicationConstraint value is by default set to SecondCopy.
[PS] C:\>Get-MailboxDatabase "DB01" | ft Name,Guid,DataMoveReplicationConstraint
Name Guid DataMoveReplicationConstraint
---- ---- -----------------------------
DB01 b6a840a4-670e-43d7-9ecc-1d8b99e66ba4 SecondCopy
Set DataMoveReplicationConstraint to None
Run the Set-MailboxDatabase cmdlet and set the mailbox database DataMoveReplicationConstraint to None.
[PS] C:\>Set-MailboxDatabase "DB01" -DataMoveReplicationConstraint None
Get mailbox move request statistics
Wait a minute and verify the mailbox move status. It shows that it completed the mailbox move to Exchange on-premises successfully.
PS C:\> Get-MoveRequest | Get-MoveRequestStatistics
DisplayName StatusDetail TotalMailboxSize TotalArchiveSize PercentComplete
----------- ------------ ---------------- ---------------- ---------------
Boris Campbell Completed 2.279 MB (2,389,872 bytes) 3.235 KB (3,313 bytes) 100
Set DataMoveReplicationConstraint to SecondCopy
Don’t forget to set the DataMoveReplicationConstraint value on the mailbox database back to the default SecondCopy value.
[PS] C:\>Set-MailboxDatabase "DB01" -DataMoveReplicationConstraint SecondCopy
Read more: Remove move request fails in Exchange Server »
Conclusion
You learned how to troubleshoot mailbox move failures and fix them. First, use the -IncludeReport parameter when retrieving the mailbox move request statistics to get all the details. Next, implement the fix. After that, the mailbox move will complete successfully.
Did you enjoy this article? You may also like New-MigrationBatch or New-MoveRequest in Exchange. Don’t forget to follow us and share this article.
This Post Has 0 Comments