From 6c4d8d93486831545ab3eabb89079f645595e11d Mon Sep 17 00:00:00 2001 From: Broque Thomas <26755000+Nezreka@users.noreply.github.com> Date: Tue, 31 Mar 2026 08:14:25 -0700 Subject: [PATCH] Fix race condition: paused enrichment workers making API calls on startup Worker threads were started before paused flag was set, allowing one loop iteration (and API call) before pause took effect. Now sets paused=True BEFORE start() so the thread sees it immediately. Fixes the Spotify rate limit re-trigger on every container restart for users with paused enrichment. Also increased max-retries rate limit ban from 1 hour to 4 hours to prevent endless retry cycles. --- web_server.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/web_server.py b/web_server.py index d71afe90..ff98786c 100644 --- a/web_server.py +++ b/web_server.py @@ -43620,9 +43620,10 @@ try: from database.music_database import MusicDatabase spotify_enrichment_db = MusicDatabase() spotify_enrichment_worker = SpotifyWorker(database=spotify_enrichment_db) - spotify_enrichment_worker.start() if config_manager.get('spotify_enrichment_paused', False): - spotify_enrichment_worker.pause() + spotify_enrichment_worker.paused = True # Set BEFORE start() to prevent race condition + spotify_enrichment_worker.start() + if spotify_enrichment_worker.paused: print("✅ Spotify enrichment worker initialized (paused — restored from config)") else: print("✅ Spotify enrichment worker initialized and started") @@ -43917,9 +43918,10 @@ try: from database.music_database import MusicDatabase genius_db = MusicDatabase() genius_worker = GeniusWorker(database=genius_db) - genius_worker.start() if config_manager.get('genius_enrichment_paused', False): - genius_worker.pause() + genius_worker.paused = True + genius_worker.start() + if genius_worker.paused: print("✅ Genius enrichment worker initialized (paused — restored from config)") else: print("✅ Genius enrichment worker initialized and started")