Comprendre comment l'API signale les erreurs vous aide à réagir rapidement et à maintenir la résilience de votre intégration. L'API Fit It On classe les erreurs en deux phases distinctes :
- Erreurs au niveau de l'API : La requête a été rejetée immédiatement avant l'émission d'un ID de prédiction.
- Erreurs d'exécution : La requête a été acceptée et un ID de prédiction a été renvoyé, mais la génération a échoué pendant le traitement asynchrone.
Erreurs au niveau de l'API
Les erreurs au niveau de l'API se produisent de manière synchrone. Lorsque vous effectuez une requête POST vers /v1/run ou une requête GET vers /v1/status/{id}, le serveur valide la requête avant de commencer tout travail de fond intensif.
Si la validation échoue, l'API renvoie un statut d'erreur HTTP (par exemple, 400, 401), et la réponse JSON contient un message error et un code de chaîne spécifique.
{
"error": "Invalid request payload. Expected { model_name, inputs }",
"code": "BadRequest"
}Codes d'erreur standard
| Code | Erreur | Cause | Comment résoudre |
|---|---|---|---|
| 400 | Requête incorrecte | Format de requête invalide ou nom de modèle non pris en charge | Vérifiez la structure JSON, assurez-vous que model_name est correct et vérifiez que toutes les entrées requises sont fournies. |
| 401 | Accès non autorisé | Clé API invalide ou manquante | Vérifiez que l'en-tête Authorization: Bearer YOUR_API_KEY est correct et que la clé est active. |
| 402 | Plus de crédits | Plus de crédits API développeur restants | Rechargez vos crédits dans le tableau de bord Fit It On avant de réessayer. |
| 403 | Interdit | Accès non autorisé à la prédiction | Vous tentez de vérifier le statut d'une prédiction créée par une clé de développeur différente. |
| 404 | Non trouvé | Prédiction non trouvée | Confirmez que l'ID de prédiction est correct lors de l'interrogation du point de terminaison de statut. |
| 413 | Charge utile trop volumineuse | La charge utile dépasse les limites | Assurez-vous que les images d'entrée sont inférieures à 25 Mo et utilisent des résolutions raisonnables. |
| 500 | Erreur interne du serveur | Erreur côté serveur | Réessayez avec un délai d'attente exponentiel. Contactez le support si le problème persiste. |
[!TIP] Nouvelles tentatives et idempotence Si vous rencontrez une erreur au niveau de l'API, vous pouvez réessayer en toute sécurité la même charge utile une fois le problème résolu. Étant donné que la requête a été rejetée immédiatement, aucun crédit n'a été déduit et le traitement en double ne présente aucun risque.
Erreurs d'exécution
Les erreurs d'exécution se produisent après que l'API a accepté votre requête avec succès et renvoyé un ID de prédiction.
Étant donné que les modèles de génération sont fortement asynchrones, vous découvrirez ces erreurs en interrogeant le point de terminaison /v1/status/{id}. Si une tâche en arrière-plan échoue, le point de terminaison renvoie un HTTP 200 OK (car la requête d'interrogation elle-même a réussi), mais le champ status à l'intérieur de la charge utile sera "failed".
La réponse inclura l'ID de prédiction et un objet error détaillant ce qui n'a pas fonctionné, y compris un name catégorisé et un message descriptif.
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"status": "failed",
"output": null,
"error": {
"name": "ImageLoadError",
"message": "Failed to load input image: URL returned 404"
},
"created_at": "2024-05-15T12:00:00Z",
"updated_at": "2024-05-15T12:00:10Z"
}Erreurs d'exécution courantes
La plupart des problèmes d'exécution se répartissent en quelques catégories communes à nos modèles :
| Catégorie | Messages d'erreur typiques | Comment résoudre |
|---|---|---|
| Erreur de chargement d'image | Échec de la récupération de l'image, URL d'image invalide | Assurez-vous que les URL fournies sont accessibles publiquement sans authentification. Pour Base64, assurez-vous qu'il inclut le préfixe de type MIME correct. |
| Validation des entrées | Résolution d'image trop petite, Paramètre requis manquant | Assurez-vous que vos ressources d'entrée respectent les dimensions minimales et les exigences du modèle spécifique. |
| Modération de contenu | Contenu NSFW détecté, Blocage de sécurité déclenché | Remplacez ou ajustez l'image d'entrée ou l'invite de texte pour vous conformer aux filtres de sécurité. |
| Erreur de pipeline | Échec de la génération, Erreur serveur | Une défaillance inattendue s'est produite dans le cluster GPU. Réessayez la requête avec un délai d'attente exponentiel. |
[!NOTE] Remboursement des crédits en cas d'échec Les prédictions échouées ne consomment pas de crédits. Si une génération échoue pendant l'exécution (par exemple, en raison d'une Erreur de chargement d'image ou d'une Erreur de pipeline), les crédits déduits au début de la requête sont automatiquement remboursés sur votre solde de développeur.
Erreurs spécifiques aux points de terminaison
Certains modèles ont des règles de validation strictes, spécifiques au flux de travail, qui s'exécutent pendant la génération :
- Contrôle de pose : Échouera si aucun corps humain n'est détecté dans l'image cible.
- Essayage virtuel : Échouera s'il ne peut pas détecter un vêtement valide dans l'image du vêtement.
- Génération de modèle : Échouera si l'image de référence de visage fournie ne contient pas un visage clair et dégagé.
Si vous continuez à rencontrer des échecs d'exécution après avoir aligné les entrées avec la documentation, veuillez contacter le support avec votre ID de prédiction afin que nous puissions enquêter.
