Strange MAPI Sync Issue
Problem reported by Shaun Peet - 4/9/2020 at 2:01 PM
Submitted
I'm using MAPI for my own mailbox, connected to Outlook 365 (16.0.12527.20260) 64-bit.  We're on the latest version of SmarterMail (7398).  I also have a 2nd email account in Outlook - one that is an actual Office 365 account.

Twice in the past few days, I've had Outlook open all day long and my O365 account would get its normal volume of emails but my SmarterMail account would have no messages coming in.  As much as that can be bliss - when I popped onto my EAS-connected phone later in the day I quickly realized that there were dozens of emails that had come in - they just weren't syncing to Outlook.  So last night I deleted the Outlook profile, removed the Connections from within SmarterMail, and re-setup everything again.

Things had been working all day today until this afternoon and then once again Outlook just stopped syncing.  I put Fiddler onto the desktop and started tracing the traffic - all of which appeared to be running just fine (no errors).  Check the MAPI logs in SmarterMail and I see a TON of these:

16:55:33.114 [{35EB5E5D-D7C0-46A4-A517-8DBD9EAE9601}:12] Exception: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
   at SmarterMail.Standard.Exchange.Properties.PidProperty.ReadFromBinaryReader(BinaryReader br, Int32 maxAllowedPropertySize)
   at SmarterMail.Standard.Files.Pid.PidCollectionItem.LoadFromStream(BinaryReader br, Int32 maxPropertySize)
   at SmarterMail.Standard.Files.Pid.PidCollectionFileInstance.ReadPropertyFileItem(FileStream fs, Int32 maxPropertySize)
   at SmarterMail.Standard.Files.Pid.PidCollectionFileInstance.GetProperties(Int64 id, Int32 maxPropertySize)
   at MailService.Protocols.MAPI.ServerHandles.FastTransferDownloadContext.GetContentSyncItems(List`1 lookupIds, ItemHandleBase theItem)
   at MailService.Protocols.MAPI.Rops.FastTransferRops.RopFastTransferSourceGetBuffer.Process(FastTransferDownloadContext fastTransfer)
   at MailService.Protocols.MAPI.Rops.FastTransferRops.RopFastTransferSourceGetBuffer.Process(List`1 payloadServerObjectHandleTable)
   at MailService.Protocols.MAPI.RequestTypes.ExecuteRequest.Process()
   at MailService.Protocols.MAPI.MapiProcessor.Process()
16:55:40.942 [{48A57377-9095-49ED-898E-A72327A93977}:12] Exception: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
   at SmarterMail.Standard.Exchange.Properties.PidProperty.ReadFromBinaryReader(BinaryReader br, Int32 maxAllowedPropertySize)
   at SmarterMail.Standard.Files.Pid.PidCollectionItem.LoadFromStream(BinaryReader br, Int32 maxPropertySize)
   at SmarterMail.Standard.Files.Pid.PidCollectionFileInstance.ReadPropertyFileItem(FileStream fs, Int32 maxPropertySize)
   at SmarterMail.Standard.Files.Pid.PidCollectionFileInstance.GetProperties(Int64 id, Int32 maxPropertySize)
   at MailService.Protocols.MAPI.ServerHandles.FastTransferDownloadContext.GetContentSyncItems(List`1 lookupIds, ItemHandleBase theItem)
   at MailService.Protocols.MAPI.Rops.FastTransferRops.RopFastTransferSourceGetBuffer.Process(FastTransferDownloadContext fastTransfer)
   at MailService.Protocols.MAPI.Rops.FastTransferRops.RopFastTransferSourceGetBuffer.Process(List`1 payloadServerObjectHandleTable)
   at MailService.Protocols.MAPI.RequestTypes.ExecuteRequest.Process()
   at MailService.Protocols.MAPI.MapiProcessor.Process()
16:55:52.364 [{02D49872-BC6E-4444-B30B-F4C087550160}:12] Exception: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
   at SmarterMail.Standard.Exchange.Properties.PidProperty.ReadFromBinaryReader(BinaryReader br, Int32 maxAllowedPropertySize)
   at SmarterMail.Standard.Files.Pid.PidCollectionItem.LoadFromStream(BinaryReader br, Int32 maxPropertySize)
   at SmarterMail.Standard.Files.Pid.PidCollectionFileInstance.ReadPropertyFileItem(FileStream fs, Int32 maxPropertySize)
   at SmarterMail.Standard.Files.Pid.PidCollectionFileInstance.GetProperties(Int64 id, Int32 maxPropertySize)
   at MailService.Protocols.MAPI.ServerHandles.FastTransferDownloadContext.GetContentSyncItems(List`1 lookupIds, ItemHandleBase theItem)
   at MailService.Protocols.MAPI.Rops.FastTransferRops.RopFastTransferSourceGetBuffer.Process(FastTransferDownloadContext fastTransfer)
   at MailService.Protocols.MAPI.Rops.FastTransferRops.RopFastTransferSourceGetBuffer.Process(List`1 payloadServerObjectHandleTable)
   at MailService.Protocols.MAPI.RequestTypes.ExecuteRequest.Process()
   at MailService.Protocols.MAPI.MapiProcessor.Process()

