             notifySyncing(NotificationProfileDidStartSyncing)
         }
 
-        private func endSyncing() {
+        private func endSyncing(result: Maybe<EngineResults>?) {
             // loop through status's and fill sync state
             syncLock.lock()
             defer { syncLock.unlock() }
             log.info("Ending all queued syncs.")
-            syncDisplayState = displayStateForEngineResults(syncReducer?.terminal.value)
+            syncDisplayState = displayStateForEngineResults(result)
             notifySyncing(NotificationProfileDidFinishSyncing)
             syncReducer = nil
         }

            let storage = self.profile.remoteClientsAndTabs
            let tabSynchronizer = ready.synchronizer(TabsSynchronizer.self, delegate: delegate, prefs: prefs)
            let result = tabSynchronizer.synchronizeLocalTabs(storage, withServer: ready.client, info: ready.info)
            syncDisplayState = displayStateForSyncResult(result)
            return result
        }


                let displayState = self.displayStateForSyncState(status, identifier: identifier)
                return displayState == .Good ? nil : displayState
            }
            return errorResults?.first ?? .Good
        }

        private func displayStateForSyncState(syncStatus: SyncStatus, identifier: String? = nil) -> SyncDisplayState {
