diff --git a/platform/execution.dashboard/src/BackendRunDashboardManagerState.kt b/platform/execution.dashboard/src/BackendRunDashboardManagerState.kt index 0e1f78b1dfd6..79390481c197 100644 --- a/platform/execution.dashboard/src/BackendRunDashboardManagerState.kt +++ b/platform/execution.dashboard/src/BackendRunDashboardManagerState.kt @@ -51,9 +51,12 @@ internal class BackendRunDashboardManagerState(private val project: Project) { sharedSettings.value = RunDashboardSettingsDto(openRunningConfigInTab) } - fun fireStatusUpdated(backendService: RunDashboardService) { - sharedStatuses.tryEmit(ServiceStatusDto(backendService.uuid, - RunDashboardRunConfigurationStatus.getStatus(backendService.descriptor).id)) + fun fireStatusUpdated(backendService: RunDashboardService, persistedStatus: RunDashboardRunConfigurationStatus?) { + val effectiveStatus = when { + backendService.descriptor == null && persistedStatus != null -> persistedStatus + else -> RunDashboardRunConfigurationStatus.getStatus(backendService.descriptor) + } + sharedStatuses.tryEmit(ServiceStatusDto(backendService.uuid, effectiveStatus.id)) } fun getStatuses(): Flow { diff --git a/platform/execution.dashboard/src/RunDashboardManagerImpl.java b/platform/execution.dashboard/src/RunDashboardManagerImpl.java index 4709a3075035..48b13ca46bc2 100644 --- a/platform/execution.dashboard/src/RunDashboardManagerImpl.java +++ b/platform/execution.dashboard/src/RunDashboardManagerImpl.java @@ -485,7 +485,7 @@ public final class RunDashboardManagerImpl implements RunDashboardManager, Persi @Override public void updateDashboard(boolean withStructure) { for (RunDashboardService backendService : getRunConfigurations()) { - mySharedState.fireStatusUpdated(backendService); + mySharedState.fireStatusUpdated(backendService, getPersistedStatus(backendService.getConfigurationSettings().getConfiguration())); var applicableCustomizers = getCustomizers(backendService.getConfigurationSettings(), backendService.getDescriptor()); if (applicableCustomizers.isEmpty()) continue;