Aller au contenu
Prescriptio
ConnexionS’inscrire
Parcourir la documentation

Pour commencer

Codes d'erreur

Voir en MarkdownConnecter mon agent IA

Une erreur de Prescriptio dit ce qui s'est passé et quoi faire : le connecteur MCP renvoie une erreur JSON-RPC quand l'appel est impossible, et une erreur métier lisible par le modèle quand l'action n'a pas abouti ; l'API REST renvoie les mêmes cas en codes HTTP.

Sur cette page

Un message d'erreur n'est jamais une donnée : il ne se recopie pas comme un fait.

Les deux familles d'erreurs

  • Erreur JSON-RPC (champ error) : l'appel n'a pas pu avoir lieu (requête illisible, outil inconnu, portée absente, quota, dépendance indisponible).
  • Erreur d'outil (result.isError: true) : l'outil a été appelé, mais l'action n'a pas abouti. Un argument absent ou hors schéma arrive ainsi, avec un message en français qui nomme l'argument et dit quoi corriger : le modèle le lit et se reprend.

Connecteur MCP

CodeQuandQue faire
-32700Le corps n'est pas un JSON lisibleCorriger le JSON envoyé
-32600Requête invalide : envoi groupé, champ method absent, corps de plus de 3 MioUn appel par requête, un corps plus léger
-32001Jeton absent, expiré ou révoqué (réponse HTTP 401 avec WWW-Authenticate)Relancer l'autorisation OAuth
-32601La méthode ou l'outil demandé n'existe pas à cette adresseAppeler tools/list ; ne jamais deviner un nom
-32003La portée OAuth manque à l'autorisationReconnecter en acceptant mcp:read, ou mcp:write pour écrire ; le refus nomme la portée, jamais une offre
-32004Le quota par minute ou le quota journalier est atteintLire le message : attendre le délai indiqué, ne jamais boucler
-32603Une dépendance ne répond pasRéessayer plus tard ; ne pas rejouer une écriture sans vérifier qu'elle n'a pas eu lieu

-32602 ne sert qu'à la lecture d'une ressource (resources/read) : adresse absente, inconnue ou indisponible. Un appel d'outil ne le rend jamais.

API REST

Le corps d'une erreur porte error.code, error.message, error.retry_after_seconds quand le délai est connu, et api_contract_version.

HTTPerror.codeQue faire
400invalid_arguments, invalid_cursorCorriger l'argument ; reprendre le curseur tel qu'il a été rendu
400invalid_json, invalid_bodyEnvoyer un corps JSON lisible
401unauthenticatedObtenir un nouveau jeton
403insufficient_scopeRedemander l'autorisation avec la portée nommée
403access_denied, user_required, organization_required, role_deniedL'action exige un utilisateur, une organisation ou un rôle que le jeton n'a pas
403origin_deniedL'appel vient d'un navigateur dont l'origine n'est pas autorisée
404not_foundL'opération ou l'objet est introuvable dans votre espace
405method_not_allowedAppeler l'opération en POST
408invalid_bodyLe corps n'est pas arrivé en 30 secondes : renvoyer
409conflictL'action entre en conflit avec l'état de l'objet
413invalid_bodyAlléger le corps : 3 Mio au plus
415unsupported_media_typeEnvoyer Content-Type: application/json
429quota_exceededAttendre Retry-After quand il est donné ; lire le message
503unavailable, quota_unavailableRéessayer plus tard
504timeoutL'opération a dépassé 35 secondes ; vérifier avant de rejouer une écriture
{
  "error": {
    "code": "quota_exceeded",
    "message": "<message en français>",
    "retry_after_seconds": 60
  },
  "api_contract_version": "3.0.0"
}

Les trois refus de quota

  1. « Quota par minute atteint »

    Un frein passager, au-delà de 5 appels par minute (30 pour un abonné). Attendez une minute et reprenez, un appel à la fois. L'abonnement n'est pas la réponse.

  2. « Quota journalier atteint »

    Le plafond des 24 heures glissantes (100 appels, ou 5 000 pour un abonné). L'abonnement relève ce plafond ; l'analyse du rapport de marque lui est aussi réservée. Les outils d'aide et d'abonnement restent soumis au quota d'appels : s'il est épuisé, ouvrez directement Paramètres › Abonnement (s'ouvre dans un nouvel onglet), ou attendez que la fenêtre se libère.

  3. « Quota de consultation atteint »

    Les dossiers ouverts aujourd'hui (5, ou 500 pour un abonné). Le compteur repart à minuit, heure de Paris, et un dossier déjà ouvert se relit sans compter. Chercher n'entre pas dans ce compte, seulement dans le quota d'appels ; l'abonnement relève ce plafond.

Sur /api/mcp, les deux premiers refus arrivent généralement en erreur -32004 ; le troisième arrive comme une erreur d'outil (isError), puisque c'est l'outil de lecture qui compte les dossiers. Un outil passant par le traitement des intégrations peut aussi rendre son refus dans isError. Le profil /api/mcp/connectors rend les erreurs de ses opérations dans isError, avec le détail dans _meta["prescriptio/error"]. Par l'API REST, les trois rendent 429 quota_exceeded.

Tester un jeton

GET /api/mcp/v1/me répond sans donnée personnelle : le jeton est-il valable, avec quelle offre et quelles portées.

curl -sS https://prescriptio.fr/api/mcp/v1/me -H 'Authorization: Bearer <jeton>'
{ "authenticated": true, "tier": "<offre>", "scope": "<portées>" }
Attention :

Un message d'erreur n'est jamais une donnée : ne le recopiez pas comme un fait, et n'inventez pas un identifiant ou une adresse qu'il ne contient pas.

Cette page vous a-t-elle aidé ?Envoyer un retour

Voir tous les résultats

Préparer une conversation

Copiez le contexte de cette page, puis collez-le dans votre assistant.

Voir le contexte à transmettre
Ouvrir ClaudeOuvrir ChatGPT