diff --git a/ActiveSync/SOGoActiveSyncDispatcher+Sync.m b/ActiveSync/SOGoActiveSyncDispatcher+Sync.m index 1ffc83ec8..2a875e0ab 100644 --- a/ActiveSync/SOGoActiveSyncDispatcher+Sync.m +++ b/ActiveSync/SOGoActiveSyncDispatcher+Sync.m @@ -890,7 +890,9 @@ FIXME // FIXME: handle errors here if (deletesAsMoves && theFolderType == ActiveSyncMailFolder) { - [(SOGoMailFolder *)[sogoObject container] deleteUIDs: [NSArray arrayWithObjects: serverId, nil] useTrashFolder: &useTrash inContext: context]; + [(SOGoMailFolder *)[sogoObject container] deleteUIDs: [NSArray arrayWithObjects: serverId, nil] + useTrashFolder: &useTrash + inContext: context]; } else if (theFolderType == ActiveSyncEventFolder || theFolderType == ActiveSyncTaskFolder || theFolderType == ActiveSyncContactFolder) { @@ -1467,7 +1469,10 @@ FIXME } } - allMessages = [theCollection syncTokenFieldsWithProperties: nil matchingSyncToken: theSyncKey fromDate: theFilterType initialLoad: initialLoadInProgress]; + allMessages = [theCollection syncTokenFieldsWithProperties: nil + matchingSyncToken: theSyncKey + fromDate: theFilterType + initialLoad: initialLoadInProgress]; max = [allMessages count]; allCacheObjects = [NSMutableArray array]; diff --git a/ActiveSync/SOGoActiveSyncDispatcher.m b/ActiveSync/SOGoActiveSyncDispatcher.m index 1a078d92e..35cdf8f05 100644 --- a/ActiveSync/SOGoActiveSyncDispatcher.m +++ b/ActiveSync/SOGoActiveSyncDispatcher.m @@ -2416,6 +2416,11 @@ void handle_eas_terminate(int signum) realCollectionId = [collectionId realCollectionIdWithFolderType: &folderType]; realCollectionId = [self globallyUniqueIDToIMAPFolderName: realCollectionId type: folderType]; + // We avoid loading the cache metadata if we can't get the real connection. This can happen + // for example if the IMAP server is down. We just skip the folder for now. + if (!realCollectionId) + continue; + if (folderType == ActiveSyncMailFolder) folderMetadata = [self _folderMetadataForKey: [NSString stringWithFormat: @"folder%@", [[collectionId stringByUnescapingURL] substringFromIndex:5]]]; else