> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conare.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Erreurs et limites

> L'enveloppe d'erreur stable, la corrélation X-Request-Id, la signification des codes HTTP, les en-têtes de limites de taux et le comportement 402 d'épuisement.

## L'enveloppe d'erreur

Chaque erreur utilise une forme stable — et ne divulgue jamais d'identifiants de tenant internes ni de texte d'erreur backend :

```json theme={null}
{
  "statusCode": 409,
  "code": "stale_source_version",
  "message": "Version 6 is older than the applied version 7.",
  "requestId": "req_...",
  "details": { }
}
```

Faites vos branchements sur `code`, pas sur `message` — les messages peuvent être reformulés ; les codes sont stables.

## Identifiants de requête

Chaque réponse porte `X-Request-Id`. Envoyez le vôtre (1–128 caractères ; premier caractère alphanumérique, puis `A-Za-z0-9._:-`) pour corréler une requête à travers la bordure Conare et le plan mémoire ; sinon Conare en génère un. Citez-le dans toute demande de support.

## Codes de statut

| Statut | Signification                                                               | Que faire                                                                                                 |
| ------ | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| `400`  | Requête invalide (par exemple `model_not_served`, ID de collection inconnu) | Corrigez la requête — le message dit exactement ce qui ne va pas                                          |
| `401`  | Clé manquante ou invalide                                                   | Vérifiez le jeton Bearer                                                                                  |
| `402`  | Quota d'usage et budget de dépassement épuisés                              | La réponse inclut les métadonnées de solde/réinitialisation — présentez-les, ne réessayez pas à l'aveugle |
| `403`  | La clé n'a pas la portée requise                                            | Accordez la portée sur l'intégration                                                                      |
| `409`  | Conflit de version sur le cycle de vie de la source                         | Voir [mémoires détenues par la source](/memory/lifecycle) — signifie généralement « déjà durable »        |
| `413`  | Contenu trop volumineux                                                     | Divisez la charge utile                                                                                   |
| `429`  | Limite de taux atteinte                                                     | Faites du back-off selon les en-têtes de limite de taux                                                   |
| `503`  | Backend pas prêt (par exemple `integration_unbillable`)                     | Réessayez avec back-off ; vérifiez `/api/v1/status`                                                       |

## Dégradation plutôt qu'échec

Là où existe un repli moins coûteux, Conare se dégrade plutôt que d'échouer :

* **Rappel approfondi** sur un quota hérité épuisé renvoie `{ answer: null, results: [...], deepUsed: false }` — vous obtenez toujours des mémoires brutes classées.
* **Suggestions** n'a pas de repli superficiel significatif, donc l'épuisement est un `402` strict (plans à quota hérité : `429`).
* **Sortie de modèle mal formée** sur les suggestions renvoie `{ suggestions: [], raw: "<text>" }` — traitez `raw` comme texte de repli affichable.

## Jamais facturé

L'ingestion de session, `save` et la recherche/rappel superficiels ne sont jamais facturés, quel que soit le plan. Les alertes de dépense se déclenchent à 75/90/100 % et le comportement par défaut est un arrêt strict — aucun dépassement inattendu.