The timestamps for these show that this error has basically been happening all day long, and yet the syncing definitely stopped mid-afternoon.  So I'm not sure the error has anything to do with it.

I'm also not sure if adding the O365 account into the same Outlook is messing things up either.  I've had both accounts for a long time, but I had been trying to keep work separated by having different computers for each account - but that's gotten to be annoying so it's been relatively recently where I added the O365 account into the same Outlook as my SmarterMail account.  Prior to doing that, I wasn't aware of any sudden syncing issues (ie nothing related to updating Smartermail itself).

Help?! :)

4 Replies

Reply to Thread
0
Shaun Peet Replied
More strangeness...

I have two laptops.  Let's call the laptop described above as Laptop A and the other one as Laptop B.

Laptop B has Outlook 365 (16.0.12527.20260) 32-bit on it.  It's been pretty much rock solid - not only does it have the two accounts mentioned above in it, there's a 3rd account in there, also a SmarterMail account, also using MAPI.  For quite some time it's been running with no issues with any of the accounts.

So in order to reset Laptop A - delete the Outlook Profile, remove the "connections" within SmarterMail, and re-setup, I paid particularly close attention to the Connections page within SmarterMail.  Here's a screenshot of what it looks like there:



The iPad and iPhone connected using EAS have worked absolutely flawlessly for several months - kudos to the team for getting those to work perfectly as designed.

Whenever I do a reset on Laptop A - I will go into this page in SmarterMail and I will delete the "Outlook (MAPI)" device and the "EWS (EWS)" device.  I'm not sure which one is which, so I usually just delete both of them.

So this time, I deleted both of those again, and then before setting up the account on Laptop A, I opened Outlook on Laptop B to see what got created in the list again - and it created the "Outlook (MAPI)" one.

Then I created the account in Outlook on Laptop A, setting it up as an Exchange account - and using Fiddler shows that it's using MAPI - but that's when the "EWS (EWS)" device showed up in the list.

I figured that there should be two MAPI devices listed but there were not, and I'm not sure why the EWS account was showing up.  So then what I did was close Outlook n Laptop A, turn off Laptop B completely, delete both the "Outlook (MAPI)" and the "EWS (EWS)" devices from the list of Synchronized Devices, then open Outlook on Laptop A again.

This then re-created the "Outlook (MAPI)" account pretty much immediately, and then eventually it re-created the "EWS (EWS)" account as well.

This raises a whole host of questions...

1) Why when there are two different devices which are connecting using MAPI, is there only one device listed in the Synchronized Devices list?

2) Why is Laptop A creating an EWS connection?



0
Robert Emmett Replied
Employee Post
Shaun,

To answer the two questions in your last post:
  1. 1. MAPI and EWS protocols are unlike EAS in that they do not have concept of device. The client sends a state to the server by which the server knows what it needs to send to the client. The client does not send an "identity".  We, therefore, list Outlook (MAPI) when MAPI is used.
  2. 2. MAPI uses EWS for some of its calls.  This is the reason why we grouped the EWS and MAPI licensing into one.
Robert Emmett
Software Developer
SmarterTools Inc.
(877) 357-6278
www.smartertools.com
0
Robert Simpson Replied
I have clients regularly having MAPI sync issues.  The computer is running all day, and then just stops syncing.  The shortest way to get it to sync again is to right-click on the Inbox (for example), go to Properties, and "clear offline items".

This has been an ongoing issue for several months now.

0
Larry Duran Replied
Employee Post
Hey Shaun can you send me your MAPI log file that is reporting this exception?  Also, inside your user's Inbox folder there might be a file called properties.pids.  Can you send me that file as well if it's there?  You can just direct message me those items.  If the files are really big I can create a ticket and get you FTP access.
Larry Duran
Software Developer
SmarterTools Inc.
(877) 357-6278
www.smartertools.com

Reply to Thread