Skip to content

SponsorsHelper: HE unlock always fails once HE shows its IP rate-limit image CAPTCHA, and failed packages are retried in a loop #471

Closed

Description

@DocGreenFinger

Did you read the README?

  • I have read the README.

Is this an existing issue?

  • I confirm this is not a duplicate.

Are hostnames part of this issue?

  • No, hostnames are not part of this issue. I am also not asking for any clarification here!

Environment

- Quasarr version: 4.7.8
- SponsorsHelper: ghcr.io/rix1337/sponsors-helper:latest (pulled 27 Oct 2026), 2Captcha + flaresolverr-next
- Last working version: same versions – HE unlocks worked earlier on 27 Oct
- Type: Docker
- OS: Docker on Synology DSM (Linux)

Description

  1. HE unlocks fail every time.
    2Captcha's dashboard shows the CAPTCHAs solved quickly, but SponsorsHelper logs "HE - Could not unlock page" on every attempt. The saved debug page shows why: after a burst of requests, HE adds a second check to the unlock form:
    "We've detected too many requests from this IP address. Please complete the CAPTCHA below to continue. This security check will be automatically removed after 24 hours."
    It is a 6-character image CAPTCHA (form fields captcha_answer / captcha_id) on top of the normal check. SponsorsHelper doesn't seem to handle it, and the form returns "Verification couldn't be completed". It was still failing the next morning (28 Oct, 07:08).

  2. Failed packages are retried in a loop.
    After "Maximum number of attempts reached" and "Link marked as failed", the package stays in Quasarr's queue as "[CAPTCHA not solved!] " (type "protected", status "Downloading", 0%). About two minutes later SponsorsHelper picks the same package up again for another three attempts; one package went through at least two full rounds. Each round costs 2Captcha solves and more page loads, which likely keeps the IP flagged. Sonarr never sees the item as failed, so it never tries another release.

Expected: detect the rate-limit page and back off (or solve the image CAPTCHA), and don't retry a package once it has hit the maximum attempts.

Error from the console

2026-10-27T13:39:00 INFO  🧩 Decrypting https://<redacted>/the-traitors-canada-s04e01-the-spark-1080p-amzn-web-dl-ddp5-1-h-264-ntb-3-9-gb/
2026-10-27T13:39:48 WARN  🌍HE HE - Could not unlock page. Details: <debug link available on request>
2026-10-27T13:39:48 INFO  💖 Solving took 48 seconds
2026-10-27T13:39:48 INFO  💖 Attempt 1 of 3
2026-10-27T13:40:39 WARN  🌍HE HE - Could not unlock page.
2026-10-27T13:40:40 INFO  💖 Attempt 2 of 3
2026-10-27T13:41:45 WARN  🌍HE HE - Could not unlock page.
2026-10-27T13:41:46 INFO  💖 Attempt 3 of 3
2026-10-27T13:41:57 INFO  💖 Maximum number of attempts reached: The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb
2026-10-27T13:42:08 INFO  💖 Link marked as failed: The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb
2026-10-27T13:42:08 INFO  💖 Quasarr decrypting The.Traitors.Canada.S04E06.A.Taste.Of.Death.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb...
2026-10-27T13:44:10 INFO  💖 Quasarr decrypting The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb...   <-- same package again
2026-10-27T13:45:00 WARN  🌍HE HE - Could not unlock page.
2026-10-27T13:46:05 WARN  🌍HE HE - Could not unlock page.
2026-10-27T13:46:56 WARN  🌍HE HE - Could not unlock page.
2026-10-27T13:47:06 INFO  💖 Maximum number of attempts reached: The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb

Quasarr queue entry afterwards:
"filename": "[CAPTCHA not solved!] The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb", "status": "Downloading", "percentage": 0, "type": "protected"

Quasarr.ini

[Hostnames]
at = <set>
dt = <set>
he = <set>
nk = <set>
rm = <set>
(all other hostnames empty)
[AL] / [DD] / [JUNKIES] / [DL]
user = / password =   (all empty)
[Settings]
hostnames_url = <set>
[API]
key = <set>
[FlareSolverr]
url = <set>
[Radarr]
url = <set>, api_key = <set>
[Sonarr]
url = <set>, api_key = <set>
[JDownloader]
user = <set>, password = <set>, device = <set>
[Notifications]
telegram_bot_token = <set>, telegram_chat_id = <set>, discord/pushover = empty

Screenshots

No response

Activity

  1. rix1337 commented on Oct 29, 2026

    @rix1337
    Owner

    Thanks for the detailed report. Before changing anything I need the debug link you held back.

    Every "HE - Could not unlock page" warning is followed by Details: https://termbin.com/.... That link is the page SponsorsHelper received after submitting the form. It is the only way to see what the rate-limit check actually asks for, for example whether the code is digits only or letters too.

    Please post:

    1. The termbin links from one failed round (all three attempts if you have them).
    2. The Quasarr log lines around 13:42:08 and 13:47:06 on 27 Oct, when SponsorsHelper marked the package as failed. SponsorsHelper reported it failed, but the package was still in the queue, so I need to see what Quasarr logged for that request.

    The termbin page has no credentials in it, but feel free to check it before posting.

  2. DocGreenFinger commented on Oct 29, 2026

    @DocGreenFinger
    Author

    Thanks for looking into this! Times in the Quasarr log are local (CET), Sonarr's are UTC (local −1 h).

    Termbin pages from one round (S04E01, all three attempts):

    All three are the same page: the rate-limit block "We've detected too many requests from this IP address…" is visible, the 6-character image CAPTCHA field (captcha_answer) is shown and the Turnstile response is empty.

    Quasarr log, round 1 → round 2 (hostnames redacted):

    2026-10-27T13:37:32 INFO 🌐☠️   Attempting download for The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb
    2026-10-27T13:37:32 INFO 📥🧲HE Standard connection failed/blocked. Switching to FlareSolverr...
    2026-10-27T13:37:59 INFO 📥🧲HE CAPTCHA required to unlock external download links for The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb
    2026-10-27T13:38:02 INFO 🌐☠️   The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb added successfully!
       (SponsorsHelper: attempts at 13:39:48 / 13:40:39 / 13:41:45, "Maximum number of attempts reached" 13:41:57, "Link marked as failed" 13:42:08)
    2026-10-27T13:41:59 INFO 🌐💖   Marking package The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb with ID Quasarr_tv_10cb80061ded9edd52994f96056e7f97 as failed
    2026-10-27T13:41:59 ERROR📥     Reason for failure: after 3 attempts with 2Captcha
    2026-10-27T13:42:05 WARN 📥     Package "The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb" marked as failed!
    2026-10-27T13:42:13 INFO 📥📦   Deleted package The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb from DBs
    2026-10-27T13:42:15 INFO 🔍     Providing releases 1-3 of 3 to Sonarr/4.0.20.3014 (alpine 3.24.2) for IMDb-ID tt28251824 S4E1 from cache (13s left)
    2026-10-27T13:42:17 INFO 🌐☠️   Attempting download for The.Traitors.Canada.S04E01.1080p.HEVC.x265-MeGusta
    2026-10-27T13:42:17 INFO 📥🧲DT Could not find download section for The.Traitors.Canada.S04E01.1080p.HEVC.x265-MeGusta
    2026-10-27T13:42:40 INFO 📥📦   Deleted package The.Traitors.Canada.S04E01.1080p.HEVC.x265-MeGusta from DBs
    2026-10-27T13:42:47 INFO 🔍     Providing releases 1-3 of 3 to Sonarr/4.0.20.3014 (alpine 3.24.2) for IMDb-ID tt28251824 S4E1 [DT HE NK] Time taken: 3.47 seconds
    2026-10-27T13:42:50 INFO 🌐☠️   Attempting download for The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb
    2026-10-27T13:43:34 INFO 🌐☠️   The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb added successfully!
       (round 2: SponsorsHelper "Maximum number of attempts reached" 13:47:06)
    2026-10-27T13:47:07 INFO 🌐💖   Marking package The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb with ID Quasarr_tv_10cb80061ded9edd52994f96056e7f97 as failed
    2026-10-27T13:47:07 ERROR📥     Reason for failure: after 3 attempts with 2Captcha
    2026-10-27T13:47:11 WARN 📥     Package "The.Traitors.Canada.S04E01.The.Spark.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb" marked as failed!
    

    Sonarr history for the same episode (UTC):

    Time Event Release publishedDate Download ID
    12:38:02 grabbed [HE] …-NTb 2026-09-27T12:37:31Z Quasarr_tv_10cb8006…
    12:42:10 downloadFailed [HE] …-NTb Quasarr_tv_10cb8006…
    12:42:24 grabbed / 12:42:37 failed [DT] …-MeGusta 2026-10-08T07:04:00Z Quasarr_tv_d51f6858…
    12:43:34 grabbed [HE] …-NTb 2026-09-27T12:42:45Z Quasarr_tv_10cb8006…

    I need to correct my original report: the package wasn't left in the queue. Quasarr marked it failed and deleted it at 13:42:13. What I saw afterwards was Sonarr grabbing the same release again, and the new package got the same package ID.

    Why I think Sonarr grabbed it again: the HE release's publishedDate changes with every fresh search. The date stays the same, but the time follows the moment of the search: 12:37:31Z on the first search, 12:42:45Z on the second. The size stays the same (4186963968). The search served from cache at 13:42:15 still had the old date, and Sonarr skipped the NTb release and took DT instead. The fresh search 30 s later had a new date, and Sonarr took NTb again. As far as I know, Sonarr's blocklist only matches a usenet release when the publish date is within a couple of minutes of the blocklisted one, so it never matches. S04E06 shows the same pattern: 10:41:13Z on the first grab, 10:51:18Z on the re-grab, same ID Quasarr_tv_3e886e07….

    There's also a side effect: after round 2 (13:47:07), Sonarr never recorded a downloadFailed, and Quasarr never logged "Deleted package" for S04E01 (checked through 28 Oct). Maybe Sonarr skipped it because that download ID had already been handled as failed once.

  3. rix1337 commented on Oct 29, 2026

    @rix1337
    Owner

    Thanks, the termbin pages and the Sonarr history were exactly what was needed. Here's what they showed.

    HE unlock failing. I reproduced your error on my side. HE's form fills its Turnstile, ALTCHA and Cap tokens in the background. If SponsorsHelper submits before they're filled, HE answers with exactly your page, "Verification couldn't be completed". SponsorsHelper used to wait a fixed 5 seconds and hope the tokens were there. When your IP is flagged, the page has extra work to finish before it's ready, and a NAS is slower, so 5 seconds probably wasn't enough. SponsorsHelper now waits until the tokens are actually filled before it submits. On my side this unlocked 5 out of 5 times, even with no fixed wait at all.

    The image CAPTCHA itself is digits only, and SponsorsHelper already solves it that way, so nothing changed there.

    The retry loop. Your correction was right. Quasarr did mark the package failed and delete it. The re-grab happened because HE only shows "Posted N days ago", so every search gave the same release a new publish time, and Sonarr's blocklist never matched it. Quasarr now reads the post's real publish timestamp instead. That's in the next Quasarr release (PR #472).

    The SponsorsHelper fix is pushed. Please pull ghcr.io/rix1337/sponsors-helper:latest again once the new image is built and try an HE release. If it still fails, the new termbin link from that attempt is all I need.

  4. rix1337 commented on Oct 29, 2026

    @rix1337
    Owner

    Fixed in SponsorsHelper 42.0.8. HE’s IP-limit CAPTCHA is now detected explicitly, and malformed solver answers get one retry with the next configured provider. I reproduced the real rate-limit wall and verified five successful unlocks in the same browser session.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions