Caption fetches share one per-egress-IP rate budget; whoever runs first each pass spends the pre-throttle window before YouTube starts 429ing. ListAllUsers order is unspecified and was stable, so the last-listed user was permanently starved — a friendly-pilot user got 0 fetches in 12h (all rate_limited) while the first-listed user got every successful fetch. rotateUsers left-rotates the user order by pass index so each user leads 1/N passes and the lead slot is shared. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>