Si vous rencontrez cette erreur en connectant Claude Code à AWS Bedrock :
InvokeModelWithResponseStream: operation error Bedrock Runtime:
InvokeModelWithResponseStream, https response error StatusCode: 400,
RequestID: 47574f13-c884-4b12-a003-6d0cf252d8dd,
ValidationException: system.1.cache_control.***.scope:
Extra inputs are not permitted
Cela arrive fréquemment, surtout lors de l'utilisation de --resume pour reprendre une session historique. Il s'agit d'un problème de compatibilité connu, votre configuration n'est pas en cause.
La cause profonde est que Claude Code envoie un champ scope non pris en charge par Bedrock. Pour corriger cela, il suffit de définir une variable d'environnement. Cela prend 30 secondes.
Valeur ajoutée : Après avoir lu cet article, vous comprendrez l'origine de cette erreur, maîtriserez 3 solutions de correction et saurez comment configurer correctement votre environnement (CLI, VS Code, JetBrains, etc.).

Analyse approfondie de l'erreur Claude Code sur Bedrock
Pour comprendre cette erreur, il faut saisir un contexte technique crucial : le support du paramètre cache_control diffère entre l'API native d'Anthropic et AWS Bedrock.
La cause technique de l'erreur
En janvier 2026, Anthropic a introduit une fonctionnalité bêta dans son API native, prompt-caching-scope-2026-01-05, qui ajoute un champ scope à l'objet cache_control :
{
"cache_control": {
"type": "ephemeral",
"scope": "turn"
}
}
Depuis la version v2.1.24 de Claude Code, ce champ scope est inclus par défaut dans les requêtes API.
Le problème est le suivant : AWS Bedrock ne reconnaît pas le champ scope. La validation du schéma de Bedrock est extrêmement stricte : toute rencontre avec un champ inconnu déclenche immédiatement une erreur 400.
| Caractéristique | API native Anthropic | AWS Bedrock |
|---|---|---|
cache_control.type: "ephemeral" |
Supporté | Supporté |
cache_control.ttl: "5m" |
Supporté | Supporté |
cache_control.ttl: "1h" |
Supporté | Supporté (depuis janv. 2026) |
cache_control.scope |
Supporté (Bêta) | Non supporté, erreur 400 |
| En-têtes Bêta | Acceptés | Rejetés (erreur de flag bêta invalide) |
| Stratégie de validation | Souple (ignore les champs inconnus) | Stricte (rejette les champs inconnus) |
En résumé : l'API native d'Anthropic est tolérante et ignore les champs qu'elle ne connaît pas. Bedrock est rigide et rejette tout ce qui n'est pas explicitement défini. Claude Code envoie un champ que Bedrock ne comprend pas, ce qui provoque l'erreur.
🎯 Conseil technique : Ce problème ne concerne que les utilisateurs passant par AWS Bedrock. Si vous utilisez l'API native d'Anthropic (via une plateforme comme APIYI apiyi.com par exemple), vous ne rencontrerez jamais cette erreur, car l'API native supporte parfaitement le champ
scope.
Pourquoi --resume déclenche-t-il plus souvent cette erreur ?
Bien que cette erreur ne soit pas exclusive à --resume, elle est effectivement plus fréquente lors de la reprise d'une session historique. Voici pourquoi :

