The mailbox is a member of a unified synchronization collection, and is 100% in sync. The status shows "Ready to Switch" but when an automatic or manual switch is performed the error below is displayed in the statistics page for that mailbox.
System.Runtime.InteropServices.COMException (0x80004005): The client operation failed. - MAPI_E_CALL_FAILED
This error is generally caused by permissions however because the mailbox is already 100% in sync and ready to be switched permissions are not the issue. Upon review of the MAgE (Migration Agent for Exchange) log the full error is below.
2015-04-07 10:01:25.9066 Px1524 Tx2FF A45 C36 M1077 Error System.Runtime.InteropServices.COMException (0x80004005): The client operation failed. - MAPI_E_CALL_FAILED (Microsoft Exchange Server Information Store) Low level error: 0x4DD File: 'aeMAPIProp.cpp' Line: '204'
MAPI Errors are generally generic we must look below the MAPI error in the log and we can see what the agent is trying to do based on the exception rethrown message below the error. You can see in bold taht the agent is trying to post the switch message in the source mailbox and that is where it's failing.
Exception rethrown at :
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Dell.MigrationManagerForExchange.General.MAPI.aeMapiMessageWrapped.Update(Object KeepOpenReadWrite)
at Quest.MigrationManager.Exchange.O365UserProvisioning.MapiPostAssist.PostMessage(String subject, String body, String from, Boolean isAssociated)
at Quest.MigrationManager.Exchange.O365UserProvisioning.CpuuHelper.MapiPutSwitchMessage(String targetServer, String targetMailboxDn, String targetProxyServer)
at Quest.MigrationManager.Exchange.O365UserProvisioning.O365UserProvisioning.Switch(Int32 mailboxId, Int32 collectionId, Boolean rollbackSwitchOnFail)