From 775a7f85f7f999277af66111d0d73cff3fe497ca Mon Sep 17 00:00:00 2001 From: Alexandre de Souza Date: Tue, 15 Jul 2025 16:58:32 -0300 Subject: [PATCH] Fix WebSocket unknown state --- lib/livebook/teams/connection.ex | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/livebook/teams/connection.ex b/lib/livebook/teams/connection.ex index 2662de683..2a7041053 100644 --- a/lib/livebook/teams/connection.ex +++ b/lib/livebook/teams/connection.ex @@ -85,15 +85,15 @@ defmodule Livebook.Teams.Connection do :keep_state_and_data end - def handle_event(:info, message, @no_state, data) when elem(message, 0) in @expected_messages do - handle_websocket_message(message, data) - end - def handle_event(:info, message, @no_state, %{http_conn: nil}) when elem(message, 0) in @expected_messages do :keep_state_and_data end + def handle_event(:info, message, @no_state, data) when elem(message, 0) in @expected_messages do + handle_websocket_message(message, data) + end + def handle_event(:info, _message, @no_state, _data) do :keep_state_and_data end @@ -116,6 +116,10 @@ defmodule Livebook.Teams.Connection do # Private + defp handle_websocket_message(_message, %{http_conn: nil} = data) do + {:keep_state, data, {:next_event, :internal, :connect}} + end + defp handle_websocket_message(message, data) do case WebSocket.receive(data.http_conn, data.ref, data.websocket, message) do {:ok, conn, websocket, binaries} ->