Exemple de réponse d’erreur
Champs toujours présents
generation_id: identifiant de requête stable que vous pouvez communiquer au support.status_code: correspond au code d’état HTTP.error: code lisible par machine, commevalidation_error.error_type: catégorie générale, généralementuserousystem.error_origin: indique si le problème provient principalement de l’appelant, de Phaseo ou d’un fournisseur en amont.description: explication claire de ce qui s’est passé.details(facultatif) : détails de validation structurés lorsque l’erreur concerne une requête invalide.
Autres champs possibles
Certaines erreurs fournissent des détails supplémentaires pour accélérer le diagnostic :reason: sous-motif plus précis, commeall_candidates_failedoupricing_not_configured.provider_candidate_diagnosticsetprovider_enablement: expliquent pourquoi un modèle n’a pas pu être utilisé avec le point de terminaison demandé.routing_diagnostics: précisions sur la manière dont le routage ou les contrôles de disponibilité ont réduit les options.provider_failure_diagnostics: indications concernant des identifiants manquants, un accès refusé, des restrictions régionales, des limites de débit ou d’autres échecs côté fournisseur.upstream_erroretfailure_sample: résumé au mieux du premier échec fournisseur, si la requête a atteint un fournisseur.failed_providers,failed_statusesetattempt_count: contexte supplémentaire sur les nouvelles tentatives et le basculement.
Interpréter les classes de statut
Codes d’erreur courants
En cas d’échec d’un fournisseur
Si Phaseo a atteint un fournisseur, mais que la requête a échoué, vous pouvez voir :provider_failure_diagnostics.categoryprovider_failure_diagnostics.hintprovider_failure_diagnostics.provider
credentials_not_configuredcredentials_invalid_or_forbiddenprovider_access_missingregion_or_project_restrictionmodel_unavailable_for_endpointrate_limitedserver_error
Lorsqu’un modèle ou un point de terminaison est indisponible
Pour une réponseunsupported_model_or_endpoint, Phaseo peut inclure :
provider_candidate_diagnosticsprovider_enablementmissing_pricing_providersrouting_diagnostics
- un modèle connu qui n’est pas encore actif
- un modèle incompatible avec le point de terminaison demandé
- l’absence de données de tarification
- des restrictions de déploiement ou de disponibilité interne
provider_candidate_diagnostics.totalProviders: nombre de fournisseurs connus pour le modèle avant le filtrage par point de terminaison.provider_candidate_diagnostics.supportsEndpointCount: nombre de ces fournisseurs prenant en charge le point de terminaison demandé.provider_candidate_diagnostics.candidateCount: nombre de fournisseurs restants après les vérifications de l’adaptateur.provider_candidate_diagnostics.droppedUnsupportedEndpoint: fournisseurs retirés parce qu’ils ne prennent pas en charge le point de terminaison.provider_candidate_diagnostics.droppedMissingAdapter: paires fournisseur/point de terminaison retirées parce qu’aucun adaptateur Gateway n’existe encore pour ce point de terminaison.provider_enablement.capability: capacité contrôlée, par exemplevideo_generation.provider_enablement.providersBefore/provider_enablement.providersAfter: fournisseurs avant et après le filtrage des capacités ou des activations.provider_enablement.dropped[].reason: motifs lisibles par machine, commepricing_missing.routing_diagnostics.filterStages[].stage: étape de routage, comme le filtrage par capacité, déploiement ou état de routage.routing_diagnostics.filterStages[].beforeCount/routing_diagnostics.filterStages[].afterCount: nombre de fournisseurs avant et après chaque étape.routing_diagnostics.filterStages[].droppedProviders[].reason: motifs lisibles par machine, comme des restrictions de déploiement ou de routage.
Exemple
Mode de débogage facultatif
La plupart des schémas de requête acceptent un objetdebug pour un diagnostic contrôlé :
enabledreturn_upstream_requestreturn_upstream_responsetracetrace_level(summaryoufull)
Stratégie de nouvelle tentative
- Erreurs de la série 400 autres que 429 : corrigez la requête, les identifiants ou la politique d’accès avant de réessayer.
- 429 : appliquez un délai exponentiel et respectez l’en-tête
Retry-After. - Erreurs de la série 500 : utilisez des tentatives limitées uniquement lorsque répéter l’opération est sûr. Une soumission dont le résultat est incertain peut déjà avoir créé une tâche ou entraîné des frais ; récupérez une tâche acceptée au lieu de la soumettre à nouveau.
Particularités du streaming
- Si la requête échoue avant le début du streaming, vous recevez une réponse d’erreur JSON standard.
- Si elle échoue en cours de flux, considérez le flux partiel comme incomplet et proposez une nouvelle tentative.
- Enregistrez toujours
generation_idainsi que les métadonnées du point de terminaison et du modèle.
Conseils de dépannage
- Consultez la page d’état Gateway pour connaître les incidents en cours.
- Comparez le corps de votre requête avec la documentation du point de terminaison.
- Communiquez
generation_idau support.
Ressources associées
Authentification
Authentifiez-vous avec des clés d’API Bearer.
Limites
Gérez les ralentissements imposés par les fournisseurs et les nouvelles tentatives.
Streaming
Utilisez SSE en toute sécurité dans les flux de production.