From c1a55e15a7118c0ed4652a3a10a46d228f2887a1 Mon Sep 17 00:00:00 2001 From: Alexandre de Souza Date: Tue, 3 Jun 2025 17:08:21 -0300 Subject: [PATCH] Use random value for WebSocket reconnect backoff (#3012) --- lib/livebook/teams/connection.ex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/livebook/teams/connection.ex b/lib/livebook/teams/connection.ex index c08fc2e7c..2662de683 100644 --- a/lib/livebook/teams/connection.ex +++ b/lib/livebook/teams/connection.ex @@ -5,7 +5,6 @@ defmodule Livebook.Teams.Connection do alias Livebook.Teams.WebSocket - @backoff 5_000 @no_state :no_state @loop_ping_delay 5_000 @@ -50,7 +49,10 @@ defmodule Livebook.Teams.Connection do {:transport_error, reason} -> send(data.listener, {:connection_error, reason}) Logger.warning("Teams WebSocket connection - transport error: #{inspect(reason)}") - {:keep_state_and_data, {{:timeout, :backoff}, @backoff, nil}} + + # Random between 3 and 10 seconds + backoff = Enum.random(3..10) * 1000 + {:keep_state_and_data, {{:timeout, :backoff}, backoff, nil}} {:server_error, error} -> reason = LivebookProto.Error.decode(error).details