Coronium Mobile Proxies
Proxy questions answered

hCaptcha Not Working

hCaptcha โ€œnot workingโ€ usually means one of three things: the checkbox never loads, every correct answer is followed by another puzzle, or the page reports a code such as `rate-limited`, `network-error` or `script-error`. Each points to a different layer, from an extension on your laptop to the websiteโ€™s own server. This guide uses hCaptchaโ€™s developer documentation to tell them apart, then gives the fixes in the order that costs you the least.

Coronium Technical TeamSources checked 7 min read

Short answer

  • A widget that never appears is usually a blocked script: an extension, a filtering DNS service or a firewall that stops hcaptcha.com or one of its subdomains.
  • Puzzle after puzzle means hCaptcha has low confidence in the session, or the site set a hard difficulty. Blocked cookies, a changing IP and automation all lower confidence.
  • `rate-limited` means too many requests from you. Waiting helps and repeated refreshing makes it worse.
  • If the puzzle passes but the form still fails, the siteโ€™s server rejected the token. That is the site ownerโ€™s fix, usually an expired or reused token.

How hCaptcha decides to show a puzzle

hCaptcha does not show the same thing to everyone. Its FAQ says whether a visitor sees a challenge depends on its computed confidence in the visitorโ€™s humanity, combined with the difficulty the site owner selected and other security settings. A failed answer always produces a new challenge. Paid tiers add modes that rarely or never show a puzzle, so two sites using hCaptcha can treat the same visitor very differently.

The hCaptcha privacy policy lists the kinds of data it collects to judge whether a visitor is human: mouse movements, scroll position, key presses and touch events, alongside technical data such as IP address, browser type, internet provider, device type and operating system. It does not publish how much weight any of these carry. Treat any list of โ€œthe factors hCaptcha usesโ€ as an informed guess, including this one.

In practice, confidence drops when the session looks new every time (no cookies), when the address is shared or flagged, when input looks scripted, and when the IP changes during the visit.

Five failure types and what each points to

Match what you see to the layer that failed
What you seeLikely layerFirst check
Checkbox or puzzle never loadsScript blocked, filtering DNS or firewallOpen the page with extensions off, then on another network
New puzzle after every correct answerLow confidence or high site difficultyAllow cookies for hcaptcha.com and keep one IP for the visit
Error mentions too many requestsRate limit on your requestsStop retrying and wait before the next attempt
Loads on mobile data, fails on Wi-FiNetwork filter on that connectionCheck router DNS blocklists and security software
Puzzle passes, form says verification failedSite server rejected the tokenReport it to the site with the time of the attempt

The hCaptcha configuration reference documents the client-side error codes a site receives. Visitors rarely see the raw code, but the behavior matches it:

  • rate-limited: the user has sent too many requests.
  • network-error: there are connection problems, for example the device is offline.
  • script-error: the hCaptcha JavaScript could not be loaded.
  • challenge-error and internal-error: setup or client failures; hCaptcha suggests the user may need to select the checkbox again.
  • challenge-expired: the time limit to answer ran out.

Before changing anything on your side, check the hCaptcha status page. A reported incident explains failures across many sites at once.

Fixes in order, cheapest first

  1. Reload once, then wait. Repeated refreshes add requests and can trigger rate-limited.
  2. Check the status page. If hCaptcha reports an incident, nothing on your side will help.
  3. Turn off extensions for the site. hCaptchaโ€™s accessibility page says that when challenges keep returning even with its accessibility cookie set, the usual cause is an aggressive ad blocker, an anti-cookie extension or browser settings that refuse cross-site cookies, and it recommends allowing cookies for hcaptcha.com and *.hcaptcha.com. A per-site exception is better than turning protection off everywhere.
  4. Allow cross-site cookies for the check. The widget runs inside a frame from hcaptcha.com, so a setting that blocks cross-site cookies can stop it remembering you. The same page gives the settings to change in Safari (cross-site tracking prevention) and Brave (shields).
  5. Update the browser. According to the FAQ, official support covers each browserโ€™s two latest major releases.
  6. Look for DNS filtering. Router blocklists, filtering DNS services and some security suites block tracker-like domains. Site owners are told to allow both hcaptcha.com and its subdomains, so a filter that blocks only one subdomain can still break the widget.
  7. Compare one network. Try mobile data instead of Wi-Fi, keeping the same browser. If it works, the network or its address is the cause.
  8. Use the accessibility cookie if puzzles are a barrier. hCaptcha offers an accessibility sign-up that sets an encrypted cookie usable several times a day, refreshed by logging in again.

If verification fails on your own site

When visitors solve the puzzle but your form rejects them, the problem sits between your server and hCaptcha. The developer guide lists the siteverify error codes. The ones that cause most real failures:

  • expired-input-response: tokens expire, 120 seconds by default. Long forms that load the widget early hit this.
  • already-seen-response: a token was verified twice, often by a retry, a double submit or a second server-side check.
  • sitekey-secret-mismatch: the site key and secret come from different configurations.
  • missing-input-response or invalid-input-response: the token never reached your server or was altered on the way.

Send a form-encoded POST, not JSON, and include remoteip and sitekey:

curl -s https://api.hcaptcha.com/siteverify \
  -d secret="$HCAPTCHA_SECRET" \
  -d response="$TOKEN" \
  -d remoteip="$VISITOR_IP" \
  -d sitekey="$HCAPTCHA_SITEKEY"

If you use a Content Security Policy, allow https://hcaptcha.com and https://*.hcaptcha.com for scripts, frames, styles and connections. The API does not accept localhost as a hostname, so test through a hosts-file name instead, and keep the documented test keys out of production.

For proxy and automation users

A puzzle you solve is tied to the session that received it. If the exit address changes between loading the widget and submitting the form, the site sees a new session and asks again. With a rotating setup, keep one address for the whole task: rotate between tasks, not during them. On mobile proxies from Coronium the rotation timer has a 60 second minimum, and a rotation link rotates on every GET request, including link previews, so a link pasted into a chat app can change your IP in the middle of a puzzle.

Shared addresses work against you here. The IETFโ€™s RFC 6269 explains that blocking or penalizing a shared address also hits everyone else behind it, which is why a busy carrier or VPN address can see more puzzles than a quiet one. A dedicated line removes other customersโ€™ traffic from your address, though the address may still have history from before you used it.

For automation, assume every page script can see that the browser is automated: the W3C WebDriver standard sets navigator.webdriver to true under remote control. hCaptcha does not document whether it reads this flag. Solving services exist, and whether you may use one depends on the websiteโ€™s terms, not on hCaptcha. For a broader view of the causes, read why CAPTCHAs keep appearing.

Sources and review scope

Sources reviewed October 30, 2026. Vendor documentation was read on October 30, 2026. Where a vendor does not document a behavior, the article says so. We cannot see a websiteโ€™s private rules, scores or account decisions, and no step here is certain to fix it.

Frequently asked questions

Other block pages and CAPTCHA errors

Each guide names the system behind the message, then lists the fixes in the order worth trying.

Related workflows

Why so many CAPTCHAs

Tell an IP cause from a browser or pattern cause.

CAPTCHA solving services compared

What solving services do, and where they are allowed.

Cloudflare blocks and challenge loops

The deeper guide for Cloudflare-protected sites.

Browser proxy setup

Confirm which browser process uses the proxy.

How rotating proxies work

Timers, sessions and when a new address helps.

Proxy questions answered

The full set of error and checker guides.

Where to get a dedicated line

A Coronium mobile proxy is one physical device with its own SIM, rented to one customer. It connects over HTTP or SOCKS5, the IP changes by dashboard button, API link or timer, and data is not metered on dedicated lines. Brazil lines are the exception: 20 GB of data a month and a new IP on request only, with no timer. Stock and prices differ by country and carrier.