{"record":{"id":"5bcbbb5f6e00e42f","repo":"projectdiscovery/katana","slug":"unsupported-captcha-provider-for-injection-s","errorCode":null,"errorMessage":"unsupported captcha provider for injection: %s","messagePattern":"unsupported captcha provider for injection: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/engine/headless/captcha/captcha.go","lineNumber":81,"sourceCode":"func injectToken(page *rod.Page, solution *Solution) error {\n\tjs, err := injectionScript(solution.Provider)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = page.Eval(js, solution.Token)\n\treturn err\n}\n\nfunc injectionScript(provider Provider) (string, error) {\n\tswitch provider {\n\tcase ProviderRecaptchaV2, ProviderRecaptchaV3, ProviderRecaptchaV2Enterprise, ProviderRecaptchaV3Enterprise:\n\t\treturn captchajs.InjectRecaptchaJS, nil\n\tcase ProviderTurnstile:\n\t\treturn captchajs.InjectTurnstileJS, nil\n\tcase ProviderHCaptcha:\n\t\treturn captchajs.InjectHCaptchaJS, nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"unsupported captcha provider for injection: %s\", provider)\n\t}\n}\n","sourceCodeStart":63,"sourceCodeEnd":84,"githubUrl":"https://github.com/projectdiscovery/katana/blob/e3e742739c3746f085943ce918fb4e2b8daf6fe6/pkg/engine/headless/captcha/captcha.go#L63-L84","documentation":"injectionScript maps a captcha.Provider to its token-injection JavaScript (reCAPTCHA, Turnstile, hCaptcha). If the provider is not one of the known cases, the switch's default returns this error. It means the library has no injection strategy for the detected provider.","triggerScenarios":"Provider value outside {RecaptchaV2, V3, V2Enterprise, V3Enterprise, Turnstile, HCaptcha} reaches injectionScript, typically via injectToken from solveCaptcha after Identify produced an exotic/unknown provider.","commonSituations":"A new captcha vendor detected on a target page that the injection switch doesn't cover; custom/unknown provider constants; a solver returned a Solution with a provider the injection layer doesn't support yet.","solutions":["Update katana so the provider is covered by both the solver (taskTypes) and injectionScript switch","Use a supported provider/solver combination (recaptcha v2/v3 + enterprise, turnstile, hcaptcha)","If you detect an unsupported captcha, skip solving for that target instead of calling Solve","Log the provider string and open an issue requesting support for that vendor"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"supportedProviders := map[string]bool{\n\t\"recaptchav2\": true, \"recaptchav3\": true,\n\t\"recaptchav2enterprise\": true, \"recaptchav3enterprise\": true,\n\t\"turnstile\": true, \"hcaptcha\": true,\n}\nif !supportedProviders[strings.ToLower(detectedProvider)] {\n\t// skip captcha solving for this target\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Only enable captcha solving for known provider types","Update katana when new captcha vendors appear in targets","Log unsupported providers to track demand for support"],"tags":["captcha","unsupported-provider","injection"],"backgroundTag":"unsupported-captcha-provider","analyzedSha":"e3e742739c3746f085943ce918fb4e2b8daf6fe6","analyzedAt":"2026-09-03T14:55:13.248Z","contentChangedAt":"2026-09-03T14:55:13.248Z","schemaVersion":2},"datasetVersion":"2026-09-10T17:17:09.494Z"}