index-scheduler's loop ended when Postgres restarted (the active-groups query was outside its try), leaving live indexing stopped for ~3 hours while the process stayed up. Each step's error is now caught and retried next round; worker:spots and worker:deferred wait 30 s and claim again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>