Mécanisme interne de --resume :
- Chargement de la session historique : Lecture de l'historique complet depuis
~/.claude/projects/<projet>/<id_session>.jsonl. - Reconstruction du contexte : Assemblage du message système, des définitions d'outils et de tous les messages historiques dans un tableau
messagescomplet. - Optimisation du cache : Comme le contexte restauré est souvent volumineux (contenant tout l'historique), Claude Code place plus activement des points d'arrêt
cache_controlsur les messages système pour optimiser les coûts. - Envoi de la requête : Le premier appel API contient le contexte complet reconstruit +
cache_control(incluant le champscope).
Point clé : La restauration d'une session implique un contexte plus large → une optimisation du cache plus agressive → une fréquence plus élevée du champ cache_control → une probabilité accrue de déclencher l'erreur.
La création d'une nouvelle session peut également déclencher l'erreur, mais comme le contexte initial est plus réduit, les marqueurs de cache sont moins denses.
Solution 1 pour corriger l'erreur Claude Code Bedrock : Désactiver les bêtas expérimentales (Recommandé)
C'est la solution la plus recommandée : elle corrige l'erreur tout en conservant les fonctionnalités de base du Prompt Caching.
Principe de la solution
En définissant CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1, Claude Code effectue les actions suivantes :
- Supprime les en-têtes Beta des requêtes (comme
prompt-caching-scope-2026-01-05) - Supprime le champ
scopedanscache_control - Conserve les champs supportés par Bedrock tels que
cache_control.typeetcache_control.ttl
En d'autres termes, vous profitez toujours de l'optimisation des coûts offerte par le Prompt Caching, sans utiliser la nouvelle fonctionnalité scope.
Configuration via le terminal CLI
macOS / Linux :
# Configuration temporaire (valide pour la session de terminal actuelle)
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
# Configuration permanente (ajoutée au fichier de configuration du shell)
echo 'export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1' >> ~/.zshrc
source ~/.zshrc
# Si vous utilisez bash
echo 'export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1' >> ~/.bashrc
source ~/.bashrc
Windows (PowerShell) :
# Configuration temporaire
$env:CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS = "1"
# Configuration permanente
[System.Environment]::SetEnvironmentVariable("CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS", "1", "User")
Une fois configuré, lancez simplement Claude Code :
# Nouvelle session
claude
# Reprendre une session (l'erreur ne devrait plus apparaître)
claude --resume
Configuration de l'extension VS Code (Important !)
L'extension VS Code ne lit pas les variables d'environnement du shell — même si vous les avez définies dans votre .zshrc, l'extension Claude Code dans VS Code ne les verra pas. Vous devez les configurer comme suit :
Méthode 1 : Modifier le fichier de configuration global de Claude (Recommandé)
Modifiez le fichier ~/.claude/settings.json :
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
Méthode 2 : Via les paramètres de VS Code
Ouvrez les paramètres de VS Code → recherchez claude → trouvez l'option de configuration des variables d'environnement → ajoutez CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.
Configuration pour les IDE JetBrains
Le plugin Claude Code pour les IDE de la suite JetBrains (IntelliJ, WebStorm, PyCharm, etc.) nécessite également une configuration spécifique :
Modifiez le fichier ~/.claude/settings.json (partagé avec VS Code) :
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
💡 Astuce :
~/.claude/settings.jsonest le fichier de configuration global de Claude Code, lu par tous les clients (CLI, VS Code, JetBrains). C'est le moyen le plus simple de configurer les variables d'environnement pour qu'elles soient effectives sur toutes les plateformes en une seule fois.
Solution 2 pour corriger l'erreur Claude Code Bedrock : Désactiver le Prompt Caching
Si la solution 1 ne résout pas votre problème (cas rares), vous pouvez désactiver complètement le Prompt Caching.
Principe de la solution
En définissant DISABLE_PROMPT_CACHING=1, Claude Code supprime tous les champs cache_control des requêtes. Sans cache_control, il n'y a plus de scope, et l'erreur disparaît totalement.
Coût : Vous perdez l'optimisation des coûts liée au Prompt Caching. Pour les conversations longues, cela peut entraîner des frais de jetons (tokens) plus élevés.
Méthode de configuration
# CLI
export DISABLE_PROMPT_CACHING=1
# ~/.claude/settings.json (universel pour toutes les plateformes)
{
"env": {
"DISABLE_PROMPT_CACHING": "1"
}
}
Quand choisir la solution 2 ?
| Scénario | Choisir la solution 1 | Choisir la solution 2 |
|---|---|---|
| Utilisateur Bedrock standard | ✅ Recommandé | |
| L'erreur persiste après la solution 1 | ✅ | |
| Utilisation d'un proxy comme LiteLLM | ✅ Plus sûr | |
| Conversations courtes, coût du cache négligeable | ✅ Aucun impact | |
| Conversations longues, optimisation des coûts requise | ✅ Cache conservé | ❌ Augmentera les frais |
Solution 3 pour corriger les erreurs Claude Code Bedrock : Configuration "Double Sécurité"
Définissez simultanément deux variables d'environnement pour garantir que tous les champs non pris en charge par Bedrock soient supprimés.
# CLI
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export DISABLE_PROMPT_CACHING=1
// ~/.claude/settings.json
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"DISABLE_PROMPT_CACHING": "1"
}
}
Il s'agit de la configuration la plus sûre, idéale pour les environnements de production exigeant une stabilité absolue.
🚀 Une autre approche : Si vous ne voulez pas gérer les variables d'environnement ou subir les problèmes de compatibilité de Bedrock, envisagez de passer à l'API native d'Anthropic. Via la plateforme APIYI apiyi.com, vous pouvez accéder directement aux interfaces natives d'Anthropic, avec une prise en charge complète de toutes les fonctionnalités de mise en cache des invites (y compris
scope), sans avoir besoin d'un compte AWS.
Processus complet de dépannage des erreurs Claude Code Bedrock
Si vous n'êtes pas sûr de la solution à appliquer, suivez ce processus de diagnostic :

