Error codes
Auralith retourne des codes HTTP standards, avec un body JSON
{"detail": "..."} ou {"detail": [...]} pour les erreurs de validation.
Codes courants
| Code | Sens | Quand |
|---|---|---|
200 | OK | Lecture / mutation OK |
201 | Created | Creation ressource |
202 | Accepted | Action queued (job async, approbation requise) |
204 | No Content | DELETE OK |
400 | Bad Request | Body mal forme |
401 | Unauthorized | Pas de session valide ni d'API key valide |
403 | Forbidden | Authentifie mais pas le role requis |
404 | Not Found | Ressource inexistante OU pas accessible (pour eviter de leak l'existence) |
409 | Conflict | Slug deja pris, version concurrence |
422 | Unprocessable Entity | Validation Pydantic |
429 | Too Many Requests | Rate limit |
500 | Internal Server Error | Bug Auralith — voir logs trace_id |
502 / 503 | Upstream | DB cible injoignable, sink externe down |
202 Accepted — particularite Auralith
Un certain nombre d'actions retournent 202 au lieu de 200 quand un workflow d'approbation se declenche :
{
"status": "pending_approval",
"approval_request_id": "...",
"message": "Cette action requiert une approbation. Une demande a ete creee."
}
Le client doit gerer ce cas explicitement (rediriger vers /approvals).
Validation 422
{
"detail": [
{
"loc": ["body", "host"],
"msg": "field required",
"type": "value_error.missing"
}
]
}
Erreurs metier specifiques
| Detail | Sens | Action |
|---|---|---|
Quota exceeded: ... | Plan limite atteint | Upgrade plan ou purger |
Guard rail violation: WHERE clause too permissive | Mass Patch sans filtre suffisant | Ajouter WHERE precis |
FK consistency error in anonymization | Strategy non FK-safe sur colonne FK | Choisir hash avec meme salt |
Approval expired | ApprovalRequest > expires_at | Re-emettre |
Schema drift detected, blocking migration | Cible drifte de baseline | Acknowledger drift d'abord |
Trace ID
Toute reponse Auralith inclut un header X-Trace-Id. Donnez-le au support
pour permettre la recherche dans les logs structures.
X-Trace-Id: 4a8b9c1d-...
Pieges courants
- 404 vs 403 : Auralith renvoie 404 quand la ressource existe mais n'est pas accessible, pour eviter de leak son existence (probing). Le 403 n'est retourne que si le user est authentifie ET la ressource est visible mais l'action specifique est interdite.
- 500 sans contexte : noter le
trace_id. Sans lui le support ne peut rien faire.