Gravity form recaptcha not working

Gravity form recaptcha addons not working.

I’ve also started having this issue in the last couple days, but site was working fine for years.

First, if you are using the reCAPTCHA Add-On, be sure the CAPTCHA field is not present in the form. If you do not have the reCAPTCHA plugin installed, you must add the CAPTCHA field to the form. Once that is correct, be sure the page is not cached. We recommend clearing any cache on the site after updating Gravity Forms, and disabling caching for pages where a Gravity Forms form is embedded.

If the reCAPTCHA still does not work after that, please perform a conflict test using these steps:

Thank you.

@chrishajer I don’t think it’s a coincidence that lots of users are reporting issues with reCAPTCHA since the latest update. Especially when users are reporting that their setup worked perfectly fine for years prior.

Most issues are caused by caching/optimization, the Gravity Forms documentation recommends excluding pages that include forms from those features: FAQ on Cache and Script Optimizer Issues - Gravity Forms Documentation

After that the next most common cause is a conflict. One of the most common conflicts at the moment is the theme or another plugin using the gform_submit_button filter to implement a custom button and not retaining the attributes from the original button. Specifically, there should be an onclick attribute that triggers the form submission scripts. Among other tasks, those scripts also handle blocking duplicate submissions and triggering integrations like reCAPTCHA.

If your issue isn’t caused by caching, optimization, or a conflict, please open a support ticket.

In my case, the issues were caused by the reCAPTCHA plugin using a different trigger in 2.9 (gform/postRender instead of gform_post_render). If any custom code triggers only the latter, reCAPTCHA no longer functions. It might not be the cause of your issue, but it was nothing to do with caching.

It seems we now have a less than ideal situation where we need to trigger all of them because all or some of them might be used. In GF’s code it actually triggers three of them
“gform_post_render”, “gform/postRender” and “gform/post_render”.