[AirSync] Synchronization error (FolderHierarchyChanged)

Hey @cyberzork - So far, the issue hasn’t replicated. So I’ll keep my fingers crossed that this remains the situation! :crossed_fingers:

And, FWIW, I went ahead and joined you all as a paying customer today. Looking forward to seeing how this app grows!

1 Like

I just got the FolderHierarchyChanged one. Interestingly, it has been running fine for since January 9th, I think, and the error popped-up specifically after my Android Outlook client asked to update ads settings today (January 12th), since my subscription expired on January 10th. I wonder if there is some connection.

This error cropped up for me on Windows for my Outlook.com email account. It would be really great if this issue could be resolved once-and-for-all. :slight_smile:

Got this one today again, here’s what’s in the logs:

07:20:24.894|001|   eM Client 10.1.4588+f11e2ab373 (Windows)
07:20:24.894|001|   Account's UID is 0e0f5f7d-6f9b-4ca1-8a5c-7ebb93d33f1e
07:20:24.895|001|   AccountBase.ChangeOnlineState : State changed to ONLINE due User
07:20:24.895|036|   GetItemEstimate
07:20:24.895|036|   <?xml version="1.0" encoding="utf-8"?>
07:20:24.895|036|   <GetItemEstimate xmlns="GetItemEstimate:">
07:20:24.895|036|     <Collections>
07:20:24.896|036|       <Collection>
07:20:24.896|036|         <SyncKey xmlns="AirSync:">588078408</SyncKey>
07:20:24.896|036|         <CollectionId>20</CollectionId>
07:20:24.896|036|       </Collection>
07:20:24.896|036|     </Collections>
07:20:24.896|036|   </GetItemEstimate>
07:20:24.896|036|   
07:20:24.896|036|   GetItemEstimate
07:20:24.896|036|   <?xml version="1.0" encoding="utf-8"?>
07:20:24.896|036|   <GetItemEstimate xmlns="GetItemEstimate:">
07:20:24.896|036|     <Collections>
07:20:24.896|036|       <Collection>
07:20:24.896|036|         <SyncKey xmlns="AirSync:">2032294438</SyncKey>
07:20:24.896|036|         <CollectionId>25</CollectionId>
07:20:24.896|036|       </Collection>
07:20:24.896|036|     </Collections>
07:20:24.896|036|   </GetItemEstimate>
07:20:24.897|036|   
07:20:24.897|036|   GetItemEstimate
07:20:25.662|036|   <?xml version="1.0" encoding="utf-8"?>
07:20:25.662|036|   <GetItemEstimate xmlns="GetItemEstimate:">
07:20:25.662|036|     <Collections>
07:20:25.662|036|       <Collection>
07:20:25.663|036|         <SyncKey xmlns="AirSync:">2032294438</SyncKey>
07:20:25.663|036|         <CollectionId>25</CollectionId>
07:20:25.663|036|       </Collection>
07:20:25.663|036|     </Collections>
07:20:25.663|036|   </GetItemEstimate>
07:20:25.663|036|   
07:20:25.663|036|   GetItemEstimate
07:20:25.696|036|   <?xml version="1.0" encoding="utf-8"?>
07:20:25.696|036|   <GetItemEstimate xmlns="GetItemEstimate:">
07:20:25.696|036|     <Collections>
07:20:25.696|036|       <Collection>
07:20:25.696|036|         <SyncKey xmlns="AirSync:">2032294438</SyncKey>
07:20:25.696|036|         <CollectionId>25</CollectionId>
07:20:25.696|036|       </Collection>
07:20:25.696|036|     </Collections>
07:20:25.696|036|   </GetItemEstimate>
07:20:25.696|036|   
07:20:25.696|036|   <?xml version="1.0" encoding="utf-8"?>
07:20:25.831|036|   <getitemestimate:GetItemEstimate xmlns:getitemestimate="GetItemEstimate:">
07:20:25.831|036|     <getitemestimate:Response>
07:20:25.831|036|       <getitemestimate:Status>1</getitemestimate:Status>
07:20:25.831|036|       <getitemestimate:Collection>
07:20:25.831|036|         <getitemestimate:CollectionId>25</getitemestimate:CollectionId>
07:20:25.831|036|         <getitemestimate:Estimate>0</getitemestimate:Estimate>
07:20:25.831|036|       </getitemestimate:Collection>
07:20:25.831|036|     </getitemestimate:Response>
07:20:25.831|036|   </getitemestimate:GetItemEstimate>
07:20:25.831|036|   
07:20:25.831|036|   Sync
07:20:25.831|036|   <?xml version="1.0" encoding="utf-8"?>
07:20:25.831|036|   <Sync xmlns="AirSync:">
07:20:25.831|036|     <Collections>
07:20:25.831|036|       <Collection>
07:20:25.831|036|         <SyncKey>2032294438</SyncKey>
07:20:25.831|036|         <CollectionId>25</CollectionId>
07:20:25.831|036|         <GetChanges />
07:20:25.831|036|         <WindowSize>50</WindowSize>
07:20:25.831|036|         <Options>
07:20:25.831|036|           <BodyPreference xmlns="AirSyncBase:">
07:20:25.831|036|             <Type>2</Type>
07:20:25.831|036|           </BodyPreference>
07:20:25.831|036|           <Conflict>0</Conflict>
07:20:25.831|036|         </Options>
07:20:25.831|036|       </Collection>
07:20:25.831|036|     </Collections>
07:20:25.832|036|   </Sync>
07:20:25.832|036|   
07:20:25.832|036|   <?xml version="1.0" encoding="utf-8"?>
07:20:25.938|036|   <airsync:Sync xmlns:airsync="AirSync:">
07:20:25.938|036|     <airsync:Status>12</airsync:Status>
07:20:25.938|036|   </airsync:Sync>
07:20:25.938|036|   
07:20:25.938|036|   Exception: MailClient.Storage.Application.OperationException: Synchronization error (FolderHierarchyChanged)
07:20:25.938|036|      at MailClient.Protocols.AirSync.AirSyncItemSynchronizer`2.Synchronize(IItemSynchronizeContext`1 synchronizeContext, Folder folder, CancellationToken cancellationToken)
07:20:25.939|036|      at MailClient.Protocols.Common.ItemSynchronizer`2.<>c__DisplayClass39_2.<EnqueueSynchronize>b__6(WorkerStatus status, CancellationToken ct)
07:20:25.939|036|      at MailClient.Protocols.AirSync.AirSyncGenericCommand.Execute(WorkerStatus status)
07:20:25.939|036|      at MailClient.Commands.Command.Process(WorkerStatus status)
07:20:25.939|036|   AccountBase.GoOfflineAsync : State changed to OFFLINE due BrokenConnection
07:20:25.939|007|   AccountBase.ChangeOnlineState : State changed to OFFLINE due BrokenConnection

I also noticed, that in sqlite.log there are lots of lines like

01/20/2025 05:23:54 28 double-quoted string literal: "folderFlags"

Don’t know if related. But… It definitely stopped syncing updates to tasks from emClient to Outlook/ToDo

Yeah, the BrokenConnection bit is the worry.
Trying out Chris_R’s “Uncheck AirSync” in order to give the thing a good old rest for a while. Oh, and Fortune may then smile, and I’ll end up forgetting about the whole thing altogether. :fortune_cookie: