---
title: Gérer les erreurs de la Compliance API
url: https://platform.claude.com/docs/fr/manage-claude/compliance-errors
description: Réponses d'erreur de l'API Compliance classées par code de statut HTTP, avec la cause et la correction pour chacune.
---

<Note>
  Pour activer la « Compliance API » (API de conformité), consultez [Configurer la Compliance API](https://platform.claude.com/docs/fr/manage-claude/compliance-api-access).
</Note>

Cette page répertorie les réponses d'erreur courantes de l'API Compliance par code de statut HTTP, avec la cause et la correction pour chacune.

L'API Compliance renvoie les erreurs au [format d'erreur standard d'Anthropic](https://platform.claude.com/docs/fr/api/errors) : un code de statut non-2xx, un en-tête de réponse `request-id` et un corps JSON avec un objet `error` contenant `type` et `message`. Incluez la valeur de l'en-tête `request-id` lorsque vous faites remonter un problème au support.

```json
{
  "error": {
    "type": "permission_error",
    "message": "Missing required scopes. Got: ['read:compliance_activities'] Needed one of: ['read:compliance_user_data', 'read:org_audit']"
  }
}
```

Sur cette page, les sessions locales s'exécutent sur les machines des utilisateurs et les sessions distantes s'exécutent dans le cloud ; consultez [Récupérer les transcriptions de sessions](https://platform.claude.com/docs/fr/manage-claude/compliance-sessions).

Basez-vous sur le code de statut HTTP et sur `error.type`, et non sur la chaîne du message. Les messages sont suffisamment stables pour être copiés dans des procédures opérationnelles, mais ils peuvent être reformulés au fil du temps ; les codes de statut et les valeurs de type font partie du contrat de l'API. Quelques réponses qui partagent un code de statut et un type se distinguent par un code d'erreur dans `error.details.error_code` lorsque la réponse en contient un, et sinon par leur message ; chacune est signalée là où elle s'applique.

Le tableau suivant vous indique d'un coup d'œil s'il faut réessayer. Chaque section qui suit présente le corps d'erreur exact et la correction.

| Statut                                                                                                                     | Réessayer ?                | Quand                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| -------------------------------------------------------------------------------------------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [400 Bad Request](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#400-bad-request)                     | Non                        | Corrigez la requête, ou activez l'API Compliance si le message indique qu'elle n'est pas activée, puis renvoyez-la. Si `error.details.error_code` vaut `transcript_page_read_limit_exceeded` (le message indique qu'une page de la transcription d'une session est trop volumineuse pour être lue), ne renvoyez pas la même requête ; [Page de transcription trop volumineuse](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#transcript-page-too-large) indique quoi faire à la place.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [401 Unauthorized](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#401-unauthorized)                   | Non                        | La clé n'est pas reconnue, a été désactivée ou a expiré ; réactivez-la ou remplacez-la, puis renvoyez la requête.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| [403 Forbidden](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#403-forbidden)                         | Non                        | Ajoutez la portée manquante ou utilisez le bon type de clé, puis renvoyez la requête.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| [404 Not Found](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#404-not-found)                         | Généralement non           | Un message qui nomme une ressource signifie qu'elle a été supprimée ou n'a jamais existé ; retirez-la de votre file d'attente. Le message seul `Not found` signifie que la requête ne s'est pas authentifiée (ou que le chemin n'existe pas), et non qu'une ressource a disparu ; consultez [Requête non authentifiée](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#request-not-authenticated). Les points de terminaison de sessions ajoutent deux autres cas : sur les points de terminaison de sessions locales, le message `Local sessions are not available.` (renvoyé à chaque appel, y compris pour la liste) signifie que les points de terminaison sont actuellement indisponibles pour votre organisation parente, et non qu'une session a disparu ; conservez vos ID en file d'attente et consultez [Session locale introuvable](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#local-session-not-found). Une session distante encore au statut `pending` renvoie une erreur 404 sur son point de terminaison de messages jusqu'à son démarrage ; consultez [Session distante introuvable](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#remote-session-not-found). |
| [409 Conflict](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#409-conflict)                           | Non                        | La requête entre en conflit avec l'état actuel de la ressource ; résolvez le conflit (par exemple en détachant les ressources enfants), puis réessayez.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [429 Too Many Requests](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#429-too-many-requests)         | Oui, après `retry-after`   | Attendez le nombre de secondes indiqué dans `retry-after`, puis réessayez ; n'avancez pas votre curseur.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| [500 Internal Server Error](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#500-internal-server-error) | Dépend de `x-should-retry` | Vérifiez l'en-tête de réponse `x-should-retry` avant de réessayer.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| [502, 503, 504, 529](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#500-internal-server-error)        | Oui, avec backoff          | Transitoire ; réessayez avec un backoff exponentiel. Exception : certaines erreurs 503 des sessions locales ne sont pas transitoires. Consultez [Sessions locales temporairement indisponibles](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#local-sessions-temporarily-unavailable).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |

## 400 Bad Request

La requête était syntaxiquement valide, mais le serveur a rejeté un paramètre ou l'API Compliance n'est pas activée pour l'organisation. Corrigez la cause indiquée dans le message et renvoyez la requête. Une erreur 400 est différente : [Page de transcription trop volumineuse](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#transcript-page-too-large), que le point de terminaison de messages des sessions locales peut renvoyer pour une page d'une très grande session même lorsque tous les paramètres sont valides ; son entrée indique quoi faire au lieu de renvoyer la requête.

### API Compliance non activée

**Type :** `invalid_request_error`

```text wrap
Compliance API is not enabled for this organization
```

**Cause :** La clé est valide, mais l'API Compliance n'est pas activée pour l'organisation ou l'organisation parente à laquelle la clé appartient. Chaque point de terminaison renvoie cette réponse tant que l'API n'est pas activée, et de nouveau si un administrateur désactive l'API.

**Correction :** Activez l'API Compliance en suivant [Configurer l'API Compliance](https://platform.claude.com/docs/fr/manage-claude/compliance-api-access#set-up-the-compliance-api), puis renvoyez la requête.

### Paramètre de requête inconnu

**Type :** `invalid_request_error`

```text wrap
Unknown query parameter: 'created_at[gte]'. Did you mean 'created_at.gte'?
```

**Cause :** La requête incluait un paramètre de requête que le point de terminaison ne définit pas. L'API Compliance rejette les paramètres non reconnus au lieu de les ignorer. Le message nomme le paramètre et, pour les erreurs proches, comme la notation entre crochets à la place d'un point ou un suffixe `[]` manquant, suggère le nom défini.

**Correction :** Utilisez les noms de paramètres indiqués sur la page de [référence de l'API Compliance](https://platform.claude.com/docs/fr/api/compliance) du point de terminaison. Les filtres de plage utilisent la notation pointée (par exemple, `created_at.gte`), les filtres de tableau prennent un suffixe `[]` (par exemple, `activity_types[]`), et les paramètres de pagination sont `after_id`, `before_id` ou `page`, selon le point de terminaison.

### Valeur de paramètre invalide

**Type :** `invalid_request_error`

```text wrap
limit: Input should be less than or equal to 1000
```

```text wrap
created_at.gte: Input should be a valid datetime or date, invalid character in year
```

```text wrap
activity_types[].0: Input is not one of the permitted values.
```

**Cause :** La valeur d'un paramètre de requête n'a pas passé la validation. Le message commence par le nom du paramètre (suivi de la position de l'élément pour un paramètre de type tableau), puis indique la contrainte non respectée. Trois cas courants sont présentés : une valeur `limit` supérieure au maximum du point de terminaison (le nombre dans le message correspond au maximum de ce point de terminaison), une valeur `created_at.*` ou `updated_at.*` qui ne peut pas être analysée comme une date ou un horodatage, et une valeur `activity_types[]` qui n'est pas un type d'activité pris en charge.

**Correction :** Corrigez le paramètre nommé dans le message. Chaque point de terminaison de liste possède sa propre plage `limit`. Consultez les contraintes de paramètres sur la page de [référence de l'API Compliance](https://platform.claude.com/docs/fr/api/compliance) correspondante. Envoyez les horodatages au format RFC 3339 avec un décalage UTC explicite, par exemple `2024-03-01T00:00:00Z` ou `2024-03-01T00:00:00+00:00`. La liste des sessions locales rejette un horodatage sans décalage (`created_at.gte: Input should have timezone info`). Pour les valeurs `activity_types[]` prises en charge, consultez [Interroger les activités de conformité](https://platform.claude.com/docs/fr/api/compliance/activities/list).

La liste des sessions locales (`GET /v1/compliance/apps/sessions/local`) renvoie également une erreur 400 `invalid_request_error` lorsque vous fournissez une borne inférieure (`created_at.gte` ou `created_at.gt`) et une borne supérieure (`created_at.lt` ou `created_at.lte`) et que la borne supérieure n'est pas postérieure à la borne inférieure. Des bornes égales ne sont autorisées que pour `created_at.gte` avec `created_at.lte`. Le message nomme les deux paramètres, par exemple :

```text wrap
created_at.lt must be strictly after created_at.gte.
```

```text wrap
created_at.lte must be at or after created_at.gte.
```

Envoyez une borne supérieure postérieure à la borne inférieure, ou omettez l'une des bornes.

Les points de terminaison de transcriptions de sessions (`GET /v1/compliance/apps/sessions/local/{session_id}/messages` et `GET /v1/compliance/apps/sessions/remote/{session_id}/messages`) valident leurs paramètres de troncature de la même manière : `tool_use_input_max_bytes` et `tool_result_max_bytes` acceptent chacun un nombre d'octets positif ou `-1` (le maximum du serveur). Une valeur telle que `0` renvoie donc la même erreur 400 `invalid_request_error`.

### Curseur de pagination invalide

**Type :** `invalid_request_error`

```text wrap
Invalid activity_id format: 'activity_invalid123'
```

```text wrap
Invalid pagination cursor for 'after_id'
```

**Cause :** Un « pagination cursor » (curseur de pagination) n'a pas pu être décodé. Sur l'Activity Feed, une valeur `after_id` ou `before_id` qui n'est ni un curseur émis par l'API ni un identifiant d'activité bien formé renvoie le premier corps, qui reprend la valeur envoyée. Sur les points de terminaison de chats et de messages de chat, une valeur `after_id` ou `before_id` qui ne peut pas être décodée renvoie le second corps, qui nomme le paramètre.

**Correction :** Traitez les curseurs de pagination comme des chaînes opaques. Copiez toujours la valeur `first_id` ou `last_id` renvoyée par la page précédente. Arrêtez-vous lorsque `has_more` vaut `false`. Ne construisez pas de curseurs à partir d'identifiants d'objets.

Les points de terminaison d'annuaire, de projets et de sessions (organisations, utilisateurs, rôles, permissions de rôles, groupes, membres de groupes, projets, pièces jointes de projets, sessions locales et distantes, et messages de sessions) paginent avec un jeton `page` opaque plutôt qu'avec `after_id` et `before_id`. Le même conseil s'applique : transmettez la valeur `next_page` de la réponse précédente sans la modifier, et arrêtez-vous lorsque `has_more` vaut `false` (ou, sur les points de terminaison de sessions, qui ne renvoient pas `has_more`, lorsque `next_page` vaut `null`). Un jeton `page` mal formé renvoie la même erreur 400 `invalid_request_error` qu'une valeur `after_id` ou `before_id` mal formée, avec un message propre au point de terminaison.

Les deux points de terminaison paginés de sessions locales (la liste et le point de terminaison de messages) renvoient l'erreur 400 `invalid_request_error` suivante pour toute valeur `page` qu'ils ne peuvent pas décoder, par exemple un jeton tronqué ou modifié après que vous l'avez stocké, ou un jeton émis par un autre point de terminaison ou sous une autre organisation parente. Sur le point de terminaison de messages de sessions locales (`GET /v1/compliance/apps/sessions/local/{session_id}/messages`), chaque curseur `page` est également lié à la session et à l'`order` pour lesquels il a été émis. Un curseur émis pour une autre session ou un autre ordre de tri renvoie donc le même corps :

```text wrap
The page parameter is not a valid cursor for this request.
```

Les curseurs du point de terminaison de messages expirent également 24 heures après le début du parcours (un passage à travers les pages). Un curseur expiré renvoie :

```text wrap
The page cursor has expired. Restart the walk without a page parameter; results will reflect the current retention boundary.
```

Pour le premier corps, renvoyez la valeur `next_page` non modifiée de la réponse précédente au point de terminaison et à la session qui l'ont émise. Pour un curseur expiré, recommencez sans paramètre `page`. Le nouveau parcours reflète la limite de rétention en vigueur au moment où il commence, de sorte que les messages qui ont dépassé la période de rétention entre-temps ne sont plus renvoyés (consultez [Récupérer la transcription d'une session locale](https://platform.claude.com/docs/fr/manage-claude/compliance-sessions#retrieve-a-local-session-transcript)).

### Page de transcription trop volumineuse

**Type :** `invalid_request_error`

**Code d'erreur :** `transcript_page_read_limit_exceeded`, renvoyé dans `error.details.error_code`

```text wrap
This page of the session's transcript is too large to read, and retrying will not help. If you are reading newest first (order=desc), read this session oldest first instead: omit the order and page parameters, then follow next_page.
```

**Cause :** `GET /v1/compliance/apps/sessions/local/{session_id}/messages` peut renvoyer cette erreur pour une page d'une très grande session. Seul ce point de terminaison renvoie cette erreur. Elle partage le type `invalid_request_error` avec les autres erreurs 400 ; identifiez-la donc par son code d'erreur, et non par le texte du message, qui pourrait être reformulé.

**Correction :** Ne réessayez pas la requête. Si elle utilisait `order=desc`, lisez plutôt cette session de la plus ancienne à la plus récente :

* Recommencez le parcours de la session (un passage à travers ses pages ; consultez [Récupérer la transcription d'une session locale](https://platform.claude.com/docs/fr/manage-claude/compliance-sessions#retrieve-a-local-session-transcript)) sans `order` (ou avec `order=asc`) et sans `page`, et suivez `next_page` jusqu'à ce qu'il vaille `null`. Les messages que vous avez déjà stockés lors de la lecture du plus récent au plus ancien conservent le même `id`, dédupliquez donc sur `id`.
* Définissez le délai d'expiration des requêtes de votre client à au moins 5 minutes pour ce parcours.
* Réduire `limit` n'est pas un moyen fiable d'éviter cette erreur.

Si une requête du plus ancien au plus récent renvoie cette erreur, ne la réessayez pas non plus. Conservez les pages que vous avez déjà lues, enregistrez la session comme incomplète, poursuivez le reste de votre export et contactez votre représentant Anthropic en fournissant l'en-tête de réponse `request-id`.

## 401 Unauthorized

La requête contenait une Compliance Access Key (`sk-ant-api01-...`) ou une clé Admin API (`sk-ant-admin01-...`) qui ne permet pas l'authentification. Une requête qui ne contient aucune clé, ou une clé d'un autre type, renvoie à la place une erreur [404 Not Found](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#request-not-authenticated) sur tous les points de terminaison sauf celui des paramètres d'organisation, et une clé valide avec les mauvaises portées renvoie une erreur [403 Forbidden](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#403-forbidden).

### Clé API invalide, désactivée ou expirée

**Type :** `authentication_error`

```text wrap
API key is invalid.
```

```text wrap
API key has been deactivated.
```

```text wrap
API key has expired.
```

**Cause :** `API key is invalid.` signifie que la valeur envoyée ne correspond à aucune clé utilisable, par exemple parce qu'elle a été tronquée ou modifiée lors de son stockage. `API key has been deactivated.` signifie que la clé a été désactivée ou supprimée. `API key has expired.` signifie que la date d'expiration d'une clé Admin API est dépassée. Les Compliance Access Keys ne sont pas créées avec une date d'expiration.

**Correction :** Pour `API key is invalid.`, comparez la valeur envoyée par votre client au secret que vous avez stocké lors de la création de la clé ; le secret complet n'est affiché qu'une seule fois, donc si votre copie stockée est erronée, créez une nouvelle clé. Pour `API key has been deactivated.`, réactivez la clé si elle a seulement été désactivée, dans [claude.ai > Organization settings > API](https://claude.ai/admin-settings/api-access) pour une Compliance Access Key ou sur la page [Admin keys](https://platform.claude.com/settings/admin-keys) (`platform.claude.com/settings/admin-keys`) de la Claude Console pour une clé Admin API ; une clé supprimée ne peut pas être restaurée. Pour une clé supprimée ou expirée, créez une nouvelle clé et mettez à jour votre intégration pour l'utiliser, comme décrit dans [Gérer et renouveler les clés](https://platform.claude.com/docs/fr/manage-claude/compliance-api-access#manage-and-rotate-keys).

## 403 Forbidden

La clé dans `x-api-key` est valide, mais ne possède aucune « scope » (portée) acceptée par le point de terminaison. Le message exact liste les portées que possède la clé (`Got:`) et les portées acceptées par le point de terminaison (`Needed one of:` sur les points de terminaison de lecture, où une seule des portées listées suffit, ou `Needed:` sur les points de terminaison de suppression). Vous pouvez ainsi confirmer ce que possède la clé sans revérifier la Claude Console ou claude.ai. Sur les points de terminaison de lecture, la liste des portées acceptées inclut également `read:org_audit`, une portée d'audit en lecture seule qui couvre tous les points de terminaison de lecture de l'API Compliance. Consultez [Choisir les portées d'une clé Claude Enterprise](https://platform.claude.com/docs/fr/manage-claude/admin-api-keys#choose-scopes-for-a-claude-enterprise-key). Les portées d'une Compliance Access Key sont immuables après sa création : chaque correction liée à une portée insuffisante vous invite donc à créer une nouvelle clé plutôt qu'à modifier la clé existante. Une organisation Claude Console autonome (sans organisation parente) ne peut pas créer de Compliance Access Key. Les corrections qui en nécessitent une ne s'appliquent donc pas à elle. Elle peut uniquement interroger l'Activity Feed.

### Portée insuffisante : Activity Feed

**Type :** `permission_error`

```text wrap
Missing required scopes. Got: ['read:compliance_user_data'] Needed one of: ['read:compliance_activities', 'read:org_audit']
```

**Cause :** Une clé sans `read:compliance_activities` a été utilisée pour appeler `GET /v1/compliance/activities`. Deux situations courantes mènent à cette erreur :

* Une Compliance Access Key (`sk-ant-api01-...`) a été créée sans la portée `read:compliance_activities`.
* Une clé Admin API de la Claude Console (`sk-ant-admin01-...`) a été créée alors que l'API Compliance n'était pas activée pour l'organisation. Les clés créées alors que l'API Compliance n'était pas activée ne possèdent pas cette portée. Consultez [Configurer l'API Compliance](https://platform.claude.com/docs/fr/manage-claude/compliance-api-access#set-up-the-compliance-api).

**Correction :** Les portées d'une Compliance Access Key sont immuables après sa création. Créez une nouvelle clé qui inclut `read:compliance_activities`, ou utilisez une clé Admin API de la Claude Console. Consultez [De quelle clé avez-vous besoin ?](https://platform.claude.com/docs/fr/manage-claude/compliance-api-access#which-key-do-you-need) pour connaître les conditions dans lesquelles une clé Admin API possède cette portée.

### Portée insuffisante : données d'organisation

**Type :** `permission_error`

```text wrap
Missing required scopes. Got: ['read:compliance_user_data'] Needed one of: ['read:compliance_org_data', 'read:org_audit']
```

**Cause :** Une clé sans `read:compliance_org_data` a été utilisée pour appeler un point de terminaison d'organisations, de rôles, de groupes ou de paramètres effectifs. Deux situations courantes mènent à cette erreur :

* Une Compliance Access Key (`sk-ant-api01-...`) a été créée sans la portée `read:compliance_org_data`.
* Une clé Admin API de la Claude Console (`sk-ant-admin01-...`) a été utilisée. Les clés Admin API possèdent uniquement `read:compliance_activities` et ne peuvent pas lire les métadonnées d'organisation.

**Correction :** [Créez une nouvelle Compliance Access Key](https://platform.claude.com/docs/fr/manage-claude/compliance-api-access#set-up-the-compliance-api) en sélectionnant `read:compliance_org_data`. Les clés Admin API ne peuvent pas lire les métadonnées d'organisation. La Compliance Access Key est requise.

### Portée retirée : paramètres d'organisation

**Type :** `permission_error`

```text wrap
Missing required scopes. Got: ['read:compliance_org_settings'] Needed one of: ['read:compliance_org_data', 'read:org_audit']
```

**Cause :** La portée `read:compliance_org_settings` a été retirée le 30 juin 2026. `GET /v1/compliance/organizations/{organization_id}/settings` nécessite désormais `read:compliance_org_data`, la même portée que les autres points de terminaison d'organisation, et la portée retirée n'autorise plus rien. Une Compliance Access Key qui possède uniquement `read:compliance_org_settings` renvoie cette erreur à chaque appel au point de terminaison des paramètres, même si la clé fonctionnait avant le retrait. La portée retirée ne peut plus être sélectionnée ni accordée lors de la création d'une clé.

**Correction :** Les portées d'une Compliance Access Key sont immuables après sa création. [Créez une nouvelle Compliance Access Key](https://platform.claude.com/docs/fr/manage-claude/compliance-api-access#set-up-the-compliance-api) en sélectionnant `read:compliance_org_data`, mettez à jour votre intégration pour l'utiliser, puis supprimez l'ancienne clé. Une clé qui possède déjà `read:compliance_org_data` n'est pas affectée par le retrait.

### Portée insuffisante : données utilisateur

**Type :** `permission_error`

```text wrap
Missing required scopes. Got: ['read:compliance_activities'] Needed one of: ['read:compliance_user_data', 'read:org_audit']
```

**Cause :** Une clé sans `read:compliance_user_data` a été utilisée pour appeler un point de terminaison de chats, de messages, de fichiers, de projets, de sessions, d'utilisateurs d'organisation ou de membres de groupes. Deux situations courantes mènent à cette erreur :

* Une Compliance Access Key (`sk-ant-api01-...`) a été créée sans la portée `read:compliance_user_data`.
* Une clé Admin API de la Claude Console (`sk-ant-admin01-...`) a été utilisée. Les clés Admin API possèdent uniquement `read:compliance_activities` et ne peuvent pas recevoir `read:compliance_user_data`. Elles ne peuvent donc pas appeler les points de terminaison de chats, de fichiers, de projets, de pièces jointes de projets, de sessions, d'utilisateurs ou de membres de groupes.

**Correction :** Utilisez une [Compliance Access Key](https://platform.claude.com/docs/fr/manage-claude/compliance-api-access#set-up-the-compliance-api) créée dans claude.ai en sélectionnant `read:compliance_user_data`. Si la requête ne doit réellement concerner que l'Activity Feed, dirigez plutôt la clé Admin API vers `GET /v1/compliance/activities`.

### Portée insuffisante : suppression

**Type :** `permission_error`

```text wrap
Missing required scopes. Got: ['read:compliance_user_data'] Needed: ['delete:compliance_user_data']
```

**Cause :** Une Compliance Access Key sans `delete:compliance_user_data` a été utilisée pour appeler un point de terminaison `DELETE` sur des chats, des fichiers ou des projets.

**Correction :** [Créez une nouvelle Compliance Access Key](https://platform.claude.com/docs/fr/manage-claude/compliance-api-access#set-up-the-compliance-api) en sélectionnant `delete:compliance_user_data`. La portée de suppression est distincte de `read:compliance_user_data` afin que les clés d'audit en lecture seule ne puissent pas supprimer de contenu.

## 404 Not Found

Une erreur 404 dont le message nomme une ressource ou un type de ressource signifie que l'identifiant dans le chemin n'existe pas ou a déjà été supprimé. Les suppressions de l'API Compliance sont immédiates et définitives. Une erreur 404 sur un identifiant précédemment connu signifie donc généralement que le contenu a disparu : supprimé définitivement par un appel de suppression de l'API Compliance, supprimé par une politique de rétention ou, pour les fichiers et les artefacts, supprimé avec leur chat par un utilisateur dans claude.ai. Une erreur 404 avec le message seul `Not found` est différente : la requête ne s'est pas authentifiée (ou le chemin n'existe pas), et n'importe quel point de terminaison peut la renvoyer, y compris les points de terminaison de liste. Consultez [Requête non authentifiée](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#request-not-authenticated). Les points de terminaison de sessions ajoutent deux cas. Sur les points de terminaison de sessions locales, un message 404 distinct, `Local sessions are not available.`, est renvoyé à chaque appel (y compris pour la liste) tant que les points de terminaison sont indisponibles pour votre organisation parente. Il ne dépend pas de l'identifiant de session et peut être temporaire. Consultez [Session locale introuvable](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#local-session-not-found). Sur les points de terminaison de sessions distantes, une session encore en cours de provisionnement (`status` à `pending`) n'a pas encore de transcription : son point de terminaison de messages renvoie donc une erreur 404 jusqu'au démarrage de la session. Consultez [Session distante introuvable](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#remote-session-not-found). Les chaînes de type d'activité citées dans chaque correction (par exemple, `claude_chat_created`) sont des valeurs que vous pouvez transmettre au filtre `activity_types[]` de l'Activity Feed. Consultez [Interroger les activités de conformité](https://platform.claude.com/docs/fr/api/compliance/activities/list) pour connaître toutes les valeurs prises en charge.

### Requête non authentifiée

**Type :** `not_found_error`

```text wrap
Not found
```

**Cause :** La requête ne contenait pas d'identifiant accepté par l'API Compliance : aucune clé API n'a été envoyée, ou la clé n'est ni une Compliance Access Key (`sk-ant-api01-...`) ni une clé Admin API (`sk-ant-admin01-...`), par exemple une clé Claude API (`sk-ant-api03-...`). Le statut, le type et le message sont identiques à ceux d'un chemin inexistant et ne dépendent ni du point de terminaison ni d'un identifiant de ressource. Les points de terminaison de liste tels que `GET /v1/compliance/activities` renvoient donc également ce corps. La seule exception est `GET /v1/compliance/organizations/{organization_id}/settings`, qui répond à ces requêtes par une erreur 401 `authentication_error`. Sur tous les points de terminaison, une Compliance Access Key ou une clé Admin API qui ne permet pas l'authentification renvoie à la place une erreur [401 Unauthorized](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#401-unauthorized).

**Correction :** Envoyez la clé dans l'en-tête `x-api-key` et vérifiez son préfixe : l'API Compliance accepte uniquement les clés `sk-ant-api01-...` et `sk-ant-admin01-...`. Consultez [De quelle clé avez-vous besoin ?](https://platform.claude.com/docs/fr/manage-claude/compliance-api-access#which-key-do-you-need). Si l'en-tête et la clé sont corrects et qu'un chemin renvoie toujours `Not found` alors que d'autres réussissent, vérifiez ce chemin dans la [référence de l'API Compliance](https://platform.claude.com/docs/fr/api/compliance).

### Chat introuvable

**Type :** `not_found_error`

```text wrap
Chat conversation not found: 'claude_chat_01H5CWunD7RpVJ5bHa8RCkja'
```

**Cause :** L'identifiant de chat dans le chemin ne correspond à aucun chat lisible via l'API Compliance. Le chat a peut-être été supprimé définitivement par un appel précédent à l'API Compliance ou supprimé par la politique de rétention de votre organisation, ou il appartient peut-être à une organisation que la clé appelante ne peut pas lire. Les chats qu'un utilisateur a supprimés dans claude.ai ne renvoient pas d'erreur 404 : ils restent lisibles, avec `deleted_at` renseigné, mais sans le contenu de leurs messages.

**Correction :** Vérifiez l'identifiant du chat à l'aide d'une activité `claude_chat_created` ou `claude_chat_viewed` récente. Si l'activité est récente et que la lecture échoue toujours, le chat a été supprimé définitivement (via cette API ou par expiration de la politique de rétention) ou appartient à une organisation hors de la portée de votre clé.

### Fichier introuvable

**Type :** `not_found_error`

```text wrap
File not found: 0d3b8f72-6c1e-4a59-b2de-7f4c9a1e5b60
```

**Cause :** L'identifiant de fichier n'existe pas dans une organisation que votre clé peut lire, ou le fichier a été supprimé. La suppression d'un chat dans claude.ai supprime également les fichiers qui y sont joints, bien que le chat lui-même reste listé. Le message identifie le fichier par son UUID sous-jacent plutôt que par l'identifiant `claude_file_...` envoyé dans la requête. Les points de terminaison de métadonnées, de contenu et de suppression renvoient ce corps. Il s'applique à la fois aux fichiers joints aux chats (`claude_file_...`) et aux fichiers de projets.

**Correction :** Effectuez un rapprochement avec les activités `claude_file_uploaded` ou `claude_file_deleted` récentes. Les fichiers supprimés avec un chat n'ont pas d'activité `claude_file_deleted` : vérifiez donc également l'activité `claude_chat_deleted` du chat. Si le fichier a été supprimé, le binaire a disparu. Les enregistrements d'activité restent dans le flux pendant la période de rétention de 6 ans.

### Fichier généré ou artefact introuvable

**Type :** `not_found_error`

```text wrap
Generated file not found: 'claude_gen_file_01TbR8wAcCeFhJkLnPqStUvX'
```

```text wrap
Generated file content not found: 'claude_gen_file_01TbR8wAcCeFhJkLnPqStUvX'
```

```text wrap
Artifact version not found: 'claude_artifact_version_01KmNpQrSt3UvWxYz5AbCdEfG'
```

**Cause :** L'identifiant dans le chemin ne correspond à aucun fichier généré par un outil ni à aucune version d'artefact lisible via l'API Compliance. Le point de terminaison de métadonnées des fichiers générés renvoie le premier corps, le point de terminaison de contenu renvoie le deuxième, et les deux points de terminaison d'artefacts renvoient le troisième. Les fichiers générés et les artefacts sont supprimés avec le chat dans lequel ils ont été créés, y compris lorsqu'un utilisateur supprime le chat dans claude.ai.

**Correction :** Utilisez [Obtenir les messages d'un chat](https://platform.claude.com/docs/fr/api/compliance/apps/chats/messages/list) pour retrouver le chat dont provient l'identifiant. Si le champ `deleted_at` du chat est renseigné, ou si une activité `claude_chat_deleted` nomme le chat, le contenu a disparu. Retirez l'identifiant de votre file d'attente. Sinon, vérifiez l'identifiant à l'aide des tableaux `generated_files` et `artifacts` des messages du chat.

### Projet introuvable

**Type :** `not_found_error`

```text wrap
No project is found with the provided id.
```

```text wrap
No project found with provided id, or it has already been deleted.
```

**Cause :** L'identifiant de projet n'existe pas ou a été supprimé. Les points de terminaison de détails du projet, de pièces jointes et de collaborateurs renvoient le premier corps. `DELETE /v1/compliance/apps/projects/{project_id}` renvoie le second.

**Correction :** Effectuez un rapprochement avec les activités `claude_project_created` ou `claude_project_deleted` récentes. L'Activity Feed continue d'exposer les événements du cycle de vie du projet même après la disparition du projet lui-même.

### Document de projet introuvable

**Type :** `not_found_error`

```text wrap
No project document found with the provided id.
```

```text wrap
No project document found with the provided id, or it has already been deleted.
```

**Cause :** L'identifiant du document de projet n'existe pas ou a été supprimé. Les points de terminaison de contenu et de métadonnées du document renvoient le premier corps. `DELETE /v1/compliance/apps/projects/documents/{document_id}` renvoie le second. Cette erreur s'applique aux documents de projet textuels (`claude_proj_doc_...`), et non aux fichiers de projet.

**Correction :** Utilisez `GET /v1/compliance/apps/projects/{project_id}/attachments` pour lister les pièces jointes actuelles. Si le document est absent, il a été supprimé. Récupérez-le via un enregistrement d'activité `claude_project_document_uploaded` si vous n'avez besoin que des métadonnées. L'enregistrement d'activité indique qui a téléversé le document, quand et dans quel projet, mais pas son nom.

### Session locale introuvable

**Type :** `not_found_error`

```text wrap
Local session not found.
```

**Cause :** L'identifiant de session transmis à `GET /v1/compliance/apps/sessions/local/{session_id}` ou à `GET /v1/compliance/apps/sessions/local/{session_id}/messages` ne correspond à aucune session locale lisible via l'API Compliance. Les deux points de terminaison renvoient ce même message, sans distinguer la cause, lorsque l'identifiant ne correspond pas à une session d'une organisation que votre clé peut lire (y compris les identifiants appartenant à une autre organisation parente), lorsque la session n'a jamais existé, lorsque la [conservation zéro des données](https://platform.claude.com/docs/fr/manage-claude/api-and-data-retention#zero-data-retention-zdr-scope) est en vigueur pour la session, ou lorsque toute l'activité de la session a dépassé la période de rétention applicable à l'organisation qui l'a exécutée. La réponse `Local session not found.` n'a pas de forme transitoire, car les sessions locales n'ont pas d'état de provisionnement (`pending`). Comparez avec [Session distante introuvable](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#remote-session-not-found), où une session `pending` renvoie une erreur 404 jusqu'à son démarrage. Un identifiant de session qui n'est pas un identifiant `clls_` bien formé renvoie à la place une erreur [400 Bad Request](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#400-bad-request).

Les points de terminaison de sessions locales, y compris le point de terminaison de liste, renvoient un message 404 différent, `Local sessions are not available.`, tant que les points de terminaison eux-mêmes sont indisponibles pour votre organisation parente. Cette réponse ne dépend pas de l'identifiant de session. Aucune clé, portée ou paramètre côté client ne la modifie, et elle peut être temporaire. Les deux réponses portent le type `not_found_error`. C'est le texte du message qui permet de les distinguer.

**Correction :** Vérifiez l'identifiant de session à l'aide de `GET /v1/compliance/apps/sessions/local`. Consultez [Sessions sur les machines des utilisateurs](https://platform.claude.com/docs/fr/manage-claude/compliance-sessions#retrieve-local-sessions). Si la session n'apparaît plus dans la liste, son contenu a dépassé la période de rétention (ou la session ne se trouve plus, pour une autre raison, dans une organisation que votre clé peut lire) et sa transcription n'est pas récupérable. Retirez l'identifiant de votre file d'attente. Si chaque appel, y compris la liste, renvoie `Local sessions are not available.`, conservez vos identifiants de session en file d'attente et réessayez lors de votre prochaine exécution planifiée. Si la réponse persiste, contactez votre représentant Anthropic en incluant l'en-tête de réponse `request-id`.

### Session distante introuvable

**Type :** `not_found_error`

```text wrap
Remote session not found.
```

**Cause :** L'identifiant de session transmis à `GET /v1/compliance/apps/sessions/remote/{session_id}/messages` ne correspond à aucune transcription de session lisible via l'API Compliance. Cela se produit lorsque l'identifiant de session (`cse_...`) n'existe pas ou que la session a été supprimée, lorsque la session appartient à une organisation que votre clé ne peut pas lire, ou lorsque le `status` de la session est encore `pending` : une session en attente n'a pas encore de transcription, de sorte que le point de terminaison de messages renvoie une erreur 404 jusqu'au démarrage de la session. Un identifiant de session qui n'est pas un identifiant `cse_` bien formé renvoie à la place une erreur [400 Bad Request](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#400-bad-request).

**Correction :** Vérifiez l'identifiant de session et son `status` à l'aide de `GET /v1/compliance/apps/sessions/remote`. Consultez [Sessions dans le cloud](https://platform.claude.com/docs/fr/manage-claude/compliance-sessions#retrieve-remote-sessions). Si la session est `pending`, réessayez une fois qu'elle a quitté ce statut. Si la session n'apparaît plus dans la liste, elle a été supprimée et sa transcription n'est pas récupérable.

### Organisation, rôle ou groupe introuvable

**Type :** `not_found_error`

```text wrap
The "ce86b5f3-7c16-48b3-a9f3-e1d2c4b8a0f1" organization does not exist or the requester is not authorized to access it.
```

Les points de terminaison d'organisations, de rôles et de groupes renvoient une erreur 404 `not_found_error` au format d'erreur standard. Le message relatif à l'organisation nomme l'`org_uuid`. Les messages relatifs aux rôles et aux groupes sont génériques (`Role not found.`, `Group not found.`). Cela se produit lorsqu'un identifiant de chemin (`org_uuid`, `role_id` ou `group_id`) n'existe pas ou n'appartient plus à une arborescence que la clé appelante peut lire.

**Cause :** L'identifiant dans le chemin ne correspond à aucun enregistrement lisible via l'API Compliance. Les rôles et les groupes peuvent être supprimés, et les organisations peuvent être dissociées de l'arborescence parente.

**Correction :** Vérifiez l'identifiant à l'aide du point de terminaison de liste correspondant, et effectuez un rapprochement avec les activités récentes d'organisation, de rôle ou de groupe dans l'[Activity Feed](https://platform.claude.com/docs/fr/manage-claude/compliance-activity-feed).

### Paramètres d'organisation non disponibles

**Type :** `not_found_error`

```text wrap
organization `91012d09-e48b-438e-a489-1bebfd8fa6f9` not found in this organization's hierarchy
```

**Cause :** `GET /v1/compliance/organizations/{organization_id}/settings` renvoie cette erreur 404 dans trois cas qui partagent intentionnellement le même corps, afin que la réponse ne révèle pas si une organisation existe : l'`organization_id` ne fait pas partie des organisations liées à votre organisation parente, la valeur n'est pas un UUID valide, ou le point de terminaison des paramètres n'est pas encore activé pour votre organisation parente.

**Correction :** Vérifiez l'identifiant à l'aide de [Lister les organisations](https://platform.claude.com/docs/fr/api/compliance/organizations/list). Si un identifiant d'organisation dont vous êtes sûr renvoie toujours une erreur 404, le point de terminaison des paramètres n'est pas encore activé pour votre organisation parente. Contactez votre représentant Anthropic.

## 409 Conflict

La requête est bien formée et autorisée, mais entre en conflit avec l'état actuel de la ressource. Le corps porte le type `invalid_request_error`, également utilisé par les réponses 400 : distinguez donc un conflit par le code de statut 409 plutôt que par `error.type`.

### Le projet a des chats associés

**Type :** `invalid_request_error`

```text wrap
The "claude_proj_01KGp4eZNug9ri4kE35RSppq" project cannot be deleted as it has chats attached to it. Delete or detach all chats, and try deleting the project again.
```

**Cause :** `DELETE /v1/compliance/apps/projects/{project_id}` a été appelé sur un projet auquel des chats sont encore associés.

**Correction :** Listez les chats du projet avec `GET /v1/compliance/apps/chats?user_ids[]={user_id}&project_ids[]={project_id}` (le filtre `project_ids[]` nécessite au moins une valeur `user_ids[]`. Énumérez les identifiants via [Lister les utilisateurs de l'organisation](https://platform.claude.com/docs/fr/manage-claude/compliance-org-data#list-organization-users)), supprimez chacun d'eux avec `DELETE /v1/compliance/apps/chats/{claude_chat_id}`, puis réessayez la suppression du projet.

## 429 Too Many Requests

Les requêtes adressées à l'API Compliance sont limitées à **600 requêtes par minute par [organisation parente](https://platform.claude.com/docs/fr/manage-claude/compliance-api#how-the-compliance-api-works)**. Cette limite constitue un budget unique partagé entre toutes les clés de l'organisation parente (les Compliance Access Keys et les clés Admin API de toutes les organisations liées) et entre tous les points de terminaison `/v1/compliance/*` ; les points de terminaison de sessions distantes sont en outre soumis à un second budget de requêtes. Pour une organisation Claude Console autonome, qui n'a pas d'organisation parente, le même budget s'applique à l'organisation elle-même et est partagé entre ses clés Admin API. Contactez votre représentant Anthropic si votre intégration nécessite une limite plus élevée.

Une erreur 429 est différente : sur une session très volumineuse, le point de terminaison des messages de sessions locales peut renvoyer [Serveur occupé à lire des transcriptions volumineuses](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#server-busy-reading-large-transcripts), qui n'est ni une « rate limit » (limite de débit) ni une limite imposée à votre organisation. Son entrée, à la fin de cette section, explique comment l'identifier et quoi faire.

Une fois votre clé API authentifiée, les réponses de l'API Compliance indiquent le budget partagé au moyen des [en-têtes de réponse de limite de débit](https://platform.claude.com/docs/fr/api/rate-limits#response-headers) standard, afin que votre client puisse réguler son débit de manière proactive au lieu d'attendre une erreur 429 :

* `anthropic-ratelimit-requests-limit` est le budget de requêtes par minute.
* `anthropic-ratelimit-requests-remaining` est le budget restant dans la fenêtre actuelle.
* `anthropic-ratelimit-requests-reset` est l'horodatage RFC 3339 auquel la fenêtre est réinitialisée et le budget complet restauré.

Une réponse 429 comporte également un en-tête `retry-after` indiquant le nombre de secondes à attendre avant d'envoyer la requête suivante. Cette valeur peut inclure une petite marge de sécurité au-delà de `anthropic-ratelimit-requests-reset` ; respectez `retry-after`.

```http
HTTP/1.1 429 Too Many Requests
date: Tue, 21 Apr 2026 14:38:02 GMT
retry-after: 25
anthropic-ratelimit-requests-limit: 600
anthropic-ratelimit-requests-remaining: 0
anthropic-ratelimit-requests-reset: 2026-04-21T14:38:25Z
```

```json
{
  "error": {
    "type": "rate_limit_error",
    "message": "Compliance API rate limit of 600 requests per minute per parent organization has been exceeded. Retry after the time indicated by the retry-after header. Quote the request-id response header when contacting Anthropic support."
  }
}
```

**Cause :** Votre organisation parente (ou votre organisation Claude Console autonome) a envoyé plus de 600 requêtes à `/v1/compliance/*` dans une fenêtre d'une minute, toutes clés partageant son budget confondues, ou elle a épuisé le second budget de requêtes des points de terminaison de sessions distantes (décrit plus loin dans cette section).

**Correction :** Attendez le nombre de secondes indiqué dans l'en-tête `retry-after`, puis réessayez. Si l'en-tête est absent (par exemple, supprimé par un intermédiaire), utilisez à la place un « exponential backoff » (délai d'attente exponentiel) : commencez à 1 seconde et doublez jusqu'à 60 secondes. N'avancez pas votre curseur de pagination en cas d'erreur 429 : la requête échouée n'a renvoyé aucune donnée, donc le curseur de la dernière page réussie reste correct.

Les requêtes dont l'authentification échoue (clé manquante ou non reconnue, ou clé Claude API au lieu d'une Compliance Access Key ou d'une clé Admin API) sont rejetées avant le limiteur de débit et ne consomment pas de quota. Une clé valide à laquelle il manque la portée requise par le point de terminaison consomme une unité de quota avant que l'erreur 403 ne soit renvoyée.

Les [points de terminaison de sessions locales](https://platform.claude.com/docs/fr/manage-claude/compliance-sessions#retrieve-local-sessions) ne sont décomptés que de la limite partagée. Les [points de terminaison de sessions distantes](https://platform.claude.com/docs/fr/manage-claude/compliance-sessions#retrieve-remote-sessions) sont en outre soumis à un second budget de requêtes, rattaché à votre organisation parente comme la limite partagée, qui s'ajoute à celle-ci. Une erreur 429 provenant de ce budget comporte un en-tête `retry-after` toujours égal à `1` (un délai d'attente minimal, et non le véritable moment de réinitialisation) ; les éventuels en-têtes `anthropic-ratelimit-*` de cette réponse décrivent la limite partagée et non ce budget, donc appliquez un délai d'attente exponentiel si l'erreur 429 se répète. L'une des erreurs 429 ne provient d'aucun budget de requêtes : [Serveur occupé à lire des transcriptions volumineuses](https://platform.claude.com/docs/fr/manage-claude/compliance-errors#server-busy-reading-large-transcripts), que seul le point de terminaison des messages de sessions locales renvoie.

Si vous interrogez l'[Activity Feed](https://platform.claude.com/docs/fr/manage-claude/compliance-activity-feed) selon un calendrier, maintenez votre débit de requêtes global (toutes clés, organisations liées et workers concurrents confondus) en dessous de la limite partagée. Surveillez `anthropic-ratelimit-requests-remaining` pour ralentir avant de l'atteindre. Consultez [Concevoir votre intégration de conformité](https://platform.claude.com/docs/fr/manage-claude/compliance-integration-patterns#choose-a-feed-consumption-pattern) pour choisir entre l'interrogation par fenêtre et l'ingestion pilotée par curseur.

### Serveur occupé à lire des transcriptions volumineuses

**Type :** `rate_limit_error`

**Code d'erreur :** `transcript_read_server_busy`, renvoyé dans `error.details.error_code`

```text wrap
Too many large session transcripts are being read at once. This is not a limit on your organization. Retry this request after the number of seconds in the retry-after header.
```

**Cause :** `GET /v1/compliance/apps/sessions/local/{session_id}/messages` peut renvoyer cette erreur 429 pour une page d'une session très volumineuse. Seul ce point de terminaison renvoie cette erreur, et elle peut survenir avec l'une ou l'autre valeur de `order`. Il ne s'agit ni d'une limite de débit ni d'une limite imposée à votre organisation : cela ne signifie pas que vous avez dépassé la limite partagée ou tout autre budget de requêtes. Cette erreur partage le code de statut 429 et le type `rate_limit_error` avec les réponses de limite de débit ; identifiez-la donc par son code d'erreur, et non par le texte du message, qui pourrait être reformulé.

**Correction :** Attendez le nombre de secondes indiqué dans l'en-tête `retry-after`, puis renvoyez la même requête, sans modification : conservez la même valeur de `page`, ou aucune si la requête n'en avait pas. Si la nouvelle tentative renvoie à nouveau cette erreur, attendez et réessayez de la même manière. Si l'en-tête `retry-after` est absent, utilisez à la place un délai d'attente exponentiel (commencez à 1 seconde et doublez jusqu'à 60 secondes). Si cette erreur se reproduit d'une exécution à l'autre, contactez votre représentant Anthropic en indiquant l'en-tête de réponse `request-id`.

## 500 Internal Server Error

Une erreur 500 de l'API Compliance comporte un en-tête de réponse `x-should-retry: false` lorsque l'échec est déterministe. Le SDK Claude respecte automatiquement cet en-tête. Si vous utilisez une bibliothèque HTTP générique de nouvelles tentatives qui réessaie sur chaque erreur 5xx, désactivez les nouvelles tentatives lorsque `x-should-retry` vaut `false` ; réessayer cette erreur échoue de manière identique à chaque tentative.

Une erreur 500 sans l'en-tête `x-should-retry: false` est transitoire : réessayez avec un délai d'attente exponentiel (commencez à 1 seconde et doublez jusqu'à 60 secondes). Il en va de même pour les réponses 502, 503, 504 et 529. L'exception est un petit ensemble d'erreurs 503 de sessions locales, décrites ci-après, qui dépendent des paramètres ou de la clé de chiffrement d'une organisation plutôt que de la charge. Consultez [Erreurs](https://platform.claude.com/docs/fr/api/errors) pour la sémantique des nouvelles tentatives à l'échelle de la plateforme.

### Sessions locales temporairement indisponibles

**Type :** `overloaded_error`

```text wrap
The local-sessions index is temporarily unavailable. Try again shortly.
```

```text wrap
Captured content is temporarily unavailable. Try again shortly.
```

```text wrap
The local-sessions index cannot currently evaluate retention overrides for this page. Try again later.
```

**Cause :** Les [points de terminaison des sessions locales](https://platform.claude.com/docs/fr/manage-claude/compliance-sessions#retrieve-local-sessions) renvoient une erreur 503 avec l'un de ces corps. Les trois partagent le type `overloaded_error`. C'est donc l'une des rares erreurs de cette page pour lesquelles vous devez utiliser le texte du message, et non `error.type`, pour distinguer les conditions :

* Le corps `index is temporarily unavailable` signifie que les listes de sessions sont brièvement indisponibles en raison de la charge ou d'une condition du backend. Cette situation est transitoire.
* Le corps `Captured content` signifie que le contenu de la transcription d'une session ne peut pas être renvoyé pour le moment. Cette situation est généralement transitoire elle aussi. Dans les organisations qui utilisent des [« customer-managed encryption keys » (clés de chiffrement gérées par le client)](https://platform.claude.com/docs/fr/manage-claude/cmek), le point de terminaison des messages renvoie également ce corps pour chaque page dont votre clé gérée par le client ne peut pas déchiffrer le contenu. C'est le cas, par exemple, si vous avez désactivé, révoqué ou détruit la clé, ou si la clé est inaccessible. L'erreur persiste alors tant que la clé ne peut pas être utilisée. Le texte du message est identique dans les deux cas. Le seul signal indiquant que la clé est en cause est donc la répétition de l'erreur pour cette organisation. Une clé inutilisable n'est jamais signalée comme `not_captured`.
* Le corps `retention overrides` signifie qu'un paramètre de rétention ou de traitement des données n'a pas encore pu être évalué. Ce paramètre s'applique à une ou plusieurs sessions de la plage demandée. Sur les points de terminaison de récupération et de messages, le corps indique `for this session` au lieu de `for this page`. Cette condition dépend des données et des paramètres de l'organisation qui a exécuté la session, et non de la charge. Elle peut persister pendant une période prolongée.

**Solution :** Traitez chaque corps comme suit :

* Pour les deux corps `Try again shortly.`, réessayez avec un « exponential backoff » (délai d'attente exponentiel). N'avancez pas votre curseur `page`, car la requête ayant échoué n'a renvoyé aucune donnée.

* Si le corps `Captured content` se répète sur le point de terminaison des messages pour une organisation qui utilise une clé gérée par le client, considérez l'erreur comme persistante. Arrêtez le parcours des transcriptions de cette organisation et vérifiez l'état de la clé dans votre service de gestion des clés. Les transcriptions des autres organisations liées ne sont pas affectées, pas plus que les métadonnées des sessions, quelle que soit l'organisation. Si vous réessayez lors d'une exécution ultérieure, recommencez le parcours de chaque session sans `page`. En effet, les curseurs de page des messages expirent 24 heures après la première page du parcours.

* Pour le corps `Try again later.`, ne maintenez pas un parcours ouvert en attendant que la condition disparaisse. Sur le point de terminaison de liste, deux options s'offrent à vous :

  * Réessayez plus tard en recommençant sans le paramètre `page`. Un jeton de page de liste datant de plus de 24 heures est toujours accepté, mais il est réévalué par rapport à la limite de rétention actuelle. Un parcours mis en attente peut donc ignorer des sessions.
  * Réduisez la fenêtre `created_at` jusqu'à ce que la requête réussisse, puis exportez séparément la plage ignorée lors d'une exécution ultérieure.

  Sur les points de terminaison de récupération et de messages, ignorez cet identifiant de session et poursuivez le reste de votre export. Réessayez ensuite la session lors d'une exécution ultérieure. Les curseurs de page des messages expirent 24 heures après la première page du parcours. Recommencez donc le parcours de cette session sans `page` lorsque vous y revenez.

Si l'une de ces conditions se reproduit d'une exécution à l'autre, contactez votre représentant Anthropic en indiquant l'en-tête de réponse `request-id`. Dans le cas d'une clé gérée par le client, ne le faites que si l'erreur persiste alors que cette clé est utilisable.

Pour les incidents affectant l'ensemble du service, consultez [status.anthropic.com](https://status.anthropic.com).

## Prochaines étapes

<CardGroup cols={2}>
  <Card title="FAQ de la Compliance API" href="https://platform.claude.com/docs/fr/manage-claude/compliance-faq">
    Questions fréquentes sur l'accès, les portées, la rétention et l'intégration.
  </Card>

  <Card title="Erreurs" href="https://platform.claude.com/docs/fr/api/errors">
    Le catalogue des erreurs de l'ensemble de la plateforme et la sémantique des nouvelles tentatives.
  </Card>
</CardGroup>
