Périmètre sûr : ce guide s'applique exclusivement à vos propres applications, à vos environnements de QA, de préproduction ou de production, ou à des systèmes que vous êtes autorisé à tester par écrit. Il ne couvre ni l'automatisation de sites tiers, ni les techniques destinées à échapper aux protections anti-bot.
Un flux d'automatisation qui touche un CAPTCHA finit toujours par échouer en dehors du chemin idéal : clé mal copiée, token appliqué dans la mauvaise session, timeout réseau au pire moment. Cet aide-mémoire rassemble ce qui compte en production : les codes d'erreur de l'API CaptchaAI, leurs correctifs, les KPI et la checklist à citer en revue de code. L'objectif : rendre le flux assez stable pour s'exécuter sans surveillance en CI, dans un cron ou derrière une file d'attente.
Pourquoi structurer la gestion des erreurs CAPTCHA
Une intégration CAPTCHA paraît triviale, puis casse dès qu'elle tourne sans supervision. Il vous faut une latence prévisible, des modes d'échec propres et un code relu en cinq minutes. CaptchaAI répond à ce besoin : une API unique couvrant les principales familles (reCAPTCHA v2 et v3, Cloudflare Turnstile et Challenge, GeeTest v3, image/OCR, grilles d'images) et une facturation par thread qui ne pénalise pas la montée en volume.
Le workflow de résolution, étape par étape
L'ordre des étapes absorbe déploiements, coupures réseau et changements de famille CAPTCHA sur la page :
- Capturez le strict nécessaire : les paramètres attendus par la famille CAPTCHA (sitekey, URL de la page, action, proxy éventuel). En stocker plus ouvre de fausses pistes.
- Envoyez la tâche à
https://ocr.captchaai.com/in.phpavecjson=1. Traitez tout statut différent de1comme une erreur et journalisez la réponse. - Interrogez le résultat sur
https://ocr.captchaai.com/res.php: attendez 15 s, puis toutes les 5 s, avec un plafond de 120 s par tâche. - Injectez le token dans la même session que celle ayant déclenché le défi (même contexte navigateur, même client HTTP, même cookie jar). Une session dépareillée est la première cause de rejet.
- Suivez latence, retries et acceptation en aval : réussite de la résolution et réussite du workflow sont deux métriques distinctes.
Codes d'erreur de l'API CaptchaAI et correctifs
Ces codes couvrent l'essentiel des tickets ; chaque ligne est un correctif direct.
| Symptôme | Cause probable | Correctif |
|---|---|---|
ERROR_WRONG_USER_KEY |
Clé copiée avec un espace parasite ou mauvais compte. | Recopiez la clé et stockez-la en secret CI. |
ERROR_KEY_DOES_NOT_EXIST |
Clé de projet erronée ou clé ayant subi une rotation. | Confirmez la clé active et faites tourner le secret. |
ERROR_ZERO_BALANCE |
Solde sous le minimum requis par tâche. | Rechargez et ajoutez une alerte de solde. |
ERROR_PAGEURL / ERROR_BAD_PARAMETERS |
Paramètre requis manquant ou mal formé. | Revalidez URL, sitekey et champs du solveur face au HTML réel. |
ERROR_CAPTCHA_UNSOLVABLE |
Défi non résolu de façon fiable. | Réessayez une fois ; sinon, capturez le HTML et ouvrez un ticket. |
| Token refusé après résolution | Token injecté dans une session différente du défi. | Gardez résolution et envoi dans le même contexte ou la même session HTTP. |
Les KPI à instrumenter dans vos tableaux de bord
Câblez ces KPI dans le tableau de bord de votre application pour repérer les régressions. Les cibles ci-dessous sont des objectifs à fixer ; les résultats varient selon l'environnement et le volume.
| KPI | Cible à viser | Ce qu'il révèle |
|---|---|---|
| Latence de résolution (p50) | < 25 s pour les CAPTCHA à token, < 8 s pour l'OCR d'image | Intégration saine, sans attente sur retries. |
| Latence de résolution (p95) | < 60 s pour les CAPTCHA à token | Traîne contenue, timeouts bien dimensionnés. |
| Taux de réussite du solveur | seuil d'alerte à 95 % par famille | Entrées correctes, solveur aligné sur le défi réel. |
| Acceptation de bout en bout | seuil d'alerte à 95 % après token | Token accepté en aval, dans la bonne session. |
| Coût par résolution acceptée | stable sur la semaine | Ni retries ni paramètres erronés n'érodent la marge. |
Configuration des secrets et déploiement des workers
La clé CaptchaAI vit dans un coffre (HashiCorp Vault, AWS Secrets Manager, Azure Key Vault) ou un secret CI, jamais dans le code source ; le déploiement la monte en variable d'environnement. Si vos workers tournent chez OVHcloud, Scaleway ou dans une région AWS européenne comme eu-west-3 (Paris), tenez compte de la latence réseau pour vos timeouts. Minimisez les données personnelles dans les journaux et vérifiez vos obligations RGPD.
Exemple de code : vérifier le solde
Extrait de votre propre suite de tests :
import os
import requests
API_KEY = os.environ['CAPTCHAAI_KEY']
def get_balance() -> float:
resp = requests.post(
'https://api.captchaai.com/getBalance',
json={'clientKey': API_KEY},
timeout=15,
)
resp.raise_for_status()
return float(resp.json().get('balance', 0))
Observabilité et journalisation
Instrumentez chaque appel CAPTCHA — durée d'obtention du token, code retour HTTP, identifiant de tâche — et corrélez ces identifiants à votre traçage distribué (OpenTelemetry). Vous rejouez alors un incident à partir d'un identifiant unique, divisant par deux le temps de diagnostic.
Liste de contrôle avant la revue de code
- Périmètre limité à vos propres applications ou à des sources autorisées.
- Clé CaptchaAI stockée en secret CI ou en coffre, jamais dans le code source.
- Entrées envoyées au solveur validées face au HTML réel de la page.
- Durées d'appel, codes retour et identifiants de corrélation tracés à chaque exécution.
- Retry idempotent plafonné à trois tentatives avec backoff exponentiel.
- Réussite du solveur et acceptation en aval suivies séparément, avec alerte sur l'écart.
FAQ
Comment distinguer un échec de résolution d'un échec de workflow ?
Un échec de résolution survient quand l'API ne renvoie pas de token exploitable ; un échec de workflow, quand un token valide est refusé en aval. Un taux de réussite élevé mais une acceptation faible signale un problème de session, pas le solveur.
Que faire quand un token est refusé après une résolution réussie ?
Symptôme classique d'une session dépareillée : vérifiez que le token est injecté dans le même contexte navigateur ou la même session HTTP que le défi, avec le même cookie jar, et qu'il n'a pas expiré.
Faut-il tout reconfigurer quand le type de CAPTCHA change sur la page ?
Non. CaptchaAI expose une API unique : vous changez le method (ou le type de tâche) et gardez la même boucle envoi/interrogation. Le coût reste prévisible : facturation par thread simultané avec résolutions illimitées, à partir de BASIC ($15/mois, 5 threads).
Quel budget de retry adopter pour les erreurs transitoires ?
Plafonnez à trois tentatives avec un backoff exponentiel borné (délai doublé à chaque essai, plafond à 30 s), puis tracez l'échec avec son identifiant de tâche. Des retries infinis masquent les vrais défauts et consomment du solde.
Guides connexes
- Le démarrage rapide CaptchaAI
- QA CAPTCHA en environnements autorisés
- Tester l'endpoint API sur vos formulaires
- Gestion CAPTCHA en intégration continue
- Résoudre reCAPTCHA v2 via l'API
Instrumentez l'intégration comme décrit ici, alignez vos retries sur les codes d'erreur documentés, et la longue traîne des tickets CAPTCHA disparaît. – Obtenez votre clé CaptchaAI.