-
Notifications
You must be signed in to change notification settings - Fork 95
Web IDE never reconnects after connection loss since v42.0: uncaught TypeError in gRPC transport swallows the stream failure callback #8235
Description
Description
Since v42.0, an ungraceful loss of the server connection (server crash, dropped proxy connection, network disconnect)
leaves the web IDE permanently stuck on "Attempting to reconnect...". It never
recovers on its own after connectivity returns - only a manual page reload fixes it. On v41.7 the
same interruption recovers automatically in ~10-30s.
During the outage the browser console logs an uncaught TypeError for every failed reconnect attempt:
Uncaught TypeError: Cannot read properties of undefined (reading 'size_0')
at getStatus (dh-core.js)
at $onEnd (dh-core.js)
at $onClose (dh-core.js)
at MultiplexedWebsocketTransport1ドルmethodref$onClose$Type.handleEvent_0
Reproduced on ghcr.io/deephaven/server:latest (42.1) and :edge (43.0-SNAPSHOT); not reproducible
on 41.7.
Steps to reproduce
- Run a server with a pinned PSK (so the key survives a restart):
docker run -d --name dh -p 10000:10000 \ -e START_OPTS="-Dauthentication.psk=mykey" ghcr.io/deephaven/server:latest - Open
http://localhost:10000/ide/?psk=mykeywith the browser devtools console open.
(No script needed; an idle IDE is enough.) - Kill the server ungracefully:
docker kill dh. - The reconnect overlay appears; the console logs the uncaught
size_0TypeError on each retry. - Bring the server back:
docker start dh, and wait.
Expected results
The IDE reconnects automatically once the server is back (v41.7 behavior, ~10-30s).
Actual results
Stuck on "Attempting to reconnect..." indefinitely; only a page reload recovers.
Additional info
Not confirmed, but this likely stems from the new gRPC transport added in #7878 (v42.0): a failed
reconnect attempt appears to throw before its failure is reported, so retries are never notified and
reconnect stalls.