Identifiez et résolvez rapidement vos incidents techniques. Cette section répertorie les codes d'erreur de l'API AlphaEdge, leurs causes et les solutions de correction.
En-têtes utiles à toutes les erreurs
X-Request-ID— identifiant unique présent sur toute réponse (auto-généré ou écho de la valeur envoyée par le client). À transmettre au support pour faciliter la corrélation côté serveur. Sur une erreur 500, l'identifiant est aussi dupliqué dans le corps JSON :{"detail": "...", "request_id": "..."}.Retry-After— présent sur les réponses 429, 502, 503 et 504. Donne la durée recommandée d'attente (en secondes) avant un retry. Respectez cette valeur côté client (backoff).
Les messages d'erreur émis par la passerelle sont en français. Quelques messages 404 / 405 par défaut (« Not Found », « Method Not Allowed ») restent en anglais — il s'agit du fallback standard FastAPI.
List of error codes
Requête mal formée
Cause : Format du corps de requête invalide (rare : la passerelle privilégie la 422 pour les paramètres incorrects).
Solution : Vérifiez que le corps respecte le content-type annoncé. Pour les requêtes multipart, laissez le client (curl -F, requests, fetch+FormData) générer le boundary.
Authentification échouée
Cause : Clé API absente, vide ou invalide.
Message typique : {"detail": "Clé API manquante : fournissez l’en-tête X-API-Key ou Authorization: Bearer <clé>."}
Solution : Vérifiez votre clé. Deux en-têtes sont acceptés : X-API-Key: TA_CLE or Authorization: Bearer TA_CLE. Si vous n'en avez pas, créez une clé sur votre tableau de bord.
Solde insuffisant
Cause : Le solde du compte ne permet pas de couvrir le coût estimé de la requête.
Solution : Rechargez votre compte depuis le tableau de bord. Vous pouvez aussi consulter votre consommation via GET /account/usage.
Accès interdit
Cause : Hôte non autorisé : appel par IP brute, mauvais domaine, ou tentative d'accès à une route interne (ex. GET /health) depuis l'extérieur.
Message typique : {"detail": "Utiliser le nom de domaine « api-endpoints.alphaedge-ai.com » dans l’URL…"}
Solution : Toujours appeler l'API via le nom de domaine public https://api-endpoints.alphaedge-ai.com.
Ressource introuvable
Cause : Slug de modèle inexistant, identifiant de job inconnu, ou URL non routée.
Messages typiques :
{"detail": "Modèle introuvable."}{"detail": "Job de transcription introuvable."}{"detail": "Not Found"}(fallback FastAPI pour les URL non routées)
Solution : Vérifiez le slug du modèle (catalogue via GET /models) et la forme de l'URL (méthode, path, paramètres de chemin).
Méthode non autorisée
Cause : La méthode HTTP utilisée n'est pas supportée sur cette route (ex. GET sur un endpoint POST-only).
Solution : Consultez l'en-tête de réponse Allow qui liste les méthodes acceptées pour la route.
Paramètres invalides
Cause : Le multipart contient des champs non autorisés, le fichier requis est absent ou vide, ou une valeur booléenne ne fait pas partie des valeurs acceptées.
Exemples de messages :
{"detail": "Champ booléen invalide pour `enable_diarization`: 'banane'. Valeurs acceptées : 1/0, true/false, yes/no, on/off."}{"detail": "Formulaire multipart invalide : champs autorisés = `audio` (fichier requis), `enable_diarization`, `enable_postcorrect`. Tout autre champ est refusé."}{"detail": "Fichier audio illisible ou format non reconnu."}
Solution : Adaptez le formulaire selon le message renvoyé : nom de champ exact (audio / image), valeurs booléennes parmi 1/0, true/false, yes/no, on/off.
Trop de requêtes
Cause : Cas rare aujourd'hui (aucun rate-limit applicatif côté gateway). Peut être renvoyé par les couches réseau en amont si une protection est activée.
Solution : Respectez l'en-tête Retry-After renvoyé (5 s par défaut). Implémentez un backoff exponentiel avec jitter pour les retries.
Erreur interne du serveur
Cause : Le serveur rencontre un problème non rattrapé.
Solution : Réessayez après une brève attente. Le corps JSON inclut un champ request_id (identique au header X-Request-ID) — transmettez-le au support pour faciliter l'investigation.
Erreur de service en aval
Cause : Le service amont (ASR ou OCR) a renvoyé une erreur que la passerelle ne peut pas traduire en code applicatif.
Solution : Réessayez ; un en-tête Retry-After (5 s) accompagne la réponse. Si le problème persiste, contactez le support avec le X-Request-ID.
Service indisponible
Cause : Démarrage en cours, surcharge ou maintenance ponctuelle.
Solution : Respectez l'en-tête Retry-After (10 s par défaut). En cas de pic de trafic, implémentez un backoff exponentiel avec jitter.
Timeout en amont
Cause : La passerelle n'a pas pu joindre le service de vérification de clé ou un service amont à temps.
Solution : Réessayez après Retry-After (5 s). Si le problème persiste, contactez le support avec le X-Request-ID.
Best practices
To avoid errors and improve your application's robustness:
- Error handling : Capturez tous les codes 4xx et 5xx et inspectez le champ
detaildu corps JSON pour un message explicite (en français). - Retry logic : Sur 429 / 502 / 503 / 504, respectez le header
Retry-After. À défaut, utilisez un backoff exponentiel avec jitter. - Validation : Validez vos paramètres avant l'envoi pour éviter les 422.
- Traçabilité : Conservez le header
X-Request-IDrenvoyé par chaque réponse. Pour pré-générer un identifiant client, envoyez votre propreX-Request-IDen amont : il sera repris tel quel dans la réponse. - Monitoring : Surveillez votre solde régulièrement via
GET /account/mepour éviter les 402.