-
Notifications
You must be signed in to change notification settings - Fork 95
ui.button on_press is a silent no-op after reconnect (JsWidget has no reconnect support) #8240
Open
Description
Description
A custom deephaven.ui component (e.g. a ui.button) stops responding after a frontend↔backend
reconnect. The panel keeps rendering its last state, but interactions (on_press, etc.) silently do
nothing - no client- or server-side error. Only a full page reload restores it.
Steps to reproduce
- Start a Deephaven server with the
deephaven.uiplugin and open the web IDE. - In the Python console, create a counter button and open it as a panel:
Double-click
import deephaven.ui as ui @ui.component def click_counter(): count, set_count = ui.use_state(0) return ui.button(f"Clicked {count} times", on_press=lambda: set_count(count + 1)) button_panel = click_counter()
button_panelin the panel list and click it a few times - confirm the count increments. - Cause a frontend↔backend reconnect where the connection is restored and the client fires its
reconnect path - e.g. a brief network interruption while the server stays up (a killable TCP proxy
such as toxiproxy in front of the server, disabled ~45s then re-enabled, works reliably). - Wait for the IDE to reconnect (the "Attempting to reconnect..." overlay clears), then click the button again.
Expected results
After reconnect the button continues to work (the count increments), the same way tables and figures
revive and remain interactive.
Actual results
The button is unresponsive - clicks do nothing and produce no error in the browser console. The widget
is effectively dead until the page is reloaded.
Additional details and attachments
- on 42.0+ is shadowed by another bug Web IDE never reconnects after connection loss since v42.0: uncaught TypeError in gRPC transport swallows the stream failure callback #8235
- Fully restoring interactivity also requires a companion client fix for the deephaven.ui button becomes unresponsive after a same-session reconnect deephaven-plugins#1389
Versions
- Deephaven: 41.7
- Browser: Chrome