47

I'm getting incorrect-captcha-sol error code sometime while using Google reCAPTCHA server side verification api.

I have integrated google recaptcha validation to some of my apis.

To do so, I pass recaptcha token on these api requests from client side and then verify it on server side by following server side validation of recaptcha.

I am getting recaptcha token by executing below code and pass this token to my api request header:

const getRecaptchaToken = () => {
  return new Promise((resolve, reject) => {
    try {
      if (window.grecaptcha && typeof window.grecaptcha.execute === "function") {
        grecaptchaExecute(window.grecaptcha.execute);
      } else {
        window.grecaptcha.ready(async () => {
          grecaptchaExecute(window.grecaptcha.execute);
        });
      }

      // grecaptcha execute action
      async function grecaptchaExecute(ExecuteAction) {
        const captchaToken = await ExecuteAction(
          xxxxxx, // my recaptcha site key
          {
            action: "submit",
          }
        );
        return resolve(captchaToken);
      }
    } catch (error) {
      return reject(error);
    }
  });
};

Then, on server side I call:

`https://www.google.com/recaptcha/api/siteverify?secret=${secret_key}&response=${captchaToken}`;

Most of time it is working fine, but some of calls randomly fail and return incorrect-captcha-sol error code.

Since it's happening randomly, I don't have a good idea when it is occurring and why. Also, I can't find the any details about this error code in the recaptcha documentations.

Any Ideas?

8
  • 1
    Not sure if this is your issue but I got this error when I was using a website that did not have HTTPS.
    – Greg
    Aug 9, 2021 at 17:57
  • 1
    same issue here. I am using HTTPS and still getting it from time to time (less than 1% of requests).
    – Matanya
    Oct 5, 2021 at 6:43
  • I have the same problem, I read all related topics but didn't find any solution I also couldn't re generate the exception to find out what can we do in these cases. maybe getting a new token from google or something else. did you find any solution for that ? Oct 15, 2021 at 12:26
  • 1
    This link provides info about multiple ways you can get the error. So if you are doing testing several times a day then you might get the error cos their analytics might think you are a bot. Repasting the link so that people who can not see deleted answers get the info.
    – the Hutt
    Feb 12, 2022 at 14:13
  • 1
    [verifyCaptcha] { "success": false, "error-codes": [ "incorrect-captcha-sol" ]} i have experience when handle it, its because whitelist url. Oct 22, 2022 at 16:19

1 Answer 1

0

If it happens randomly and most of time it works fine you can usetry function so if it receives an incorrect-captcha-sol it will repeat until the code will work normally. Here is the code:

try {
   function Captcha(){
      const getRecaptchaToken = () => {
      return new Promise((resolve, reject) => {
      try {
      if (window.grecaptcha && typeof window.grecaptcha.execute === "function") {
        grecaptchaExecute(window.grecaptcha.execute);
      } else {
        window.grecaptcha.ready(async () => {
          grecaptchaExecute(window.grecaptcha.execute);
        });
      }
      // grecaptcha execute action
      async function grecaptchaExecute(ExecuteAction) {
        const captchaToken = await ExecuteAction(
          APIKEY, 
          {
            action: "submit",
          }
        );
        return resolve(captchaToken);
      }
    } catch (error) {
      return reject(error);
    }
  });
};
    }
 } catch (error) {

  Captcha();
 }

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.