Prismatic API/Docs/Erreurs et troubleshooting
Documentation

Erreurs et troubleshooting

Prismatic retourne des payloads d’erreur compatibles protocole pour gérer clairement auth, billing, validation et disponibilité modèle.

Erreurs fréquentes

401invalid_api_keyLa clé API est manquante, invalide ou révoquée.
403permission_deniedTu n’as pas l’autorisation d’effectuer cette requête.
403ip_not_allowedCette requête n’est pas autorisée depuis l’adresse IP actuelle.
403account_suspendedCe compte est suspendu. Contacte le support pour obtenir de l’aide.
403model_not_allowedCette clé API n’est pas autorisée à utiliser le modèle demandé.
404endpoint_not_foundL’endpoint API demandé est introuvable.
405method_not_allowedLa méthode HTTP n’est pas autorisée pour cet endpoint.
400invalid_requestLa requête est invalide. Vérifie ses paramètres puis réessaie.
413request_too_largeLa requête dépasse la taille maximale autorisée.
415unsupported_media_typeLe type de contenu de la requête n’est pas pris en charge par cet endpoint.
400unsupported_featureCet endpoint ne prend pas en charge la fonctionnalité demandée.
404model_not_foundLe modèle demandé est introuvable ou indisponible.
400model_capability_unavailableLe modèle demandé ne prend pas en charge cette capacité.
400context_length_exceededLa requête dépasse la limite de contexte du modèle. Réduis l’entrée ou le budget de sortie demandé puis réessaie.
400output_limit_exceededLa limite de sortie demandée dépasse le maximum du modèle.
400content_policy_violationLa requête ou le contenu généré a été bloqué par une politique de sécurité.
429rate_limit_exceededLimite de débit dépassée. Réessaie plus tard.
402billing_requiredUne facturation est nécessaire pour traiter cette requête.
402credit_balance_exhaustedLe solde de crédits PAYG est insuffisant pour cette requête.
429quota_exceededLe quota d’abonnement pour cette requête est épuisé.
429spend_limit_exceededLa limite de dépenses configurée a été atteinte.
403model_not_in_planLe modèle demandé n’est pas inclus dans le plan actif.
503billing_unavailableLa facturation ne peut pas être vérifiée temporairement. Réessaie plus tard.
409idempotency_conflictCette clé d’idempotence a déjà été utilisée avec une requête différente.
409request_in_progressUne requête utilisant cette clé d’idempotence est toujours en cours.
409outcome_unknownLe résultat de la requête est inconnu. Ne réessaie pas automatiquement avec une nouvelle clé d’idempotence.
404resource_not_foundLa ressource demandée n’existe pas ou n’est pas accessible.
409resource_conflictL’état de la ressource est incompatible avec cette opération.
410resource_expiredLa ressource demandée a expiré.
503resource_unavailableLa ressource demandée est temporairement indisponible. Réessaie plus tard.
502model_errorLe modèle a retourné une réponse invalide ou incomplète.
503model_unavailableLe modèle demandé est temporairement indisponible. Réessaie plus tard.
503service_unavailableLe service est temporairement indisponible. Réessaie plus tard.
504request_timeoutLa requête a expiré avant d’être terminée.
500internal_errorUne erreur interne s’est produite. Contacte le support avec l’identifiant de requête.

Formats d’erreur par protocole

  • Les endpoints compatibles OpenAI retournent error.message, error.type, error.code, error.param et un request_id de premier niveau.
  • Les endpoints compatibles Anthropic retournent l’enveloppe native type: error avec error.type, error.code, éventuellement error.param, et request_id.
  • Les endpoints compatibles Gemini retournent une erreur Google. google.rpc.ErrorInfo.metadata.prismatic_code contient le code Prismatic et metadata.request_id l’identifiant de requête.
  • Les streams SSE émettent le même code natif et le request ID dans au plus un événement d’erreur terminal. Le statut HTTP ne peut plus changer après le début d’un stream 200.
  • Considère code comme le contrat stable. Le message anglais peut évoluer et ne doit pas être parsé.

Headers d’erreur

  • x-request-id est généré par Prismatic sous la forme req_* pour chaque requête proxy ; toute valeur entrante portant ce nom est ignorée.
  • x-client-request-id peut contenir de 1 à 128 caractères sûrs et est renvoyé séparément lorsqu’il est valide.
  • x-prismatic-error-code répète le code canonique tant que les headers ne sont pas déjà engagés.
  • Retry-After n’est présent que lorsque Prismatic dispose d’un délai de réessai fiable. Les erreurs utilisent Cache-Control: no-store.

Politique de réessai et de compaction

  • Utilise context_length_exceeded comme signal pour compacter la conversation ou réduire l’entrée et le budget de sortie.
  • Réessaie rate_limit_exceeded après Retry-After lorsqu’il est présent. Pour les erreurs temporaires *_unavailable, request_timeout et billing_unavailable, utilise un backoff exponentiel borné.
  • Ne réessaie pas les erreurs de validation, permission, solde, quota, limite de dépenses ou conflit tant que la requête ou l’état du compte n’a pas changé.
  • Ne rejoue jamais automatiquement outcome_unknown avec une nouvelle clé d’idempotence. Réconcilie d’abord la clé ou la ressource d’origine.

Troubleshooting

401 sur chaque requête

Régénère la clé dans le dashboard, confirme que le préfixe est correct et vérifie que l’intégration n’a pas tronqué le header.

Model not found

Appelle GET /v1/models avec la même clé API et utilise un des IDs publics retournés.

Erreurs billing

Vérifie d’abord le quota abonnement actif, puis le solde wallet et l’état PAYG.

Streaming interrompu tôt

Assure-toi que le client consomme le stream SSE jusqu’à la fin pour capturer l’usage final.