Exchange Migration – Fixing Mailbox Migration Failures from Exchange 2016 to 2019

emailexchangeexchange-migration

I'm doing an Exchange upgrade from 2016 to 2019 and started having migration failures on a number of mailboxes. I went from 2010 to 2016 with no issues. The first time I started the migration (using EMS commands) I made a rookie mistake and the hard drive filled with logs. I fixed that issue and managed to get a few more mailboxes moved. Now any mailbox over 1GB, about 15 left, fails between 24-29% with the following error. I've been researching this for weeks and can only find references to C# coding and applications.

Request '[local domain].local/Users/[alias]' (e18b4061-ebc3-4f67-84b9-30810b7c4339) failed.
Error code: -2146233088
The call to 'net.tcp://exchange2016.[local domain].local/Microsoft.Exchange.MailboxReplicationService.ProxyService Exchange2016.[local domain].local (15.1.1913.5 caps:0FFD6FFFBF5FFFFFCB07FFFF)' failed. Error details: The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:IMailbox_ExportMessagesResult. The InnerException message was 'There was an error deserializing the object of type Microsoft.Exchange.MailboxReplicationService.DataExportBatch. The maximum array length quota (35000000) has been exceeded while reading XML data. This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader.'. Please see InnerException for more details. –> There was an error deserializing the object of type Microsoft.Exchange.MailboxReplicationService.DataExportBatch. The maximum array length quota (35000000) has been exceeded while reading XML data. This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. –> The maximum array length quota (35000000) has been exceeded while reading XML data. This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader.. –> The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:IMailbox_ExportMessagesResult. The InnerException message was 'There was an error deserializing the object of type Microsoft.Exchange.MailboxReplicationService.DataExportBatch. The maximum array length quota (35000000) has been exceeded while reading XML data. This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader.'. Please see InnerException for more details. –> There was an error deserializing the object of type Microsoft.Exchange.MailboxReplicationService.DataExportBatch. The maximum array length quota (35000000) has been exceeded while reading XML data. This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. –> The maximum array length quota (35000000) has been exceeded while reading XML data. This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader.

Context:

Operation: IMailbox.ExportMessages
Operation: IMailbox.ExportMessages
OperationSide: Source
e18b4061-ebc3-4f67-84b9-30810b7c4339 (Primary)
Flags: SkipItemValidation

PropTags: (null)

Scheduled WorkItems: EnumerateFolderMessages(P:288,R:1,S:0,C:15); EnumerateFolderMessages(P:305,R:0,S:0,C:12,Cnt=6); WriteFolderMessages(P:2,R:0,S:0,C:93); EnumerateFolderMessages(P:473,R:0,S:0,C:12,Cnt=7); WriteFolderMessages(P:0,R:0,S:0,C:49); EnumerateFolderMessages(P:598,R:0,S:0,C:14); EnumerateFolderMessages(P:614,R:0,S:0,C:13,Cnt=4); WriteFolderMessages(P:2,R:0,S:0,C:1818); EnumerateFolderMessages(P:2560,R:0,S:0,C:343); WriteFolderMessages(P:2,R:0,S:0,C:1806,Cnt=5)

Here's what I've tried to fix it:

  • setting a static bad limit, started at 100 and incremented to 3000.
    no change.
  • created a new mailbox database and tried migrating to
    that. no change.
  • added a new data drive to the virtual machine, new
    mailbox database on the new drive. no change.
  • tried single and bulk migrations. no change.

any idea how to get past this? Or any idea what file Microsoft.Exchange.MailboxReplicationService.DataExportBatch is in so I can change the buffer size?

Best Answer

According to the similar thread "Getting Error in Mailbox Migration from Exchange 2013 to 2016 for some users" and the error "The maximum array length quota (35000000) has been exceeded while reading XML data. ", the migration issue could be caused by exceeding the quota(maxArrayLength).

You could try to increase the quota in the xml file MsExchangeMailboxReplication.exe.config(C:\Program Files\Microsoft\Exchange Server\V15\Bin\MsExchangeMailboxReplication.exe.config), then migrate the remaining 15 mailboxes again to check the result. To revert the changes easily, you could backup the original quotas.

Related Topic