From ce8c3b9cbbac968215ecb9706cc8cef78414cfea Mon Sep 17 00:00:00 2001 From: Broque Thomas <26755000+Nezreka@users.noreply.github.com> Date: Sat, 11 Apr 2026 23:30:34 -0700 Subject: [PATCH] Fix Hybrid status check to prioritize serverless sources Serverless check (YouTube/HiFi/Qobuz) now runs before the slskd connection test. Prevents 4-minute timeout hangs when Hybrid mode includes both Soulseek and serverless sources but slskd isn't running. Also reports green if any serverless source is in the hybrid order, not just the first. --- web_server.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/web_server.py b/web_server.py index 62071db0..24f3a02b 100644 --- a/web_server.py +++ b/web_server.py @@ -4603,18 +4603,19 @@ def get_status(): serverless_sources = ('youtube', 'hifi', 'qobuz') is_serverless = (download_mode in serverless_sources or (download_mode == 'hybrid' and - hybrid_order and hybrid_order[0] in serverless_sources)) + hybrid_order and any(s in serverless_sources for s in hybrid_order))) - if soulseek_relevant and soulseek_client: + # Serverless check first — avoids slow slskd timeout when YouTube/HiFi are in hybrid order + if is_serverless: + soulseek_status = True + soulseek_response_time = 0 + elif soulseek_relevant and soulseek_client: soulseek_start = time.time() try: soulseek_status = run_async(soulseek_client.check_connection()) except Exception: soulseek_status = False soulseek_response_time = (time.time() - soulseek_start) * 1000 - elif is_serverless: - soulseek_status = True - soulseek_response_time = 0 else: soulseek_status = False soulseek_response_time = 0