Étape 1 : Confirmer le type d'erreur
Vérifiez si le message d'erreur contient les mots-clés suivants :
cache_control.***.scope: Extra inputs are not permitted
ou
ValidationException: ... cache_control ... scope
Si c'est le cas, il s'agit d'un problème de compatibilité avec le champ scope.
Étape 2 : Confirmer le chemin d'appel
# Vérifier le point de terminaison API utilisé par Claude Code
echo $ANTHROPIC_BASE_URL
echo $CLAUDE_CODE_USE_BEDROCK
Si vous avez défini CLAUDE_CODE_USE_BEDROCK=1 ou des variables liées à AWS comme AWS_REGION, cela signifie que vous utilisez Bedrock.
Étape 3 : Appliquer la correction
# Essayer d'abord la solution 1
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
# Tester si le problème est résolu
claude --resume
Étape 4 : Vérifier la correction
# Vérifier si la variable d'environnement est active
echo $CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS
# Devrait afficher : 1
# Tester la création d'une nouvelle session
claude
# Tester la reprise d'une session
claude --resume
Étape 5 : Si l'erreur persiste
# Ajouter la solution 2
export DISABLE_PROMPT_CACHING=1
# Vérifier également le fichier settings.json
cat ~/.claude/settings.json
Assurez-vous que le format du fichier settings.json est correct :
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"DISABLE_PROMPT_CACHING": "1"
}
}
🎯 Conseil technique : Si vous utilisez une passerelle comme LiteLLM pour vous connecter à Bedrock, sachez que LiteLLM intègre nativement depuis mars 2026 une fonction de suppression automatique du champ
scope(PR #22867). La mise à jour vers la dernière version de LiteLLM peut également résoudre ce problème. Si vous recherchez une solution d'accès à l'API Claude plus stable, APIYI apiyi.com propose des canaux API natifs Anthropic, naturellement exempts de ce type de limitations de compatibilité.
Autres problèmes de compatibilité courants avec Claude Code et Bedrock
cache_control.scope n'est pas le seul piège de compatibilité avec Bedrock. Voici les problèmes similaires fréquemment rencontrés par les utilisateurs de Bedrock :
| Mot-clé d'erreur | Cause | Solution |
|---|---|---|
cache_control.scope: Extra inputs |
Champ scope non pris en charge | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
invalid beta flag |
Flag Beta non pris en charge | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
thinking: undefined |
Format de paramètre Thinking incompatible | Mettre à jour Claude Code vers la dernière version |
Lié à context_management |
Champs de gestion de contexte non pris en charge | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
eager_input_streaming |
Optimisation du streaming d'entrée non prise en charge | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
La plupart de ces problèmes peuvent être résolus radicalement avec CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1, car ces champs non pris en charge sont essentiellement des fonctionnalités Beta de l'API native d'Anthropic.
💰 Optimisation des coûts : Le Prompt Caching de Bedrock ne prend en charge que deux TTL : 5 minutes et 1 heure. Si votre cas d'utilisation dépend fortement de la mise en cache, passer par APIYI (apiyi.com) pour accéder à l'API native d'Anthropic vous permet d'obtenir des stratégies de cache plus flexibles, tout en évitant les coûts de débogage liés aux problèmes de compatibilité mentionnés ci-dessus.
FAQ sur les erreurs courantes de Claude Code avec Bedrock
Q1 : J’ai configuré les variables d’environnement, mais VS Code affiche toujours des erreurs ?
L'extension VS Code n'hérite pas des variables d'environnement définies dans votre .zshrc ou .bashrc. Vous devez les configurer via le champ env dans le fichier ~/.claude/settings.json :
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
Après la configuration, redémarrez VS Code (pas seulement le rechargement de la fenêtre, mais une fermeture complète et une réouverture) pour vous assurer que la configuration est bien prise en compte.
Q2 : La désactivation du Prompt Caching affecte-t-elle les performances ?
Cela n'affecte ni la qualité de la réponse du modèle, ni sa vitesse. Le Prompt Caching est simplement un mécanisme d'optimisation des coûts : lorsque le cache est utilisé, cela réduit les frais liés au recalcul des jetons. Une fois désactivé, chaque requête est facturée intégralement, mais les performances du modèle restent identiques. Pour les conversations courtes, la différence de coût est minime. Dans les scénarios de longues conversations, le cache peut économiser 30 à 50 % des frais liés aux jetons d'entrée.
Q3 : Ce problème sera-t-il corrigé officiellement ?
C'est un problème connu, suivi par plusieurs tickets sur GitHub (#23220, #41731, etc.). Cependant, comme la stratégie de validation du schéma de Bedrock est une décision côté AWS, il est difficile pour Anthropic de le résoudre entièrement depuis Claude Code. La solution actuelle via les variables d'environnement est le workaround recommandé officiellement. À long terme, il faudra probablement qu'AWS Bedrock assouplisse la validation du schéma ou prenne en charge le champ scope.
Q4 : J’utilise Google Vertex AI, vais-je rencontrer ce problème ?
Oui. Google Vertex AI ne prend pas non plus en charge le champ cache_control.scope et génère des erreurs similaires. La solution est la même : définissez CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. Les utilisateurs de Vertex AI doivent également faire attention à la configuration liée à CLAUDE_CODE_USE_VERTEX=1.
Q5 : Quelle est la différence entre –resume et -c (–continue) ? Les conditions de déclenchement de l’erreur sont-elles les mêmes ?
--resume/-r: Ouvre le sélecteur de session pour choisir une session historique à reprendre.--continue/-c: Reprend directement la dernière session.
Techniquement, les deux déclenchent une reconstruction du contexte et des marqueurs cache_control, donc les conditions de déclenchement de l'erreur sont exactement les mêmes. En tant qu'utilisateur de Bedrock, vous pouvez rencontrer cette erreur 400 avec les deux commandes.
Q6 : Si j’utilise LiteLLM comme proxy pour Bedrock, vais-je rencontrer ce problème ?
Depuis mars 2026 (PR #22867), LiteLLM intègre la fonction _remove_scope_from_cache_control, qui supprime automatiquement le champ scope des requêtes envoyées à Bedrock et Azure AI. Si vous utilisez la dernière version de LiteLLM comme proxy Bedrock, ce problème devrait être géré automatiquement. Par mesure de sécurité, il est toutefois conseillé de définir également CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.
Q7 : Existe-t-il une solution parfaite sans perte de fonctionnalités ?
Pour les utilisateurs de Bedrock, il n'existe actuellement aucune solution sans perte. La solution 1 (désactiver les Beta) ne sacrifie que la nouvelle fonctionnalité scope, ce qui a un impact minimal. Si vous souhaitez utiliser pleinement toutes les fonctionnalités de Prompt Caching de Claude (y compris scope), vous devez utiliser l'API native d'Anthropic. Vous pouvez accéder rapidement à l'API native via la plateforme APIYI (apiyi.com) sans être limité par les contraintes de compatibilité de Bedrock.
Aide-mémoire : Corriger les erreurs Claude Code avec Bedrock
| Action | Commande / Configuration |
|---|---|
| Option 1 : Désactiver les Beta (recommandé) | export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
| Option 2 : Désactiver le cache | export DISABLE_PROMPT_CACHING=1 |
| Configuration VS Code / JetBrains | Modifier le champ env dans ~/.claude/settings.json |
| Vérifier les variables d'environnement | echo $CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS |
| Tester la reprise de session | claude --resume |
| Voir le fichier de configuration | cat ~/.claude/settings.json |
| Voir la version de Claude Code | claude --version |
| Suivi du ticket GitHub | anthropics/claude-code#23220 |
Résumé
Lorsque vous utilisez Claude Code via AWS Bedrock, l'erreur cache_control.scope: Extra inputs are not permitted survient car Bedrock ne prend pas en charge le champ Beta scope de l'API native d'Anthropic.
Solution la plus rapide :
# Dans le terminal
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
// Dans ~/.claude/settings.json (recommandé, fonctionne partout)
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
Trois points à retenir :
- Ce n'est pas de votre faute — Il s'agit d'une différence de fonctionnalités entre Bedrock et l'API native d'Anthropic.
- Utilisateurs VS Code : vous devez configurer le fichier settings.json — Les variables d'environnement du shell ne sont pas lues par l'extension VS Code.
--resumen'est pas la cause profonde — Toutes les invocations du modèle via Bedrock peuvent déclencher cette erreur,--resumene fait que la rendre plus visible.
Si vous ne voulez plus gérer les problèmes de compatibilité avec Bedrock, passer à l'API native d'Anthropic est la solution radicale. Via APIYI (apiyi.com), vous pouvez accéder rapidement à l'API native de Claude, bénéficier de toutes les fonctionnalités sans avoir à gérer l'infrastructure AWS.
Auteur de l'article : Équipe technique APIYI
Échanges techniques : Visitez APIYI apiyi.com pour plus de tutoriels sur Claude Code et obtenir un support technique
Date de mise à jour : Avril 2026
Versions concernées : Claude Code v2.1.24+, AWS Bedrock
Références :
- Ticket GitHub #23220: Erreur cache_control.scope sur Claude Code v2.1.24+
- Lien :
github.com/anthropics/claude-code/issues/23220
- Lien :
- Ticket GitHub #41731: L'extension VS Code envoie un champ scope non pris en charge
- Lien :
github.com/anthropics/claude-code/issues/41731
- Lien :
- Documentation AWS Bedrock sur la mise en cache des invites:
- Lien :
docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html
- Lien :
- Documentation Anthropic sur la mise en cache des invites:
- Lien :
docs.anthropic.com/en/docs/build-with-claude/prompt-caching
- Lien :
- Documentation officielle de Claude Code sur Amazon Bedrock:
- Lien :
docs.anthropic.com/en/docs/claude-code/bedrock
- Lien :
