diff --git a/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt b/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt index 6b5ae83e8a01..b61f20c23085 100644 --- a/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt +++ b/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt @@ -377,7 +377,7 @@ class SettingsSyncBridge( } private fun checkServer() { - when (remoteCommunicator.checkServerState()) { + when (val result = remoteCommunicator.checkServerState()) { is ServerState.UpdateNeeded -> { LOG.info("Updating from server") updateChecker.scheduleUpdateFromServer() @@ -389,9 +389,14 @@ class SettingsSyncBridge( } ServerState.UpToDate -> { LOG.debug("Updating settings is not needed") + // Clear the error state, if any + SettingsSyncStatusTracker.getInstance().updateOnSuccess() } is ServerState.Error -> { - // error already logged in checkServerState + // The error is already logged in `SettingsSyncRemoteCommunicator.checkServerState`, but we need to set + // an error state for the UI to display failed sync information in the top-right corner settings menu + SettingsSyncStatusTracker.getInstance().updateOnError( + SettingsSyncBundle.message("notification.title.push.error") + ": " + result.message) } } }