Source: https://ailoot.ai/docs/fr-be/errors/
Canonical: https://ailoot.ai/docs/fr-be/errors/
Language: fr-be

[Aide](https://ailoot.ai/docs/fr-be/) 

# Erreurs et limites

[Markdown](https://ailoot.ai/docs/fr-be/errors/index.md)

Codes de réponse, signification et actions à effectuer. Toutes les erreurs sont au format JSON et comportent un Request ID.

## [](https://ailoot.ai/docs/fr-be/errors/#format)Format des erreurs

L’erreur utilise le format de l’API appelée : l’objet `error` pour OpenAI, `{"type": "error", "error": {...}}` pour Anthropic et `error` avec les champs `status` et `details` pour Gemini. Les SDK les reconnaissent donc comme des erreurs API ordinaires.

- `error.code` et `error.reason` — classe d’erreur figurant dans le tableau ci-dessous ; les deux champs ont la même valeur. `error.type` — valeur standard du format (par exemple, `invalid_request_error` ou `server_error`).
- `error.request_id` (pour Anthropic, `request_id` au premier niveau), l’en-tête `X-Request-ID` et la fin du message contiennent l’identifiant de la requête.
- Pour Gemini, la classe se trouve dans `error.details` : `ErrorInfo.reason` — le même code en majuscules (par exemple, `MODEL_OVERLOADED`), `domain` — `ailoot.ai` ; l’identifiant de la requête se trouve dans `RequestInfo.requestId`.
- Au format Gemini, une erreur 5xx qui ne doit pas être relancée automatiquement et `result_pending_check` sont renvoyés avec le statut 409 et `status` `ABORTED` : les SDK et CLI Gemini ne les relancent donc pas eux-mêmes. La classe d’erreur se trouve dans `ErrorInfo.reason` (par exemple, `MODEL_TIMEOUT` ou `RESULT_PENDING_CHECK`).
- La réponse au format OpenAI contient également les champs de premier niveau `code` et `message` — pour les anciens clients.

```json
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}
```

```json
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "code": "invalid_api_key",
    "reason": "invalid_api_key",
    "message": "… Nothing was charged. … Request ID: 94ed3e31-4373-41ce-bf8a-0d1ed3f7235e."
  },
  "request_id": "94ed3e31-4373-41ce-bf8a-0d1ed3f7235e"
}
```

```json
{
  "error": {
    "code": 401,
    "status": "UNAUTHENTICATED",
    "message": "The API key is not valid. Nothing was charged. … Request ID: e7aa743b-9d0d-4064-b206-2562609f545b.",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "INVALID_API_KEY",
        "domain": "ailoot.ai",
        "metadata": {
          "code": "invalid_api_key",
          "reason": "invalid_api_key",
          "request_id": "e7aa743b-9d0d-4064-b206-2562609f545b"
        }
      },
      {
        "@type": "type.googleapis.com/google.rpc.RequestInfo",
        "requestId": "e7aa743b-9d0d-4064-b206-2562609f545b"
      }
    ]
  }
}
```

« Nothing was charged » signifie qu’aucun montant n’a été débité. Si vous recevez X-Should-Retry : false, ne relancez pas automatiquement la requête : vérifiez d’abord le Request ID dans l’historique.

## [](https://ailoot.ai/docs/fr-be/errors/#codes)Codes d’erreur

| HTTP | Classe (reason) | Ce qui s’est passé | Que faire |
| --- | --- | --- | --- |
| 400 | `invalid_request` | La requête est incorrecte : corps ou paramètre invalide ; le modèle ne prend pas en charge un champ, une pièce jointe ou un outil demandé ; la clé est fournie dans l’adresse | Corrigez la requête selon le message d’erreur : retirez le champ, la pièce jointe ou l’outil non pris en charge et transmettez la clé dans un en-tête. Un refus pour un champ, une pièce jointe ou un outil non pris en charge intervient avant la réservation : aucun montant n’est débité |
| 400 | `context_length_exceeded` | La requête dépasse le contexte du modèle | Réduisez l’historique ou choisissez un modèle avec un contexte plus grand |
| 400 | `content_policy_violation` | La requête a été refusée par les règles du modèle | Reformulez la requête |
| 401 | `invalid_api_key` | Clé absente ou incorrecte | Vérifiez que la clé est transmise intégralement |
| 401 | `api_key_disabled` | La clé est désactivée | Activez la clé ou créez-en une nouvelle |
| 402 | `insufficient_balance`, `insufficient_quota` | Le solde disponible ne couvre même pas la réservation minimale (`insufficient_quota` — le même cas, présenté sous une forme familière au SDK OpenAI) | Rechargez le solde ou réduisez max\_tokens |
| 402 | `api_key_quota_exhausted` | Le plafond global de dépenses de la clé est atteint | Augmentez le plafond de la clé dans votre espace client |
| 402 | `payment_disputed` | Le compte présente une dette liée à un paiement contesté | Les nouvelles requêtes sont suspendues jusqu’au règlement : contactez l’assistance |
| 403 | `api_key_expired` | La clé a expiré | Créez une nouvelle clé |
| 403 | `account_inactive` | Votre compte est désactivé | Contactez l’assistance |
| 403 | `permission_denied` | Cette requête est interdite à la clé, par exemple selon l’IP | Vérifiez les restrictions de la clé |
| 404 | `model_not_found` | Ce modèle n’existe pas | Vérifiez l’ID dans /v1/models |
| 404 | `unsupported_endpoint` | Le modèle ne fonctionne pas dans ce format | Choisissez un autre format ou modèle |
| 404 | `not_found` | Ce chemin ou cet objet, comme une tâche, n’existe pas | Vérifiez l’adresse et l’identifiant |
| 409 | `duplicate_request` | L’opération utilisant la même clé d’idempotence a déjà été acceptée et est peut-être déjà terminée | Vérifiez le résultat de la première opération ; n’en envoyez pas une nouvelle |
| 409 | `not_ready`, `video_not_ready` | La vidéo ou l’autre tâche n’est pas encore prête | Consultez le statut plus tard |
| 409, 503 | `result_pending_check` | Le résultat de la requête est en cours de vérification. Pour une tâche vidéo, cela correspond au marqueur `result_pending_check: true` dans la réponse de statut ; la tâche reste `in_progress` | Ne renvoyez pas la requête : son statut apparaîtra dans l’historique (GET https://ailoot.ai/api/v1/usage). Ne recréez pas la tâche vidéo : vérifiez-la plus tard via GET /v1/videos/{id} |
| 410 | `model_retired` | Le modèle a été retiré du service | Choisissez une nouvelle version dans GET /v1/models |
| 413 | `request_too_large` | Le corps de la requête est trop volumineux | Réduisez les fichiers ou l’historique |
| 429 | `rate_limit_exceeded`, `gateway_concurrency_limit`, `gateway_queue_full` | Trop de requêtes ou de requêtes simultanées depuis votre compte | Patientez (en-tête `Retry-After`, généralement 10 s), puis réessayez |
| 429 | `usage_limit_reached` | Le plafond de dépenses de la clé pour la période est atteint (5 heures, 1 jour ou 7 jours) | Attendez le renouvellement de la fenêtre ou augmentez le plafond de la clé |
| 500 | `internal_error` | Erreur Ailoot | Contactez l’assistance en indiquant le Request ID |
| 502 | `invalid_model_response`, `empty_response`, `incomplete_response` | Le modèle a renvoyé une réponse invalide, vide ou incomplète | Recherchez le Request ID dans l’historique de votre espace personnel. S’il contient un résultat ou un débit, un nouvel envoi créera une deuxième requête payante. L’absence d’entrée ne confirme ni que la requête n’a pas été envoyée, ni qu’elle n’a pas été exécutée : ne répétez pas un envoi dont l’issue est inconnue ; contactez le support en indiquant le Request ID. |
| 502 | `result_not_delivered` | Le résultat n’a pas été livré par la faute d’Ailoot ; le montant réservé a été libéré ou le débit remboursé | Vous pouvez renvoyer la requête |
| 503 | `model_overloaded` | Le modèle est temporairement surchargé | Si X-Should-Retry : true, réessayez après le nombre de secondes indiqué dans Retry-After ; si false, vérifiez d’abord le Request ID dans l’historique |
| 503 | `model_unavailable` | Le modèle est temporairement indisponible | Choisissez un autre modèle. Si X-Should-Retry : true, réessayez après le nombre de secondes indiqué par Retry-After ; si false, vérifiez d’abord le Request ID dans l’historique |
| 503 | `service_unavailable` | Défaillance temporaire du côté d’Ailoot | Si X-Should-Retry : true, réessayez après le nombre de secondes indiqué dans Retry-After ; si false, vérifiez d’abord le Request ID dans l’historique |
| 503 | `charge_not_confirmed` | La réponse n’a pas été fournie : le débit n’a pas pu être confirmé ; la réservation a été libérée et aucun montant n’a été débité | Si X-Should-Retry : true, réessayez après le nombre de secondes indiqué dans Retry-After ; si false, vérifiez d’abord le Request ID dans l’historique |
| 504 | `model_timeout` | Le modèle n’a pas répondu à temps ; le résultat peut encore arriver | Ne renvoyez pas la requête avant d’avoir vérifié le Request ID dans l’historique |

Les codes relatifs aux réponses du modèle et à la vérification du résultat (502, 503 et 504) désignent désormais le modèle ou la requête : `model_unavailable`, `model_timeout`, `invalid_model_response`, `incomplete_response`, `charge_not_confirmed` et `result_pending_check`. Si votre code compare `error.code` aux anciennes valeurs, remplacez-les par les codes du tableau ; pour connaître la correspondance entre anciens et nouveaux codes, contactez [l’assistance](https://ailoot.ai/docs/fr-be/support/).

## [](https://ailoot.ai/docs/fr-be/errors/#retry)Quand relancer une requête

- **Vérifiez d’abord X-Should-Retry** : en cas de `false`, `result_pending_check` ou `model_timeout` , ne relancez pas automatiquement la requête. Recherchez le Request ID dans l’historique de votre espace client : vous y trouverez le résultat et le débit.
- **Une nouvelle tentative est sûre lorsque vous recevez X-Should-Retry : true** : attendez `Retry-After` secondes. Un code 5xx ne suffit pas : le résultat peut déjà exister. Vérifiez d’abord l’historique dans votre espace client ou contactez l’assistance en indiquant le Request ID. C’est particulièrement important pour les images, les vidéos, la musique et les longues étapes d’agents.
- **Une nouvelle tentative ne résoudra rien** : 400, 401, 402, 403, 404 : corrigez d’abord la requête, la clé ou le solde.

Les SDK OpenAI et Anthropic relancent généralement les requêtes en cas d’erreur réseau ou de réponse 5xx. Pour les générations, désactivez ce comportement (`max_retries=0`) et vérifiez `X-Should-Retry` avant toute nouvelle tentative. Une réponse perdue ne signifie pas que la requête n’a pas été exécutée.

## [](https://ailoot.ai/docs/fr-be/errors/#limits)Limites

La fréquence et le nombre de requêtes simultanées sont limités pour votre compte dans son ensemble, et non pour chaque clé. Un dépassement entraîne une réponse 429 `rate_limit_exceeded` avec l’en-tête `Retry-After: 10`. Si le modèle lui-même est surchargé, une réponse 503 est renvoyée avec `model_overloaded` avec `Retry-After: 30`. Pour un volume plus élevé, contactez [l’assistance](https://ailoot.ai/docs/fr-be/support/).

Les plafonds de dépenses se définissent pour chaque clé : plafond global, erreur 402 `api_key_quota_exhausted` ; fenêtres de 5 heures, 1 jour et 7 jours, erreur 429 `usage_limit_reached`. En savoir plus : [Clés et URL de l’API](https://ailoot.ai/docs/fr-be/keys/#key).

## [](https://ailoot.ai/docs/fr-be/errors/#nvidia)Modèles NVIDIA : file d’attente

Vous pouvez consulter la liste des modèles même avec un solde nul ; pour générer, le solde doit couvrir la réservation. Les modèles NVIDIA, Nemotron et d’autres, passent par une file d’attente commune : en cas de forte charge, la réponse peut arriver plus tard ou une erreur « modèle temporairement surchargé » est renvoyée avec l’en-tête Retry-After. Réessayez après le délai indiqué. Les prix figurent dans le catalogue et la facturation suit les mêmes règles que pour les autres modèles.

Le modèle fixe les limites de taille : le contexte, soit le nombre de tokens que vous pouvez envoyer, et la longueur maximale de réponse. Elles figurent dans le [catalogue](https://ailoot.ai/models/fr-be/).

## Historique et dépenses

[Historique et dépenses](https://ailoot.ai/usage) · [GET https://ailoot.ai/api/v1/usage](https://ailoot.ai/docs/fr-be/cabinet/usage/) · JWT · `Authorization: Bearer $TOKEN`

`JWT ≠ sk-…` · [Connexion et sessions](https://ailoot.ai/docs/fr-be/cabinet/auth/)

Des questions ? Envoyez-nous le Request ID et une description : nous vous aiderons à y voir plus clair.[Contacter l’assistance](mailto:support@ailoot.ai)

## Ailoot · L’entreprise et son portefeuille de projets





Ailoot s’appuie sur une expérience opérationnelle éprouvée, une large clientèle, un service stable et un suivi continu des KPI.





L’entreprise et son portefeuille de projets : des millions de clients ; des ventes qui se chiffrent en milliards chaque mois.





Ailoot met cette expérience opérationnelle au service de l’accès API aux fonctions d’IA dans les produits des clients, leurs agents, applications et automatisations.
