Skip to content

v1.2.6 — Auto-disable dead CF Worker (5xx)

Choose a tag to compare

@sundeepyt2 sundeepyt2 released this 02 Jul 21:05

What was broken

If your CF Worker (Cloudflare/Deno/Vercel) account gets suspended or the worker goes down, SNI kept trying the dead worker URL on every request, getting 503 errors in a loop — even though direct + proxy.cors.sh might have worked.

What's fixed

AllAnimeProvider now tracks a _worker_disabled flag. When the CF Worker returns any 5xx response (502/503/504 — indicates the worker is suspended/deleted/down), the flag is set to True and the worker is skipped for the rest of the session. Subsequent requests go directly to direct → proxy.cors.sh without wasting time on the dead worker URL.

The error message also tells you how to clear the dead URL:

Worker returned HTTP 503 (worker may be suspended or down). Worker disabled
for this session. Clear it with: sni config --update allanime_cf_worker_url=''

What you should do right now

Immediate fix (stop the 503 errors)

# Clear the dead worker URL from your config
sni config --update allanime_cf_worker_url=''

# Upgrade to v1.2.6 (so this auto-disables in the future)
pip install --upgrade sni-cli

# Try playing — should use direct + proxy.cors.sh fallback
sni play "one piece"

If SNI still can't reach AllAnime

Your remaining options (since Deno Deploy suspended your account):

  1. Try Vercel Edge Functionshttps://vercel.com (free, no card). Deploy worker/api/proxy.js from the repo. Instructions in worker/README.md.

  2. Try a VPN — your IP is captcha-walled by AllAnime's Cloudflare. A VPN gives you a different IP that might not be flagged. Free VPNs like ProtonVPN work.

  3. Try a mobile hotspot — switch from WiFi to mobile data. Mobile IPs are rarely captcha-walled.

  4. Browser cookies from allmanga.to — open https://allmanga.to in your browser, solve any captcha, copy cookies from DevTools → Application → Cookies, then:

    sni config --update allanime_cookies='cf_clearance=...;'

Verified

  • ruff check sni/ → All checks passed
  • pytest -q → 44 passed (3.18s)
  • Mock test: worker returns 503 → _worker_disabled set to True ✅
  • Mock test: subsequent call skips worker entirely ✅
  • Live end-to-end: search → episodes → streams all work ✅

Full changelog: v1.2.5...v1.2.6