Jan 2 2018

The InnerException message was ‘Maximum number of items that can be serialized or deserialized in an object graph is ‘2000000’.

This was quite an interesting error for a mailbox I tried to migrate from Exchange 2013 to Exchange Online. The mailbox synced to 95% and I received the below error after I tried completing the batch.

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/:ISourceFolder_EnumerateChanges2Result. The InnerException message was ‘Maximum number of items that can be serialized or deserialized in an object graph is ‘2000000’.

The key to this error is the object graph limit that is set in the MsExchangeMailboxReplication.exe config file. To resolve the issue do the following:

  1. Logon to your on premises Exchange CAS servers that you use as the proxies for migrating mailboxes to EOL. (In my case this was Exchange 2013)
  2. Open Notepad as an administrator
  3. Browse to C:\Program Files\Microsoft\Exchange Server\V15\Bin (or your Exchange installation path) and open the MsExchangeMailboxReplication.exe config file
  4. Hit ctrl + f in Notepad and search for maxItemsInObjectGraph (there are two entries and I had to change both values)
  5. You want to increase the number in these strings:   <dataContractSerializer maxItemsInObjectGraph=”20000000″/> This is what the original looks like below.
  6. Restart the mailbox replication service on all the servers where you have changed the value.
  7. If the migration failed, then delete the migration job and restart it. You should not have the error again.
  8. Change the strings back to default using the above steps after you migrated the affected mailboxes for which you received the above error.

Here’s what the entries in the config file look like before any changes were made:

 

<behavior name=”MrsProxyServiceBehavior”>
<serviceDebug includeExceptionDetailInFaults=”True” />
<serviceAuthorization serviceAuthorizationManagerType=”Microsoft.Exchange.MailboxReplicationService.MRSProxyAuthorizationManager, Microsoft.Exchange.MailboxReplicationService.ProxyService, Version=15.0.0.0, Culture=neutral, PublicKeyToken=%%%%%%%”/>
<serviceThrottling
maxConcurrentCalls=”200″
maxConcurrentSessions=”200″
maxConcurrentInstances=”200″ />
 <dataContractSerializer maxItemsInObjectGraph=”20000000″/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name=”MrsProxyEndpointBehavior”>
 <dataContractSerializer maxItemsInObjectGraph=”2000000″/>


Sep 13 2016

Error due to mismatch of GUID: Recipient “NameOfRecipient” has mismatched Archive GUID

You receive the error “Recipient “NameOfRecipient” has mismatched Archive GUID” when you try and off board a mailbox from Exchange Online to on premises Exchange.

Follow the below steps o resolve the issue and migrate the mailbox back to the on premises Exchange environment:

  1. Logon to Exchange Online using Powershell.
  2. Run: get-mailbox user | fl *archiveguid*
  3. Make a note of the GUID
  4. Open Exchange Management Shell on premises
  5. Run: Get-RemoteMailbox User | fl *archiveguid*
  6. You should see that the GUID on prem is different to the GUID from Exchange Online
  7. To resolve, in Exchange Management Shell on prem run: Set-RemoteMailbox User -ArchiveGuid “GUID you got from Exchange Online”

The above should work without any issues but we had an issue where the mailbox in question was migrated from Exchange 2007, we want to migrate it back to an Exchange 2010 DAG and received the below error when trying to set the GUID as per step 7 above:

Property Archive GUID can’t be set on on this object because it requires the object to have version 0.10 (14.0.100.0) or later. The object’s current version is 0.1 (8.0.535.0)

To resolve the above error follow the below steps:

  1. Open Active Directory Users and Computers
  2. Make sure you choose view -> Advanced Features
  3. Browse to the User, right click on the user and choose Properties
  4. Click on the Attribute Editor Tab
  5. Look for MSExchVersion and open it
  6. We had to change the version to Exchange 2010 from 2007. Thus change the data to 44220983382016
  7. Click OK
  8. Wait for replication and run the Set-RemoteMailbox User -ArchiveGuid “GUID you got from Exchange Online” again from Exchange Management Shell on prem.
  9. Wait for replication
  10. Run get-mailbox User | fl *archiveguid* and make sure the GUID has now been changed to the GUID you found in Exchange Online
  11. Proceed to migrate the mailbox to on prem after the GUID has been set

The Exchange Version AD Attributes are:

Exchange 2010: 44220983382016

Exchange 2007: 4535486012416

We used the below 2 web articles / blogs which assisted us greatly. Please check out these articles as well as they were the sources used to resolve the above mentioned issues:

Paul Cunningham’s ExchangeServerPro.com website:

The Article which describes how to get the Archive GUID and set it on prem.

Technotip blog.

Here we found the attribute values for the Exchange versions.