Description
Describe the bug
In short, output suggests we are successfully solving a captcha, but I see no indication that that's the case. I don't understand.
I'm setting up the plugin like this:
const recaptchaPlugin = RecaptchaPlugin({
provider: {
id: '2captcha',
token: recaptchaApiKey
},
visualFeedback: true
throwOnError: false, // Don't throw on error, we'll handle it
solveScoreBased: true,
solveInactiveChallenges: true
});
I'm then calling:
let result = await this.page.solveRecaptchas();
console.log(`📊 Initial scan result:`, JSON.stringify(result, null, 2));
And getting:
"captchas": [
{
"sitekey": "6LcIy_MqAAAAAMKiupFSbmzW3xjGSlIfRzNWYMjC",
"_vendor": "recaptcha",
"id": "gljhdfu0jk4q",
"s": null,
"widgetId": 100000,
"display": {
"size": "invisible",
"top": 740,
"left": 0,
"width": 1240,
"height": 0,
"theme": null
},
"url": "...",
"hasResponseElement": true,
"isEnterprise": true,
"isInViewport": true,
"isInvisible": true,
"_type": "score",
"hasActiveChallengePopup": false,
"hasChallengeFrame": false
}
],
"filtered": [],
"solutions": [
{
"_vendor": "recaptcha",
"provider": "2captcha",
"id": "gljhdfu0jk4q",
"requestAt": "2025-06-06T13:31:40.064Z",
"providerCaptchaId": "79806597770",
"text": "...",
"responseAt": "2025-06-06T13:31:55.230Z",
"hasSolution": true,
"duration": 15.166
}
],
"solved": [
{
"_vendor": "recaptcha",
"id": "gljhdfu0jk4q",
"responseElement": true,
"responseCallback": false,
"isSolved": true,
"solvedAt": "2025-06-06T13:31:55.241Z"
}
]
}
After this, the captcha looks the same, no feedback:
If I click the puzzle, even the correct one, I get "Your noCAPTCHA user response code is missing or invalid."
Versions
System:
OS: macOS 13.6
CPU: (8) arm64 Apple M2
Memory: 74.44 MB / 8.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 23.10.0 - /opt/homebrew/bin/node
Yarn: 1.22.19 - /opt/homebrew/bin/yarn
npm: 10.9.2 - /opt/homebrew/bin/npm
Watchman: 2025.03.10.00 - /opt/homebrew/bin/watchman
npmPackages:
playwright: ^1.42.1 => 1.52.0
playwright-extra: ^4.3.6 => 4.3.6
puppeteer-extra-plugin-recaptcha: ^3.6.8 => 3.6.8
puppeteer-extra-plugin-stealth: ^2.11.2 => 2.11.2