Skip to content

Cloud Workstations: Connection Reset / IOException: Output closed during active use on ChromeOS (Crostini) #3291

Description

@fgette-delfingen

Version Information

JetBrains Gateway version: 2025.2.5 (Build #GW-252.28238.6)

Cloud Workstations plugin version: 25.8.1-api-version-242

Details

I am experiencing intermittent "no connection" errors while using the Cloud Workstations plugin within JetBrains Gateway. This happens both when idle and during active typing.

Environment:

  • Local OS: ChromeOS (running JetBrains Gateway inside Crostini/Linux container)
  • JetBrains Gateway Version: 2025.2.5 (Build #GW-252.28238.6)
  • Cloud Workstations Plugin Version: 25.8.1-api-version-242
  • Remote IDE: IntelliJ IDEA (Google Cloud Workstation Image)

Log of Gateway:

026-02-09 08:07:19,682 [2475001]   WARN - #com.google.cloud.workstations.ide.jetbrains.connector.connection.TcpListener$Companion - TcpListener#onError
java.net.SocketException: Connection reset
        at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401)
        at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434)
        at java.net.http/jdk.internal.net.http.SocketTube.readAvailable(SocketTube.java:1178)
        at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$InternalReadSubscription.read(SocketTube.java:841)
        at java.net.http/jdk.internal.net.http.SocketTube$SocketFlowTask.run(SocketTube.java:181)
        at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207)
        at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:280)
        at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:233)
        at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$InternalReadSubscription.signalReadable(SocketTube.java:782)
        at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$ReadEvent.signalEvent(SocketTube.java:965)
        at java.net.http/jdk.internal.net.http.SocketTube$SocketFlowEvent.handle(SocketTube.java:253)
        at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.handleEvent(HttpClientImpl.java:1477)
        at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.lambda$run$3(HttpClientImpl.java:1422)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
        at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:1422)
2026-02-09 08:07:19,708 [2475027] SEVERE - #c.i.o.a.i.CoroutineExceptionHandlerImpl - Unhandled exception in Dispatchers.Default
java.util.concurrent.CompletionException: java.io.IOException: Output closed
        at java.base/java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:413)
        at java.base/java.util.concurrent.CompletableFuture.join(CompletableFuture.java:2118)
        at com.google.cloud.workstations.ide.jetbrains.connector.connection.TcpListener$onOpen$1.invokeSuspend(TcpListener.kt:42)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:613)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:1189)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:778)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:765)
Caused by: java.io.IOException: Output closed
        at java.net.http/jdk.internal.net.http.websocket.TransportImpl$SendTask.tryCompleteWrite(TransportImpl.java:619)
        at java.net.http/jdk.internal.net.http.websocket.TransportImpl$SendTask.run(TransportImpl.java:557)
        at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:149)
        at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207)
        at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:280)
        at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:233)
        at java.net.http/jdk.internal.net.http.websocket.TransportImpl.sendBinary(TransportImpl.java:174)
        at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.sendBinary(WebSocketImpl.java:216)
        ... 7 more
2026-02-09 08:07:19,710 [2475029] SEVERE - #c.i.o.a.i.CoroutineExceptionHandlerImpl - JetBrains Gateway 2025.2.5  Build #GW-252.28238.6
2026-02-09 08:07:19,710 [2475029] SEVERE - #c.i.o.a.i.CoroutineExceptionHandlerImpl - JDK: 21.0.9; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2026-02-09 08:07:19,710 [2475029] SEVERE - #c.i.o.a.i.CoroutineExceptionHandlerImpl - OS: Linux
2026-02-09 08:07:19,711 [2475030] SEVERE - #c.i.o.a.i.CoroutineExceptionHandlerImpl - Plugin to blame: Cloud Workstations version: 25.8.1-api-version-242
2026-02-09 08:07:19,711 [2475030] SEVERE - #c.i.o.a.i.CoroutineExceptionHandlerImpl - Last Action: 
2026-02-09 08:07:19,716 [2475035]   INFO - STDERR - Exception in thread "DefaultDispatcher-worker-1" java.util.concurrent.CompletionException: java.io.IOException: Output closed
2026-02-09 08:07:19,717 [2475036]   INFO - STDERR -     at java.base/java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:413)
2026-02-09 08:07:19,717 [2475036]   INFO - STDERR -     at java.base/java.util.concurrent.CompletableFuture.join(CompletableFuture.java:2118)
2026-02-09 08:07:19,717 [2475036]   INFO - STDERR -     at com.google.cloud.workstations.ide.jetbrains.connector.connection.TcpListener$onOpen$1.invokeSuspend(TcpListener.kt:42)
2026-02-09 08:07:19,717 [2475036]   INFO - STDERR -     at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2026-02-09 08:07:19,717 [2475036]   INFO - STDERR -     at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
2026-02-09 08:07:19,717 [2475036]   INFO - STDERR -     at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:613)
2026-02-09 08:07:19,717 [2475036]   INFO - STDERR -     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:1189)
2026-02-09 08:07:19,717 [2475036]   INFO - STDERR -     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:778)
2026-02-09 08:07:19,717 [2475036]   INFO - STDERR -     at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:765)
2026-02-09 08:07:19,719 [2475038]   INFO - STDERR -     Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@79ff4607, Dispatchers.Default]
2026-02-09 08:07:19,719 [2475038]   INFO - STDERR - Caused by: java.io.IOException: Output closed
2026-02-09 08:07:19,719 [2475038]   INFO - STDERR -     at java.net.http/jdk.internal.net.http.websocket.TransportImpl$SendTask.tryCompleteWrite(TransportImpl.java:619)
2026-02-09 08:07:19,719 [2475038]   INFO - STDERR -     at java.net.http/jdk.internal.net.http.websocket.TransportImpl$SendTask.run(TransportImpl.java:557)
2026-02-09 08:07:19,719 [2475038]   INFO - STDERR -     at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:149)
2026-02-09 08:07:19,719 [2475038]   INFO - STDERR -     at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207)
2026-02-09 08:07:19,719 [2475038]   INFO - STDERR -     at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:280)
2026-02-09 08:07:19,719 [2475038]   INFO - STDERR -     at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:233)
2026-02-09 08:07:19,719 [2475038]   INFO - STDERR -     at java.net.http/jdk.internal.net.http.websocket.TransportImpl.sendBinary(TransportImpl.java:174)
2026-02-09 08:07:19,719 [2475038]   INFO - STDERR -     at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.sendBinary(WebSocketImpl.java:216)
2026-02-09 08:07:19,720 [2475039]   INFO - STDERR -     ... 7 more

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions