Skip to main content
Question

Google reCaptcha Enterprise keeps spinning endlessly

  • Feb 20, 2026 2:21 PM UTC
  • 1 reply
  • 365 views

andranik.ayvazyan

Hello dear community, 

 

We are using  “I’m not a robot” checkbox from Google reCaptcha Enterprise and currently facing some issues from time to time. I hope the community and Google team can assist here.

Sometimes our users encountering endless spinning on reCaptcha checkbox after clicking it. Some users waited 30, 40 seconds, then had to refresh the page and try again to click (later it passed well).

  • Browser - Chrome
  • No blocking extensions, happened also in incognito mode
  • Not a case of additional challenge by reCaptcha, just keeps loading 

Below you can see a screenshot of it’s loading, taken after 30 seconds right after the click on the checkbox.

 

 

Did anyone else experienced this? I would appreciate any suggestions or solutions. Thank you!

1 reply

ihor.voronin
  • New Member
  • Nov 10, 2026 8:49 PM UTC

We hit the same symptom: the checkbox spins forever after clicking, no challenge opens, and no network requests follow. In our case the cause was a language mismatch.

The widget hangs when the hl passed to grecaptcha.render() differs from the language api.js was loaded in. If api.js is loaded without hl, it follows the browser language. Matching languages work.

Minimal repro with Google's test key, in an English browser:

 

<div id="w"></div>
<script>
window.onApiLoaded = () => grecaptcha.render('w', {
sitekey: '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI',
hl: 'nl', // hangs; remove this line, or add &hl=nl to the api.js URL, and it solves
callback: () => alert('solved')
});
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=onApiLoaded&render=explicit" async></script>

We saw it hang for nl, de, fr, zh and zh-TW, and work for en, es and ja. It started around 2026-11-01 for us, with no change on our side.

Workaround: don't pass hl to render() (or the hl option of whatever wrapper you use), so the widget inherits the api.js language. Alternatively, load api.js with the same hl.

We've reported it to Google through the private issue form. If you're seeing intermittent spinning, check whether you set hl on the widget, and whether the affected users' browser language differs from it.