400 | invalid_request | JSON illisible, champ ou paramètre de query inconnu, type incorrect, limit hors de 1–1000, Idempotency-Key vide, contrat output invalide. | Corrigez les champs nommés dans message et details. |
400 | validation_error | Entrée refusée par Go ou Services. | Corrigez les champs listés dans details. |
400 | invalid_cursor | Le curseur vient d’une autre table ou d’un autre run. | Relancez la lecture sans cursor. |
400 | workspace_mismatch | conversation_id n’appartient pas au workspace_id fourni. | Envoyez un seul des deux, ou la bonne paire. |
401 | not_authenticated | En-tête Authorization absent, mal formé, ou clé révoquée. | Vérifiez le format Bearer ret_live_…. Créez une nouvelle clé si besoin. |
402 | insufficient_credits, usage_limit | Solde insuffisant (Go, Services). | Consultez GET /credits, rechargez, puis réessayez. |
404 | run_not_found, table_not_found, workspace_not_found, conversation_not_found, output_not_found, export_not_found, not_found | Ressource inconnue, archivée, ou d’une autre organisation. | Vérifiez l’identifiant et la clé utilisée. |
409 | idempotency_conflict | Même Idempotency-Key, corps différent. | Bug client : générez une nouvelle clé pour une nouvelle demande. |
409 | conversation_busy | Un run est déjà actif dans cette conversation (API ou chat). | Attendez la fin du run actif, ou annulez-le. |
415 | invalid_request | Content-Type absent ou différent de application/json. | Ajoutez Content-Type: application/json. |
429 | rate_limited | Budget de requêtes dépassé. | Attendez Retry-After secondes. Voir Limites de débit. |
500 | internal_error | Erreur serveur inattendue. | Réessayez avec backoff : GET, ou POST avec Idempotency-Key. |
502 | provider_error, upstream_error, agent_error (Go), capability_error (Services) | Un fournisseur externe a échoué. | Réessayez avec backoff. Un POST Go ou Services rejoué est refacturé. |
503 | runs_unavailable | Stockage des runs indisponible (/v1/runs, /v1/tables). | Réessayez plus tard. |