diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/settings/impl/TerminalProjectOptionsMigration.kt b/plugins/terminal/src/org/jetbrains/plugins/terminal/settings/impl/TerminalProjectOptionsMigration.kt index 13c368c2b670..b7f7ec6ce75d 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/settings/impl/TerminalProjectOptionsMigration.kt +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/settings/impl/TerminalProjectOptionsMigration.kt @@ -18,6 +18,7 @@ import com.intellij.platform.eel.provider.getEelDescriptor import com.intellij.platform.ide.productMode.IdeProductMode import com.intellij.platform.ide.progress.runWithModalProgressBlocking import com.intellij.platform.project.projectId +import com.intellij.platform.rpc.RemoteApiProviderService import com.intellij.util.ui.EDT import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CoroutineScope @@ -58,6 +59,12 @@ internal class TerminalProjectOptionsMigration( return null } + if (!service().isServiceOperational()) { + props.setValue(MIGRATION_ATTEMPTED_KEY, true) + LOG.info("Terminal project options migration skipped for project $project: no connection to the backend") + return null + } + val job = migrationJob ?: synchronized(this) { migrationJob ?: coroutineScope.async { getStateFromBackend(props) diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/settings/impl/TerminalTabsStorageMigration.kt b/plugins/terminal/src/org/jetbrains/plugins/terminal/settings/impl/TerminalTabsStorageMigration.kt index 89e0b7672c60..ed1356934ba9 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/settings/impl/TerminalTabsStorageMigration.kt +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/settings/impl/TerminalTabsStorageMigration.kt @@ -17,6 +17,7 @@ import com.intellij.platform.eel.provider.getEelDescriptor import com.intellij.platform.ide.productMode.IdeProductMode import com.intellij.platform.ide.progress.runWithModalProgressBlocking import com.intellij.platform.project.projectId +import com.intellij.platform.rpc.RemoteApiProviderService import com.intellij.util.ui.EDT import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CoroutineScope @@ -56,6 +57,12 @@ internal class TerminalTabsStorageMigration( return null } + if (!service().isServiceOperational()) { + props.setValue(MIGRATION_ATTEMPTED_KEY, true) + LOG.info("Terminal tabs storage migration skipped for project $project: no connection to the backend") + return null + } + val job = migrationJob ?: synchronized(this) { migrationJob ?: coroutineScope.async { getTabsFromBackend(props)