diff --git a/platform/eel-tcp/src/TcpEelMachine.kt b/platform/eel-tcp/src/TcpEelMachine.kt index e2529a341812..f7bb1a32e8e9 100644 --- a/platform/eel-tcp/src/TcpEelMachine.kt +++ b/platform/eel-tcp/src/TcpEelMachine.kt @@ -7,6 +7,7 @@ import com.intellij.platform.eel.EelMachine import com.intellij.platform.ijent.IjentApi import com.intellij.platform.ijent.IjentSession import com.intellij.platform.ijent.tcp.IjentIsolatedTcpDeployingStrategy +import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.async @@ -49,7 +50,14 @@ abstract class TcpEelMachine( fun deploy() { if (deployingState.compareAndSet(false, true)) { coroutineScope.async { - deferredEelSession.complete(strategyFactory().createIjentSession()) + try { + deferredEelSession.complete(strategyFactory().createIjentSession()) + } + catch (e: Throwable) { + deferredEelSession.completeExceptionally(e) + + if (e is CancellationException) throw e + } } } }