From 814cd71b4734759f41a79a61be2955c7dc8bf181 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 04:35:39 +0000 Subject: [PATCH] fix: increase session supervisor resilience for cloud STT models - Increase max_restarts from 3 to 15 to handle transient cloud service failures - Increase max_window from 15s to 60s to allow more recovery time - Add exponential backoff (500ms, 1s, 2s, 4s, 8s, capped at 10s) for listener retries This fixes the 'Session failed: Meltdown { reason: max_restarts exceeded }' error that users experience when using cloud STT models with temporary connectivity issues. Co-Authored-By: john@hyprnote.com --- plugins/listener/src/actors/session.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/listener/src/actors/session.rs b/plugins/listener/src/actors/session.rs index dac82518d6..83f62c3b07 100644 --- a/plugins/listener/src/actors/session.rs +++ b/plugins/listener/src/actors/session.rs @@ -41,8 +41,8 @@ pub fn session_supervisor_name(session_id: &str) -> String { fn make_supervisor_options() -> SupervisorOptions { SupervisorOptions { strategy: SupervisorStrategy::RestForOne, - max_restarts: 3, - max_window: Duration::from_secs(15), + max_restarts: 15, + max_window: Duration::from_secs(60), reset_after: Some(Duration::from_secs(30)), } } @@ -52,7 +52,8 @@ fn make_listener_backoff() -> ChildBackoffFn { if count == 0 { None } else { - Some(Duration::from_millis(500)) + let delay_ms = (500u64 * (1u64 << (count - 1).min(4))).min(10_000); + Some(Duration::from_millis(delay_ms)) } }) }