# Errors

> RFC 9457 errors (application/problem+json), HTTP statuses and the stable code field.

URL : https://docs.fanconvert.ai/en/api/rest/erreurs

Every error follows [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) (`application/problem+json`):

```json
{
  "type": "https://fanconvert.app/problems/not-found",
  "title": "Ressource introuvable",
  "status": 404,
  "detail": "Créatrice introuvable : emma-demo",
  "instance": "urn:request:6c1e…",
  "code": "not-found",
  "params": {},
  "errors": []
}
```

- `code` is **stable**: that is what your code should test.
- `detail` is a sentence for a human (in French): it may change.
- `instance` is the request number: give it to [support](https://t.me/fanconvert), it finds the call.
- `errors` details a rejected input field by field (`422`).

| Status | When | What to do |
|---|---|---|
| 401 | key missing, invalid, expired or revoked | check the `Authorization` header, create a new key if needed |
| 403 | missing permission, or the person is not an admin | `detail` names the permission; create a key that has it |
| 404 | resource not found **or outside the key** | check the identifier and that the creator is in the key |
| 409 | write conflict (stale revision) | read the resource again, then write with the current revision |
| 422 | invalid parameter, or `Idempotency-Key` reused for another request | fix it using `errors` |
| 429 | rate limit reached | wait `Retry-After` seconds ([Rate limits](/en/api/rest/limites)) |
| 503 | service temporarily unavailable | retry later, with an increasing delay |

