Erreurs de l’API solvethree : que corriger et quand réessayer
Commencez par le statut HTTP. Un 401 signifie que l’API a rejeté vos identifiants ; une tâche récupérée avec le statut failed signifie que la requête a réussi, mais pas la résolution. Les correctifs sont différents.
Sur cette page
Corrigez l’erreur HTTP avant de lire le résultat d’une tâche
Traitez les réponses HTTP qui n’indiquent pas un succès avant de lire les données de réussite. Pour POST /v1/tasks, 201 signifie qu’une nouvelle tâche a été créée ; 200 signifie qu’un renvoi idempotent a retourné la tâche existante. Aucune de ces réponses ne signifie que la résolution est terminée.
- 400 — corps de requête invalide
Comparez le corps soumis aux champs et aux exigences documentés pour votre type de tâche.
Essayez ceci : Corrigez les données avant de soumettre à nouveau la requête. Renvoyer un corps invalide sans le modifier ne corrigera pas le problème. Utilisez le contrat de création des tâches pour vérifier la requête.
- 401 — clé API invalide
Vérifiez que la requête inclut
Authorization: Bearersuivi d’une clé API valide de l’espace de travail.Essayez ceci : Ajoutez la clé manquante ou corrigez la clé rejetée. Conservez-la sur le serveur plutôt que de l’exposer dans le code du navigateur.
- 402 — crédit insuffisant
Vérifiez le solde de crédit de l’espace de travail associé à la clé API.
Essayez ceci : Ajoutez du crédit à cet espace de travail avant de réessayer. Ne considérez pas les erreurs HTTP ou les échecs de tâches sans rapport comme des problèmes de solde.
- 403 — profil de site inactif
Pour reCAPTCHA, vérifiez que le site cible dispose d’un profil actif accessible à votre espace de travail.
Essayez ceci : Configurez le site cible dans la console et vérifiez que le profil est actif. Fournir un nom d’hôte et une action dans la tâche ne crée pas de profil. Cette réponse de la passerelle ne prouve pas que le site web cible vous a bloqué.
- 409 — conflit d’identifiant de requête
Vérifiez si le même
requestIda déjà été utilisé avec des données de tâche différentes.Essayez ceci : Utilisez les données d’origine pour récupérer la tâche d’origine. Si vous souhaitez créer une tâche différente, attribuez-lui un nouvel identifiant de requête.
- 410 — résultat stocké expiré
Vérifiez si vous tentez de récupérer une tâche terminée dont le résultat stocké n’est plus conservé.
Essayez ceci : Arrêtez de demander ce résultat. Lancez une nouvelle résolution si vous en avez encore besoin. Ce statut concerne la conservation des résultats de l’API, pas la durée de validité du jeton ou du cookie cible.
- 429 — limite de débit atteinte
Lisez la valeur
Retry-Aftereffectivement renvoyée dans la réponse.Essayez ceci : Attendez la durée indiquée avant de réessayer et réduisez le débit des requêtes. Ne continuez pas à interroger ou à soumettre au même rythme pendant que la limitation s’applique.
- 502 — service de génération indisponible
Distinguez l’indisponibilité du service des données invalides ou d’un crédit insuffisant.
Essayez ceci : Réessayez plus tard. Pour une nouvelle tentative de la même requête de création, réutilisez son identifiant de requête et les données de tâche inchangées.
HTTP 503 signifie qu’aucune capacité de génération n’est disponible. Réessayez plus tard ; pour la même requête de création, réutilisez son identifiant de requête et les données de tâche inchangées.
Une tâche en échec est terminée : arrêtez de l’interroger
pendingousolving: continuez à interroger la tâche existante ; n’en créez pas une autre simplement parce qu’elle n’est pas prête.ready: arrêtez l’interrogation et lisez la solution.failed: arrêtez l’interrogation et examinezerrorCodeeterror.
{
"id": "example_login_001",
"status": "failed",
"errorCode": "site-unreachable",
"error": "target page did not respond"
}Ici, site-unreachable est un code d’erreur de tâche, pas un statut HTTP. Vérifiez l’URL cible soumise et assurez-vous que la page répond avant de demander une autre résolution. Des interrogations supplémentaires ne relanceront pas cette tâche en échec, et renvoyer son identifiant de requête d’origine retourne la tâche existante au lieu d’en lancer une nouvelle.
Après un dépassement du délai de création, récupérez la tâche avant de soumettre à nouveau
Un délai de connexion dépassé ne prouve pas que la création de la tâche a échoué. Utilisez un requestId facultatif avant votre première tentative de création pour pouvoir récupérer la même tâche logique en toute sécurité. Il doit contenir de 1 à 64 lettres ASCII, chiffres, traits de soulignement ou traits d’union.
- 1.
Si vous avez l’identifiant de la tâche, récupérez-la
Utilisez
GET /v1/tasks/:idet traitez la réponse HTTP avant de vérifier le statut de la tâche. - 2.
Si la réponse de création a été perdue, renvoyez la requête d’origine
Soumettez les mêmes données de tâche avec le même identifiant de requête. Le renvoi idempotent retourne la tâche existante si elle a été créée. Ne modifiez pas les données associées à cet identifiant.
- 3.
Ne créez une tâche de remplacement que si vous souhaitez lancer une autre résolution
Un nouvel identifiant de requête représente un nouveau travail, pas la récupération de la requête précédente. Utilisez-le délibérément, par exemple après avoir examiné un échec définitif et décidé de réessayer.
Consultez la récupération par identifiant de requête pour gérer les renvois, ou l’interrogation et les délais d’attente lorsque la création a réussi mais que la tâche est toujours en cours.
Sources et référence de l’API
Toujours bloqué ?
Envoyez au support l’ID de votre tâche et l’erreur reçue.