Référence des erreurs
Consultez les messages d'erreur d'exécution de Claude Code avec leur signification et comment les corriger.
Cette page répertorie les erreurs d'exécution que Claude Code affiche et comment récupérer de chacune d'elles, plus ce qu'il faut vérifier lorsque les réponses semblent incorrectes sans erreur. Pour les erreurs d'installation telles que command not found ou les défaillances TLS lors de la configuration, consultez Dépannage de l'installation et de la connexion.
À l'exception des erreurs de wrapper et d'IDE, que le programme de lancement imprime plutôt que Claude Code lui-même, ces erreurs et commandes de récupération s'appliquent sur l'ensemble de l'interface CLI, de l'application Desktop et des sessions cloud, car les trois encapsulent le même CLI Claude Code. Pour les autres problèmes spécifiques à la surface, consultez la section dépannage sur la page de cette surface.
[!NOTE]
Claude Code appelle l'API Claude pour les réponses du modèle, donc la plupart des erreurs d'exécution correspondent à un code d'erreur API sous-jacent. Cette page couvre ce que chaque erreur signifie dans Claude Code et comment récupérer. Pour les définitions brutes du code de statut HTTP, consultez la référence des erreurs de la plateforme Claude.
Trouvez votre erreur
Faites correspondre le message que vous voyez à une section ci-dessous.
| Message | Section |
|---|---|
API Error: 500 Internal server error |
Erreurs serveur |
API Error: Repeated 529 Overloaded errors |
Erreurs serveur |
Opus is experiencing high load / Fable is experiencing high load |
Erreurs serveur |
Request timed out |
Erreurs serveur, ou Réseau si le message mentionne votre connexion Internet |
API Error: No response from API |
Erreurs serveur |
API Error: Stream idle timeout - no chunks received |
Watchdogs d'inactivité du streaming, ou Une longue réflexion se termine par des délais d'expiration du proxy derrière une passerelle Claude apps |
Server error mid-response. The response above may be incomplete. |
Erreurs serveur |
Connection lost mid-response / Your computer went to sleep mid-response / The response stopped arriving |
Erreurs serveur |
Connection closed mid-response / Response stalled mid-stream |
Erreurs serveur |
Part of the response never arrived / The response stream was malformed |
Erreurs serveur |
API Error: Content block not found / API Error: Content block already closed / API Error: Stream event unreadable |
Erreurs serveur |
Connection lost before a response was produced / Your computer went to sleep before a response was produced / The response stalled before a response was produced |
Tentatives automatiques |
Connection closed while thinking / Response stalled while thinking |
Tentatives automatiques |
Connection lost while your computer was asleep |
Tentatives automatiques |
The model's tool call could not be parsed (retry also failed). |
Tentatives automatiques |
<model> is temporarily unavailable, so auto mode cannot determine the safety of... |
Erreurs serveur |
Auto mode could not evaluate this action and is blocking it for safety |
Erreurs serveur |
Not run · auto mode's check had no usable answer |
Erreurs serveur |
Auto mode classifier transcript exceeded context window |
Erreurs serveur |
Agent aborted: auto mode classifier request refused by the safety safeguard |
Erreurs serveur |
The server-side auto mode classifier gave no verdict |
Erreurs serveur |
<tool> was not reviewed and did not run: the conversation is too long for auto mode's classifier |
Erreurs serveur |
Auto mode is unavailable — the server returned no safety verdict for the last 10 responses |
Erreurs serveur |
Agent terminated early due to an API error |
Erreurs serveur |
You've hit your session limit / You've hit your weekly limit / You've hit your Opus limit / You've hit your Sonnet limit |
Limites d'utilisation |
Usage credits required for 1M context |
Limites d'utilisation |
the prompt to confirm went unanswered — nothing was sent |
Limites d'utilisation |
Server is temporarily limiting requests |
Limites d'utilisation |
Request rejected (429) |
Limites d'utilisation |
Credit balance is too low |
Limites d'utilisation |
You've hit your monthly spend limit / You've hit your individual spend limit / You've hit your org's monthly spend limit / You've hit your channel's monthly spend limit / You've hit your team's shared budget / You've hit your individual usage limit |
Limites d'utilisation |
Could not update your spend limit |
Limites d'utilisation |
spend limit reached / spend limit unavailable |
Limites d'utilisation |
Not logged in · Please run /login |
Authentification |
Couldn't save your login |
Authentification |
Authentication required · Sign in again to continue |
Authentification |
Could not resolve authentication method |
Authentification |
Invalid API key |
Authentification |
Your apiKeyHelper script is failing |
Authentification |
Invalid auth token · Fix external auth token |
Authentification |
Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable |
Authentification |
Invalid request header from the environment · Fix the environment variable |
Authentification |
This organization has been disabled |
Authentification |
Your organization has disabled API key authentication |
Authentification |
Your organization has disabled Claude subscription access |
Authentification |
Routines are disabled by your organization's policy |
Authentification |
Remote Control is only available when using Claude via api.anthropic.com |
Authentification |
OAuth token refresh failed — run /login to re-authenticate |
Authentification |
JWT refresh failed: no OAuth token — run /login |
Authentification |
Claude.ai login expired |
Authentification |
Claude.ai login was rejected — run /login, then /remote-control |
Authentification |
OAuth token unavailable — run /login to restore Remote Control |
Authentification |
Signed out of Claude — run /login, then /remote-control |
Authentification |
Remote Control could not renew this computer's connection |
Authentification |
signed-in claude.ai account or organization changed on this machine |
Authentification |
Remote Control stopped — the app running this session is now signed in to a different Claude account |
Authentification |
Remote Control stopped — the app running this session is signed out of Claude |
Authentification |
Couldn't verify your organization's policy for remote control |
Dépannage de Remote Control |
Remote Control is disabled by your organization's policy |
Dépannage de Remote Control |
Remote Control was turned off by your organization's policy |
Dépannage de Remote Control |
OAuth token revoked / OAuth token has expired |
Authentification |
Failed to authenticate: OAuth token revoked |
Authentification |
Your account does not have access to Claude. Please login again or contact your administrator. |
Authentification |
API Error: 401 Invalid authentication credentials |
Authentification |
Login expired · Please run /login |
Authentification |
The browser can't return the sign-in to Claude Code automatically |
Authentification |
Couldn't start the local listener that receives the browser sign-in. Try again. |
Authentification |
Failed to start OAuth callback server |
Authentification |
Claude login not accepted · Run /login, then try again |
Authentification |
Artifacts need a claude.ai login |
Authentification |
Not signed in to the Cloud gateway — run /login. |
Authentification |
Administrator policy requires a Cloud gateway sign-in on this machine |
Authentification |
Failed to authenticate: OAuth session expired and could not be refreshed |
Authentification |
Could not refresh your login because another Claude Code process is refreshing it |
Authentification |
Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh |
Authentification |
Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted |
Authentification |
Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted |
Authentification |
Anthropic profile login expired · Re-authenticate your Anthropic profile |
Authentification |
Login expired · Run /login to sign in again, or re-authenticate your Anthropic profile |
Authentification |
Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile |
Authentification |
does not meet scope requirement user:profile |
Authentification |
claude.ai rejected the session token / session token rejected |
Authentification |
MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate) |
Authentification |
rejected the credential from its headersHelper / rejected the Authorization header in its config |
Authentification |
(check the helper, then start a new task or chat) / (update it, then start a new task or chat) |
Authentification |
MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate |
Authentification |
MCP server "<name>" requires re-authorization (token expired) |
Authentification |
Couldn't read the stored credentials for MCP server "<name>", so the request didn't run |
Authentification |
A request to MCP server "<name>" was sent without your stored credentials |
Authentification |
This server's URL is missing or not a valid URL, so sign-in can't start |
Authentification |
Issuer mismatch in authorization response (RFC 9207) |
Authentification |
Refusing to send credentials to non-https token endpoint / <short-name> from the MCP SDK for <server-url> |
Authentification |
Cloud gateway session expired — run /login to reconnect. |
Authentification |
Cloud gateway <url> no longer accepts this session |
Authentification |
Sign-in timed out while waiting for you to continue. Try again. |
Authentification |
AWS credentials expired or invalid |
Authentification |
AWS authentication failed |
Authentification |
Google Cloud credentials expired or invalid |
Authentification |
Google Cloud authentication failed |
Authentification |
Microsoft Foundry authentication failed |
Authentification |
Gateway refused the request |
Authentification |
Could not load AWS credentials / Could not load Google Cloud credentials |
Authentification |
AWS default-chain credential resolve timed out |
Authentification |
Timed out after 60s waiting for AWS |
Authentification |
A request to AWS timed out. Check your network and proxy settings, then try again. |
Authentification |
Could not load the default credentials sur Agent Platform de Google Cloud |
Authentification |
Unable to connect to API |
Réseau |
Connection refused — / Can't reach the API server — / No internet route — / Couldn't connect through your proxy / Connection dropped, chacun avec un code d'erreur entre parenthèses |
Réseau |
Unable to connect to Anthropic services pendant la configuration |
Réseau |
Socket is closed |
Réseau |
Waiting for API response · will retry in |
Tentatives automatiques, ou Réseau si cela persiste |
API returned an empty or malformed response |
Réseau |
Streaming response ended before any complete data was received |
Réseau |
Bedrock streaming response has content-type "..."; expected "application/vnd.amazon.eventstream" |
Réseau |
SSL certificate verification failed |
Réseau |
SSL certificate error (...) lors de la connexion ou du démarrage |
Réseau |
unable to get local issuer certificate |
Réseau |
403 avec x-deny-reason: host_not_allowed dans une session cloud ou une tâche planifiée cloud |
Réseau |
proxy refused the connection |
Réseau |
403 avec GitHub GraphQL is not available from Claude Code sessions dans une session cloud |
Proxy GitHub |
The cloud environments service returned an empty response / The cloud environments service returned a response in an unexpected format |
Réseau |
Failed to fetch session from Sessions API: Failed to fetch session logs |
Réseau |
Couldn't reconnect to your Remote Control session |
Réseau |
N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed. |
Réseau |
Couldn't share the transcript. |
Réseau |
Couldn't send feedback |
Réseau |
Feedback payload too large. Try again without the transcript, or shorten the details. |
Réseau |
MCP server "<name>" connection timed out. Your computer went to sleep or its clock changed while connecting. |
Réseau |
Prompt is too long / Input is too long for requested model |
Erreurs de requête |
Prompt is too long · automatic compaction failed: |
Erreurs de requête |
Prompt is too long · this conversation is a single exchange / A single-exchange conversation cannot be compacted |
Erreurs de requête |
Context limit reached · /compact or /clear to continue |
Erreurs de requête |
Context limit reached · /clear to continue |
Erreurs de requête |
capability_rejected: prompt_too_long dans une session de la passerelle Claude apps |
Erreurs de requête |
upstream rejected the request / request too large for this upstream dans une session de la passerelle Claude apps |
Messages d'erreur en amont |
upstream rate limit exceeded dans une session de la passerelle Claude apps |
Messages d'erreur en amont |
all upstreams failed (N attempted) dans une session de la passerelle Claude apps |
Messages d'erreur en amont |
Claude Code may not be enabled for your organization après une connexion à la passerelle Claude apps |
Dépannage de la passerelle Claude apps |
Context exceeds the ...-token limit by ... tokens dans la sortie de /context |
Erreurs de requête |
Request too large |
Erreurs de requête |
Request too large for the API's 32MB request limit |
Erreurs de requête |
Image was too large |
Erreurs de requête |
API Error: an image in the conversation could not be processed and was removed |
Erreurs de requête |
Unable to resize image |
Erreurs de requête |
Request rejected as unprocessable by the model |
Erreurs de requête |
PDF too large / PDF is password protected / pdftoppm is not installed |
Erreurs de requête |
Extra inputs are not permitted |
Erreurs de requête |
API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid / Property keys should match pattern |
Erreurs de requête |
Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128 |
Erreurs de requête |
tools.N.custom.name: String should have at most 128 characters |
Erreurs de requête |
tool_use.name: String should have at most 200 characters |
Erreurs de requête |
There's an issue with the selected model |
Erreurs de requête |
Model ... is not a recognized model id |
Erreurs de requête |
Model ... not found |
Erreurs de requête |
Couldn't confirm model ... with the API |
Erreurs de requête |
API error: ... · model not changed |
Erreurs de requête |
Claude Opus is not available with the Claude Pro plan |
Erreurs de requête |
Claude Code ... does not support this model; version ... or newer is required |
Erreurs de requête |
Claude Code ... is older than the minimum version required by your organization's policy |
Erreurs de requête |
Model ... is restricted by your organization's settings |
Erreurs de requête |
Model ... is not available. Your organization restricts model selection. |
Erreurs de requête |
Can't switch to the default model |
Erreurs de requête |
Model switch ... blocked by a PreModelSwitch hook |
Erreurs de requête |
couldn't save it as your default / couldn't confirm it was saved as your default |
Erreurs de requête |
is less capable than the current main model / Advisor will not activate on the main model / cannot advise |
Erreurs de requête |
thinking.type.enabled is not supported for this model |
Erreurs de requête |
Effort '<level>' isn't available with thinking turned off on this model |
Erreurs de requête |
effort '<level>' is not supported when thinking is disabled |
Erreurs de requête |
max_tokens must be greater than thinking.budget_tokens |
Erreurs de requête |
Claude's response exceeded the ... output token maximum |
Erreurs de requête |
API Error: 400 due to tool use concurrency issues |
Erreurs de requête |
API Error: 400 orphaned tool_result in conversation history |
Erreurs de requête |
API Error: 400 duplicate tool_use ID in conversation history |
Erreurs de requête |
Invalid data in redacted_thinking block |
Erreurs de requête |
[Unsupported tool content removed] |
Erreurs de requête |
role 'system' must precede an 'assistant' message |
Erreurs de requête |
Invalid encrypted_content in search_result block / Invalid encrypted_index in text block / Failed to decrypt web search result content |
Erreurs de requête |
Invalid encrypted_stdout in encrypted_code_execution_result block |
Erreurs de requête |
server_tool_use.name: Input should be à chaque tour d'une session reprise |
Erreurs de requête |
<model> can't help with this. Start a new session to continue |
Erreurs de requête |
Claude Code is unable to respond to this request, which appears to violate our Usage Policy |
Erreurs de requête |
<model>'s safeguards flagged this message |
Erreurs de requête |
<model>'s safeguards flagged this session |
Erreurs de requête |
<model> has safety measures that flagged this message for a cybersecurity topic |
Erreurs de requête |
Details: `[reasoning_extraction]` |
Erreurs de requête |
API Error: Output blocked by content filtering policy |
Erreurs de requête |
Installation was killed before it could finish (exit code 137) |
Dépannage de l'installation et de la connexion |
The connection dropped while downloading the update |
Dépannage de l'installation et de la connexion |
Download timed out: exceeded the total deadline |
Dépannage de l'installation et de la connexion |
Release verification failed for Claude Code <version> (<reason>). The update was not installed. |
Dépannage de l'installation et de la connexion |
Auto-update failed · Run claude doctor |
Dépannage de l'installation et de la connexion |
--bg and --print conflict |
Erreurs de ligne de commande |
Couldn't tell whether --bg is a flag or text here, so nothing was started |
Erreurs de ligne de commande |
Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one. |
Erreurs de ligne de commande |
Cloud sessions cannot be created from a --restricted session |
Erreurs de ligne de commande |
Cloud sessions are disabled by your organization's policy |
Erreurs de ligne de commande |
Cloud sessions use your claude.ai login, à la fin d'un refus par la politique qui nomme des identifiants |
Erreurs de ligne de commande |
Couldn't verify your organization's policy for cloud sessions |
Erreurs de ligne de commande |
Cloud sessions aren't available: suivi de la raison pour laquelle la politique de votre organisation n'a pas pu être chargée |
Erreurs de ligne de commande |
Cloud sessions aren't available with this Console sign-in. They need a claude.ai sign-in. |
Unable to get organization UUID |
Cloud sessions need a claude.ai sign-in |
Impossible d'obtenir l'UUID de l'organisation |
Nothing was stashed: "<path>" is now a folder in place of a tracked file or link / are now folders in place of tracked files or links |
Erreurs de ligne de commande |
Error: --json-schema is not a valid JSON Schema |
Erreurs de ligne de commande |
Error: Invalid --agents configuration: |
Erreurs de ligne de commande |
Error: --agents takes a JSON object, or a file path only with --print (-p) |
Erreurs de ligne de commande |
Error: --agents file not found |
Erreurs de ligne de commande |
Error: Settings file exceeds the 2MiB limit |
Erreurs de ligne de commande |
The current directory no longer exists (it was deleted or moved) / Can't read the current directory |
Erreurs de ligne de commande |
Temp directory <dir> ... Refusing to use it / Claude Code's temporary directory <dir> could not be created |
Erreurs de ligne de commande |
ENOSPC: no space left on device, mkdir '<dir>' |
Erreurs de ligne de commande |
couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded |
Erreurs de ligne de commande |
Error: Workspace not trusted au démarrage de Remote Control |
Erreurs de ligne de commande |
Error: Workspace not trusted lors de l'exécution de claude ultrareview |
Erreurs de ligne de commande |
Ultrareview did not start |
Erreurs de ligne de commande |
`<flag>` before `remote-control` is not carried over to the sessions Remote Control starts |
Erreurs de ligne de commande |
--sandbox is not supported by claude remote-control / --no-sandbox is not supported by claude remote-control |
Erreurs de ligne de commande |
`claude import` is not yet available in this build |
Erreurs de ligne de commande |
Could not read Claude Code config |
Erreurs de ligne de commande |
Could not import <server>: <reason> |
Erreurs de ligne de commande |
Cannot add MCP server to scope: managed |
Erreurs de ligne de commande |
Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide |
Erreurs de ligne de commande |
is Anthropic-hosted and doesn't support local OAuth |
Erreurs de ligne de commande |
Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes |
Erreurs de ligne de commande |
MCP server "<name>" was not saved to / was not removed from |
Erreurs de ligne de commande |
MCP server "<name>" may not have been saved / may not have been removed |
Erreurs de ligne de commande |
Server rejected the Authorization header minted by the configured headersHelper |
Erreurs de ligne de commande |
This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability |
Erreurs de ligne de commande |
Error: MCP tool <name> (passed via --permission-prompt-tool) not found |
Erreurs de ligne de commande |
OAuth callback port <port> is already in use — another process may be holding it |
Erreurs de ligne de commande |
No available ports for OAuth redirect |
Erreurs de ligne de commande |
Shell command failed for pattern "...", depuis /security-review ou tout skill qui injecte du contexte dynamique |
Erreurs de ligne de commande |
Shell command permission check failed for pattern "...", provenant d'un skill qui injecte du contexte dynamique |
Erreurs de ligne de commande |
Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found |
Erreurs de ligne de commande |
No shell command in <name> was run, because the <tool> tool does not accept one of them |
Erreurs de ligne de commande |
Input must be provided either through stdin or as a prompt argument when using --print |
Erreurs de ligne de commande |
Claude Code can't read the keyboard here: stdin is not a terminal |
Erreurs de ligne de commande |
Error: Input contained only whitespace |
Erreurs de ligne de commande |
Blank prompt — the message was only whitespace, so nothing was sent to the model. |
Erreurs de ligne de commande |
Error: stream-json input carried over 256M characters with no newline |
Erreurs de ligne de commande |
Unknown command: /<name>, avec ou sans suggestion Did you mean |
Erreurs de ligne de commande |
Diff is too large for ultrareview / PR #<N> is too large for ultrareview |
Erreurs de ligne de commande |
Could not find merge-base with <branch> |
Erreurs de ligne de commande |
Your checkout has no branches (detached HEAD only) |
Erreurs de ligne de commande |
Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected |
Erreurs de ligne de commande |
Your connected GitHub account can't see <owner>/<repo> |
Erreurs de ligne de commande |
The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead |
Erreurs de ligne de commande |
Not uploading this working tree avec the upload cannot follow that setting |
Erreurs de ligne de commande |
GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud |
Erreurs de ligne de commande |
Your GitHub organization has an IP allowlist that is blocking Claude |
Erreurs de ligne de commande |
Your GitHub organization requires single sign-on |
Erreurs de ligne de commande |
Your GitHub organization's identity provider (Microsoft Entra ID) has a Conditional Access policy that is blocking Claude |
Erreurs de ligne de commande |
Single sign-on authorization needed |
Erreurs de ligne de commande |
Failed to resume the conversation |
Erreurs de ligne de commande |
No conversation found with session ID: <session-id> |
Erreurs de ligne de commande |
Windows reported an error (EBADF) when Claude Code read this session's transcript file |
Erreurs de ligne de commande |
Cannot switch renderers in this session |
Erreurs de ligne de commande |
Cannot switch renderers while work is running in the background |
Erreurs de ligne de commande |
Claude Code couldn't restart |
Erreurs de ligne de commande |
Couldn't open Claude Desktop |
Erreurs de ligne de commande |
Failed to open Claude Desktop. Please try opening it manually. |
Erreurs de ligne de commande |
Couldn't read your Zed keymap / Couldn't back up your Zed keymap / Couldn't update your Zed keymap |
Erreurs de ligne de commande |
Your Zed keymap isn't a readable list of keybindings |
Erreurs de ligne de commande |
Skill usage reports are not available on this connection. |
Erreurs de ligne de commande |
Custom output styles can't be selected over Remote Control or from a relayed message |
Erreurs de ligne de commande |
Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load |
Erreurs de ligne de commande |
/recap only runs when you ask for it yourself in this session |
Erreurs de ligne de commande |
/feedback is disabled by your organization's policy, ou le même message pour /bug ou /share |
Erreurs de ligne de commande |
`plugin eval` is currently in early access / `plugin eval` is currently unavailable |
Erreurs de plugin |
cannot be evaluated where sessions load it |
Tester des plugins avec des evals |
Marketplace "<name>" is registered from an untrusted source |
Erreurs de plugin |
Claude Code refuses the marketplace name "<name>" |
Erreurs de plugin |
Marketplace name impersonates an official Anthropic/Claude marketplace |
Erreurs de plugin |
Marketplace "<name>" is already added from a different source |
Erreurs de plugin |
"<name>" is another spelling of "<reserved>", a reserved marketplace name |
Erreurs de plugin |
Cannot add marketplace "<name>": Claude Code cannot install plugins from a marketplace with this name |
Dépannage des plugins |
Cannot add marketplace "<name>": Claude Code reserves this name and cannot register a marketplace under it |
Dépannage des plugins |
Marketplace "<name>" is added but ignored |
Dépannage des plugins |
Marketplace "<name>" is registered but was refused (see the debug log) |
Dépannage des plugins |
references ${user_config.*} in a shell-form command |
Erreurs de plugin |
Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command |
Erreurs de plugin |
headersHelper for MCP server '<name>' references ${user_config.*} |
Erreurs de plugin |
Plugin archive integrity check failed |
Erreurs de plugin |
An npm plugin source must name a registry package |
Dépannage des plugins |
The packages it lists are not installed / The packages it lists were not installed, because |
Dépannage des plugins |
does not load (...), so Claude Code ignores the whole file |
Dépannage des plugins |
path escapes plugin directory |
Erreurs de plugin |
Plugin not loaded: its manifest <path> was not read |
Erreurs de plugin |
path could not be checked |
Erreurs de plugin |
its marketplace entry path does not stay inside the marketplace directory |
Erreurs de plugin |
Plugin source path refused |
Erreurs de plugin |
Failed to load marketplace configuration |
Erreurs de plugin |
Marketplace configuration file is corrupted |
Erreurs de plugin |
Plugin "<name>@synced" is required by your organization and can't be disabled here |
Erreurs de plugin |
"<plugin>" was not uninstalled: it is still switched on in <file> |
Erreurs de plugin |
"<plugin>" was not uninstalled: <file> is there and could not be read |
Erreurs de plugin |
Plugin "<plugin>" was not uninstalled: installed_plugins.json |
Dépannage des plugins |
Plugin directory does not exist: <path> |
Dépannage des plugins |
Skipping connection (recent failure cached; retries automatically in 15 min, or edit the plugin config to retry now) |
Erreurs de plugin |
Error: No such tool available: <tool name> |
Erreurs d'outil |
MCP server "<name>" connection closed before the tool call was answered |
Erreurs d'outil |
MCP server "<name>" is disabled — re-enable it via /mcp to use its tools |
Erreurs d'outil |
MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit. |
Erreurs d'outil |
would be spawned with zero tools — refusing |
Erreurs d'outil |
File is covered by a Read deny rule in your permission settings |
Erreurs d'outil |
cannot contain null bytes (\0) |
Erreurs d'outil |
Path contains null bytes |
Erreurs d'outil |
command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run |
Erreurs d'outil |
File is too large to read as an image (the limit is 128MB) |
Erreurs d'outil |
Cannot read this as an image: <path> is a pipe or a device |
Erreurs d'outil |
subagent_type is required: the general-purpose agent is not available in this session |
Erreurs d'outil |
Error: this write left the memory index at MEMORY.md at ..., over its ... read limit |
Erreurs d'outil |
Sandbox is required but failed to initialize: <reason> |
Dépannage du sandboxing |
Sandbox is required (sandbox.failIfUnavailable) and stopped being available in this session: <reason> |
Dépannage du sandboxing |
pkill: refusing to run |
Erreurs d'outil |
Failed to write to <name>'s inbox — nothing was sent |
Erreurs d'outil |
Failed to write the plan approval request to the lead's inbox — plan not submitted |
Erreurs d'outil |
Its agent definition was not restored: the folder its definition file came from is not trusted |
Erreurs d'outil |
Only a teammate can approve a shutdown request |
Erreurs d'outil |
A command-line deny rule cannot be handed to a teammate intact |
Erreurs d'outil |
Message too large for cross-session delivery |
Erreurs d'outil |
Too many messages to this session just now |
Erreurs d'outil |
Cross-session message was dropped at the recipient session's inbox |
Erreurs d'outil |
Refusing to send: reply target is a symlink / Refusing to send: cannot vet reply target |
Erreurs d'outil |
Refusing to read <path>: its symlink resolution changed after permission was checked (<reason>) / Refusing to search <path>: its symlink resolution changed after permission was checked |
Erreurs d'outil |
Refusing to write <path>: its parent-directory symlink resolution changed after permission was checked / Refusing to write <path>: it is a symbolic link. Write to the link's target path instead |
Erreurs d'outil |
Refusing to write through symlink: <path> / Refusing to write into symlinked directory: <path> |
Erreurs d'outil |
Refusing to write <path>: where it leads on disk could not be determined / Refusing to read <path>: where it leads on disk could not be determined |
Erreurs d'outil |
Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared / Refusing to search <path>: it could not be opened |
Erreurs d'outil |
its permission check expired before it ran (too many concurrent file operations) / ripgrep was found only by name on PATH |
Erreurs d'outil |
task output swap refused (tasks dir moved or linked) |
Erreurs d'outil |
Command killed: its output file was replaced or could no longer be verified |
Erreurs d'outil |
Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free / Nearly out of inodes: this computer's volume holding <dir> |
Erreurs d'outil |
Disk full: a test write beside this command's output file / Disk quota used up: a test write beside this command's output file |
Erreurs d'outil |
The command was not started: this computer's disk is full (ENOSPC) / the user's disk quota is used up (EDQUOT) |
Erreurs d'outil |
Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT) / The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC) |
Erreurs d'outil |
Command output was lost: the temp filesystem at <dir> is full / is out of inodes |
Erreurs d'outil |
File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary |
Erreurs d'outil |
git is not installed on this Mac. To install it, run xcode-select --install, then try again. |
Erreurs d'outil |
the source file is not valid UTF-8 text / the source file is not valid UTF-16 text |
Erreurs d'outil |
the source file has the replacement character U+FFFD |
Erreurs d'outil |
Not published: that file is on a network share |
Erreurs d'outil |
Not published: Claude sent the same content again after a newer version of the artifact turned it away / Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away |
Erreurs d'outil |
Reading a local file from outside this session's connected folders, or through a link, needs the approval card |
Erreurs d'outil |
cannot read file_path (...) — the file could not be examined, and no one can answer the approval card |
Erreurs d'outil |
WebFetch cannot fetch localhost or other hostnames without a dot |
Erreurs d'outil |
The safety check for domain ... is rate-limited |
Erreurs d'outil |
The safety check for domain ... is temporarily rate-limited |
Erreurs d'outil |
Unable to verify if domain ... is safe to fetch |
Erreurs d'outil |
Can't open MCP settings while no terminal is attached to this background session |
Erreurs de session en arrière-plan |
Can't open MCP settings in a background session |
Erreurs de session en arrière-plan |
blocked because the path is spelled in a form that cannot be safely resolved |
Erreurs de session en arrière-plan |
blocked because the path is network-shaped |
Erreurs de session en arrière-plan |
is isolated in the worktree <path>, but this command <reason>. Refusing to run it |
Erreurs de session en arrière-plan |
too complex to verify that it stays inside the worktree |
Erreurs de session en arrière-plan |
This session has no saved transcript |
Erreurs de session en arrière-plan |
Can't open — this session is running in another terminal |
Erreurs de session en arrière-plan |
This conversation is already open in another running Claude session |
Erreurs de session en arrière-plan |
This session's saved conversation is no longer on disk |
Erreurs de session en arrière-plan |
Bypass permissions was requested at launch and ignored |
Mode bypass permissions ignoré dans une session en arrière-plan |
kept <id> — its worktree is still at <path> |
Erreurs de session en arrière-plan si la ligne suivante du message mentionne des commits non poussés, sinon Ce qui est supprimé lors de la suppression d'une session |
kept <id> — <n> unpushed commits on <branch> |
Erreurs de session en arrière-plan |
kept <id> — worktree has commits that are not pushed anywhere |
Erreurs de session en arrière-plan |
terminal host process died — press Enter to restart / This session's terminal host process died |
Erreurs de session en arrière-plan |
Session isn't responding / Press enter again to restart this session — it isn't responding |
Erreurs de session en arrière-plan |
Session <id> was stopped while the respawn was in flight |
Erreurs de session en arrière-plan |
This session was running agent '<name>', which is no longer available |
Erreurs de session en arrière-plan |
This session restarted <time> after its next /loop wakeup was due, so that wakeup will not fire |
Erreurs de session en arrière-plan |
No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder |
Erreurs de session en arrière-plan |
No LLM gateway: opened from another folder · respawn from <folder> |
Erreurs de session en arrière-plan |
CLAUDE_CODE_PROCESS_WRAPPER: launcher ... |
Erreurs de session en arrière-plan |
EUNKNOWN: unknown error, uv_spawn |
Erreurs de session en arrière-plan |
EACCES: permission denied, posix_spawn |
Erreurs de session en arrière-plan |
exited before it became reachable |
Erreurs de session en arrière-plan |
Couldn't start a background session (working directory no longer exists or is not accessible: ...) |
Erreurs de session en arrière-plan |
Workspace not trusted. au démarrage ou au redémarrage d'une session en arrière-plan |
Erreurs de session en arrière-plan |
Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...) |
Erreurs de session en arrière-plan |
Claude Code process exited with code N |
Erreurs de wrapper et d'IDE |
The connection to Claude Code ended before this message completed |
Erreurs de wrapper et d'IDE |
Could not locate the Claude CLI on PATH |
Erreurs de wrapper et d'IDE |
The Claude Code program for this computer, the <build> build, could not be found |
Erreurs de wrapper et d'IDE |
Restored the code, but skipped N files |
Avertissements et erreurs de rembobinage |
No files were restored: N files failed (backup missing, or the file could not be updated) |
Avertissements et erreurs de rembobinage |
Transcript writes are failing (...) |
Avertissements d'enregistrement de session |
Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set |
Avertissements d'enregistrement de session |
Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker |
Avertissements d'enregistrement de session |
Claude Code's fullscreen renderer didn't finish starting last time on this machine / Claude Code's fullscreen renderer has repeatedly failed to start on this machine |
Rendu en plein écran |
Claude Code exited after an unrecoverable interface error (...) |
Avertissements de configuration |
Agent descriptions are over the 15.0k-token limit |
Avertissements de configuration |
hook needs quotes around a path with a space |
Avertissements de configuration |
Instruction file not loaded |
Avertissements de configuration |
Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account |
Avertissements de configuration |
N skill or command names refused: run with --debug to see which ([names]), rename, then restart |
Avertissements de configuration |
Ignoring N permissions.allow entries from ... this workspace has not been trusted |
Avertissements de configuration |
is a network path, which cannot be added as a working directory |
Avertissements de configuration |
Remote managed settings failed to load (<cause>) |
Avertissements de configuration |
Managed settings were not approved; exiting without applying them. |
Avertissements de configuration |
Your organization's managed settings need your approval, which couldn't be asked for here. |
Avertissements de configuration |
Claude Code can't start: your organization's managed settings block the default model / Claude Code can't start: your organization allows only the models listed in "availableModels" |
Avertissements de configuration |
Your organization's managed settings allow Claude Code to use: <providers> |
Avertissements de configuration |
Your organization's managed settings allow Claude Code to use no API provider at all |
Avertissements de configuration |
MCP server <name> is blocked by enterprise managed policy |
Avertissements de configuration |
"<name>" is a reserved MCP server name and was not loaded |
Avertissements de configuration |
Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it. |
Avertissements de configuration |
Managed settings drop-in directory could not be read |
Avertissements de configuration |
Unable to read managed policy settings |
Avertissements de configuration |
Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry: |
Avertissements de configuration |
otelHeadersHelper failed; telemetry is not being exported. See /status: ... |
Avertissements de configuration |
"crossSessionInbound" must be one of "accept", "hold", "refuse" |
Avertissements de configuration |
API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name |
Avertissements de configuration |
headersHelper not run — this workspace has no persisted trust |
Avertissements de configuration |
Invalid permission rule "..." was skipped: Malformed Tool(content) rule |
Avertissements de configuration |
matches no tool · check for typos / matches no known tool — check for typos |
Avertissements de configuration |
... is not matched by file permission checks |
Avertissements de configuration |
Write(<path>) never matches · use Edit(<path>) / Glob(<path>) never matches · use Read(<path>) |
Avertissements de configuration |
... has a wildcard before the rest of the command |
Avertissements de configuration |
allows any option at its * · use an exact value |
Avertissements de configuration |
Denying Bash also turns off the PowerShell tool, so Claude has neither |
Avertissements de configuration |
CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced |
Avertissements de configuration |
CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" reads as <N> tokens, so Claude Code treats it as the 100k minimum |
Valeurs et avertissements pour CLAUDE_CODE_AUTO_COMPACT_WINDOW |
CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" is too large, so Claude Code treats it as the 1M maximum |
Valeurs et avertissements pour CLAUDE_CODE_AUTO_COMPACT_WINDOW |
CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" isn't a usable size, so Claude Code ignores it |
Valeurs et avertissements pour CLAUDE_CODE_AUTO_COMPACT_WINDOW |
Model "<model>" isn't recognized · context assumed to be 200k tokens |
Corriger la fenêtre pour une passerelle ou un ID de modèle personnalisé |
Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens |
Corriger la fenêtre pour une passerelle ou un ID de modèle personnalisé |
[claude-code:unrecognized_model] |
Avertissements de configuration |
is ignored — managed settings set allowManagedReadPathsOnly / is ignored — managed settings set allowManagedDomainsOnly |
Avertissements de configuration |
Sandbox mask files left behind at write-deny paths |
Avertissements de configuration |
Stale sandbox mask files left by a killed session |
Avertissements de configuration |
| Les réponses semblent être de qualité inférieure à la normale | Qualité des réponses |
Tentatives automatiques
Claude Code réessaie les défaillances transitoires jusqu'à 10 fois avec un backoff exponentiel avant de vous afficher une erreur. Il ne réessaie pas toujours une défaillance qui arrive au milieu de la réponse de Claude. Lorsque vous voyez l'une des erreurs de cette page, Claude Code a déjà effectué les tentatives qui s'appliquent à cette défaillance.
Claude Code réessaie ces défaillances :
- Les erreurs serveur, les réponses surchargées et les délais d'attente de requête qui arrivent avant que la moindre partie de la réponse de Claude n'ait été envoyée en streaming.
- Une erreur serveur ou une réponse surchargée qui arrive après que Claude a terminé sa réflexion mais avant qu'il n'ait commencé un texte ou un appel d'outil. Claude Code réessaie une erreur serveur à ce stade jusqu'à deux fois. Avant v2.1.284, Claude Code terminait le tour avec l'erreur à ce stade.
- Les connexions interrompues. Lorsqu'une connexion s'interrompt au milieu d'une requête avant que Claude n'ait complété une partie de sa réponse, y compris sa réflexion, Claude Code renvoie la requête avec le même backoff et le tour continue, même si du texte avait déjà commencé à être envoyé en streaming. Lorsqu'elle s'interrompt après que Claude a terminé sa réflexion mais avant qu'il n'ait commencé un texte ou un appel d'outil, Claude Code renvoie plutôt la requête jusqu'à deux fois en succession rapide, et termine le tour avec
Connection lost before a response was producedsi la connexion continue à s'interrompre à ce stade. - Une connexion que Claude Code détecte comme ayant été interrompue par votre ordinateur qui s'endort au milieu d'une requête. Claude Code la compte comme une connexion interrompue selon les règles ci-dessus ; une fois que l'étiquette de tentative nomme la raison spécifique, elle lit
Connection lost while your computer was asleep, et si le tour se termine après que Claude a terminé sa réflexion mais avant un texte ou un appel d'outil, le message litYour computer went to sleep before a response was produced. - Un flux de réponse bloqué, lorsque les en-têtes de réponse sont arrivés mais aucune partie de la réponse de Claude n'est arrivée, ou lorsque Claude a terminé sa réflexion mais n'a pas commencé un texte ou un appel d'outil : Claude Code abandonne la connexion bloquée et renvoie la requête en streaming au maximum une fois. Si la réponse se bloque une deuxième fois après que Claude a terminé sa réflexion mais avant un texte ou un appel d'outil, Claude Code termine le tour avec
The response stalled before a response was produced. - Une requête en streaming à laquelle l'API ne répond jamais avec des en-têtes de réponse, sur une connexion où le délai de premier octet s'exécute. À la date limite, Claude Code abandonne la requête et la renvoie dans le budget de tentatives. Si le délai expire également pour un renvoi, le tour se termine avec No response from API. Lorsque vous définissez
CLAUDE_CODE_RETRY_WATCHDOG, Claude Code continue plutôt à renvoyer la requête dans le budget. - Une réponse en streaming que le filtre de contenu de sortie de l'API arrête avant que Claude n'ait terminé sa réflexion ou commencé un texte ou un appel d'outil. Claude Code renvoie la requête une fois, dans le budget de tentatives, et affiche Output blocked by content filtering policy si le filtre arrête également la deuxième réponse.
- Les throttles 429 temporaires, mais pas le
429de limite de dépenses d'une passerelle, qui n'est pas un throttle ; voir Spend limit reached.- Lorsque vous êtes connecté avec un abonnement claude.ai, cela inclut les throttles 429 qui ne portent pas les en-têtes de quota de votre plan. Avant v2.1.199, Claude Code ne réessayait ces throttles que pour les connexions par clé API et Enterprise.
- Une requête rejetée parce que l'entrée plus
max_tokensdépasse la limite de contexte. La renvoyer inchangée échouerait de la même manière, donc Claude Code réessaie avec unmax_tokensréduit, et arrête de réessayer et compacte à la place dans deux cas :- Lorsqu'aucune réduction ne peut tenir, par exemple lorsque la conversation elle-même remplit presque la fenêtre de contexte.
- Lorsqu'une tentative ne peut pas réduire davantage
max_tokens. Avant v2.1.218, Claude Code pouvait renvoyer une requête réduite qui ne tenait toujours pas, par exemple lorsque le budget de réflexion étendue dépassait le contexte restant, jusqu'à ce que le budget de tentatives s'épuise.
- Une réponse qui indique que Claude appelle un outil mais ne contient aucun appel d'outil. Claude Code réessaie en demandant à Claude l'appel d'outil, jusqu'à deux fois. Si les deux nouvelles tentatives échouent de la même manière, vous voyez
The model's tool call could not be parsed (retry also failed).et le tour se termine. Pour réessayer, envoyez un autre message. Avant v2.1.307, Claude Code réessayait une fois avant de terminer le tour. - Des identifiants Google Cloud expirés ou manquants sur Google Cloud's Agent Platform, ou des identifiants AWS qui ne se chargent pas sur votre machine. Claude Code rejette ses identifiants en cache et réessaie jusqu'à deux fois, puis signale l'erreur pour que vous puissiez vous réauthentifier immédiatement, comme décrit sous Could not load AWS or Google Cloud credentials. Avant v2.1.228, Claude Code réessayait des identifiants Google Cloud défaillants à travers le budget de tentatives complet avant d'afficher l'erreur.
- Un
401ou403de l'API Anthropic, directement ou via une passerelle LLM, tandis qu'un scriptapiKeyHelperfournit les identifiants. Claude Code réexécute le script et réessaie avec sa sortie fraîche, dans le budget de tentatives complet. Lorsque le script lui-même échoue à la réexécution, Claude Code affiche Your apiKeyHelper script is failing à la place.
Avant v2.1.227, Connection lost before a response was produced lisait Connection closed while thinking, before producing a response et The response stalled before a response was produced lisait Response stalled while thinking, before producing a response.
Claude Code ne réessaie pas ces défaillances :
- Une défaillance de validation de certificat TLS, telle qu'un proxy inspectant TLS, un bundle
NODE_EXTRA_CA_CERTSmanquant, ou un certificat expiré. Claude Code signale l'erreur à la première tentative, pour que vous puissiez corriger la configuration du certificat immédiatement ; voir Erreurs de certificat SSL. Claude Code réessaie toujours les conditions TLS transitoires telles qu'un délai d'attente de poignée de main. Avant v2.1.199, Claude Code réessayait les défaillances de certificat à travers le budget de tentatives complet avant d'afficher l'erreur. - Une erreur serveur, une connexion interrompue, ou un flux bloqué qui arrive après que Claude a complété un bloc de texte ou un appel d'outil, ou en a commencé un après avoir terminé sa réflexion, mais avant de terminer la réponse. Claude Code ne renvoie pas la requête, car cela pourrait exécuter les mêmes appels d'outils deux fois. Il conserve ce que Claude a complété, exécute tous les appels d'outils que Claude a terminés, et continue le tour à partir de leurs résultats. Pour ce que vous voyez dans une session interactive et dans une session non-interactive, lisez The response above may be incomplete. Avant v2.1.199, Claude Code rejetait la sortie partielle et signalait le tour entier comme une erreur lorsqu'une erreur serveur arrivait au milieu du flux.
- Une défaillance qui arrive après que Claude a terminé la réponse : rien n'a besoin d'être réessayé, donc Claude Code conserve la réponse complète et termine le tour normalement.
- Une réponse en streaming Amazon Bedrock avec un type de contenu inattendu, parce que la passerelle ou le proxy réécrivant la réponse réécrirait la nouvelle tentative de la même manière. Nécessite Claude Code v2.1.208 ou ultérieur.
- Une nouvelle tentative sans streaming d'une requête en streaming défaillante qui obtient un statut de succès mais aucun message API Claude dans le corps. Claude Code termine le tour avec cette erreur.
- Une requête que la vérification de politique de votre organisation a refusée, qui apparaît comme une ligne
API Error:portant le message de refus. Les administrateurs de votre organisation configurent la vérification avec Inference hooks, une fonctionnalité Claude Enterprise, et le message se termine par les instructions qu'ils ont configurées, ou par défaut vous dit de les contacter. Claude Code ne renvoie pas la requête refusée au même modèle ou à un modèle de secours, parce que le refus concerne le contenu de la requête plutôt que le modèle. Avant v2.1.239, Claude Code pouvait renvoyer une requête refusée, sans streaming ou sur un modèle de secours configuré, avant de vous afficher le refus.
Ce que vous voyez pendant que Claude Code réessaie ou attend
Pendant les nouvelles tentatives, le spinner affiche un compte à rebours Retrying in Ns · attempt x/y après une étiquette d'erreur. L'étiquette nomme la raison spécifique dès la première tentative pour les défaillances sur lesquelles vous pouvez agir immédiatement : le réseau est en panne, une poignée de main TLS a échoué, ou vous avez atteint une limite de débit. Pour les autres erreurs, elle lit API error au début. À partir de v2.1.198, elle bascule vers la raison spécifique à partir de la troisième tentative, ou à la tentative finale lorsque CLAUDE_CODE_MAX_RETRIES permet moins de trois ; les versions antérieures ne basculent qu'à la tentative finale.
À partir de v2.1.198, le conseil du spinner habituel est supprimé pendant les nouvelles tentatives. Une fois que la raison de l'erreur est révélée, si la défaillance est une surcharge 529, la ligne en dessous du compte à rebours nomme également où vérifier l'état du service : status.claude.com sur l'API Anthropic, ou l'hôte du fournisseur ou de la passerelle nommé dans le message sur d'autres configurations.
Waiting for API response
La bannière Waiting for API response · will retry in … · check your network signifie que Claude Code a attendu au moins 20 secondes sans recevoir aucune donnée pour une requête. La requête n'a pas encore échoué : le compte à rebours s'exécute jusqu'au point où Claude Code abandonne la connexion bloquée. Si l'abandon se produit :
- Avant que Claude n'ait complété un bloc de texte ou un appel d'outil, ou en ait commencé un après avoir terminé sa réflexion, Claude Code réessaie la requête ou termine le tour avec une erreur. Tentatives automatiques dit quels blocages il réessaie et combien de fois.
- Après que Claude a complété un bloc de texte ou un appel d'outil, ou en a commencé un après avoir terminé sa réflexion, mais avant que Claude n'ait terminé la réponse, Claude Code conserve ce que Claude a complété, continue le tour à partir de tous les appels d'outils que Claude a terminés, et affiche The response above may be incomplete. Dans une session non-interactive, et pour la réponse d'un sous-agent dans toute session, Claude Code peut d'abord demander à Claude de continuer la réponse ; cette entrée dit quand il le fait et quand vous voyez toujours l'avis là.
- Après que Claude a terminé la réponse, Claude Code termine le tour normalement.
La bannière s'efface d'elle-même une fois que les données reprennent ou qu'une nouvelle tentative réussit. Si elle réapparaît à chaque tentative, traitez-la comme un problème réseau. Si vous vous connectez via une passerelle, voir La bannière d'attente apparaît et disparaît derrière une passerelle. Avant v2.1.185, la bannière apparaissait après 10 secondes avec un libellé différent.
La bannière d'attente apparaît et disparaît derrière une passerelle
Si la bannière Waiting for API response apparaît et disparaît pendant que Claude réfléchit et que vous vous connectez via une passerelle, mettez à jour Claude Code vers v2.1.309 ou ultérieur. La bannière apparaît après 45 secondes sans données sur ces connexions :
ANTHROPIC_BASE_URLdéfini sur un hôte autre que l'API Anthropic, tel qu'une passerelle LLM- Une session Claude apps gateway
- Claude Platform on AWS avec
ANTHROPIC_AWS_BASE_URLdéfini
Avant v2.1.309, la bannière apparaissait après 20 secondes sur ces connexions.
Ajuster le comportement des nouvelles tentatives
Vous pouvez ajuster le comportement des nouvelles tentatives avec ces variables d'environnement :
| Variable | Par défaut | Effet |
|---|---|---|
CLAUDE_CODE_MAX_RETRIES |
10 | Nombre de nouvelles tentatives. Plafonné à 15 à partir de v2.1.186 ; à partir de v2.1.199 CLAUDE_CODE_RETRY_WATCHDOG augmente la valeur par défaut et supprime le plafond. Réduisez-le pour afficher les défaillances plus rapidement dans les scripts. |
CLAUDE_CODE_RETRY_WATCHDOG |
non défini | Définissez sur 1 dans les sessions sans surveillance telles que les travaux CI pour réessayer les erreurs de capacité 429 et 529 indéfiniment au lieu d'échouer après CLAUDE_CODE_MAX_RETRIES tentatives. Claude Code échoue immédiatement lorsqu'une requête à vitesse standard obtient un 429 qui signale une limite de dépenses ou des crédits d'utilisation épuisés, même un provenant d'un plafond de dépenses de passerelle qui se réinitialise selon un calendrier. Avant v2.1.239, le watchdog réessayait ceux-ci indéfiniment. Pour les requêtes en mode rapide, voir Handle rate limits. Sur v2.1.199 ou ultérieur, il augmente également le nombre de tentatives par défaut pour les autres erreurs transitoires, telles que les erreurs serveur, les délais d'attente et les connexions interrompues, à 300, environ trois heures de backoff, et supprime le plafond de 15 sur CLAUDE_CODE_MAX_RETRIES si vous définissez explicitement cette variable. |
CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS |
non défini | Durée maximale en millisecondes pendant laquelle chaque requête API attend la fin des erreurs 429 et 529 lorsque CLAUDE_CODE_RETRY_WATCHDOG est défini. Lorsqu'elle n'est pas définie, l'attente n'a pas de limite. Nécessite Claude Code v2.1.295 ou ultérieur. |
CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS |
non défini | Intervalle minimal en millisecondes entre les vérifications visant à savoir si une limite d'utilisation a déjà été levée, pendant qu'une requête attend la réinitialisation de cette limite avec CLAUDE_CODE_RETRY_WATCHDOG défini. Lorsqu'une vérification constate que la limite a été levée, la requête part immédiatement. Indiquez uniquement des chiffres, de 60000 à 10800000. Lorsqu'elle n'est pas définie ou se trouve hors de cette plage, aucune vérification n'est effectuée. Pour savoir quand Claude Code ignore ces vérifications, voir la référence des variables d'environnement. Nécessite Claude Code v2.1.305 ou ultérieur. |
CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS |
500 | Délai initial en millisecondes du backoff entre les nouvelles tentatives d'une requête que l'API rejette avec une erreur de surcharge 529. Augmentez-le, jusqu'à 32000, pour répartir les nouvelles tentatives sur une période plus longue lorsque l'API est à pleine capacité. Sans effet lorsque CLAUDE_CODE_RETRY_WATCHDOG est défini sur 1, ou lorsque la requête rejetée a été envoyée en mode rapide. Nécessite Claude Code v2.1.292 ou ultérieur. |
CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS |
32000 | Plafond en millisecondes du backoff entre les nouvelles tentatives d'une requête que l'API rejette avec une erreur de surcharge 529. Augmentez-le, jusqu'à 64000, pour que les nouvelles tentatives ultérieures continuent de s'espacer lorsque l'API est à pleine capacité. Sans effet lorsque CLAUDE_CODE_RETRY_WATCHDOG est défini sur 1, ou lorsque la requête rejetée a été envoyée en mode rapide. Nécessite Claude Code v2.1.296 ou ultérieur. |
API_TIMEOUT_MS |
600000 | Délai en millisecondes dont dispose chaque tentative de requête pour recevoir ses en-têtes de réponse. Il ne limite pas la durée d'une réponse en streaming au-delà. Augmentez-le pour les réseaux lents ou les proxys. Pour savoir comment il plafonne le délai de premier octet, voir No response from API. |
CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES |
non défini | Limite du nombre de renvois d'une requête sans streaming qui expire. Une fois la limite atteinte, la requête échoue. Une réponse de Claude dont la génération dure plus longtemps que le délai d'expiration expire de nouveau à chaque renvoi ; définissez donc un nombre faible tel que 0 pour échouer plus tôt. Chaque tentative sans streaming expire après 300 secondes dans une session locale, ou après API_TIMEOUT_MS lorsque vous définissez une valeur positive. Nécessite Claude Code v2.1.285 ou ultérieur. |
CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS |
non défini | Délai en millisecondes pour le premier octet de réponse d'une requête en streaming. Nécessite Claude Code v2.1.242 ou ultérieur. Pour savoir comment Claude Code choisit le délai lorsque ceci n'est pas défini, voir No response from API. |
Erreurs serveur
La plupart de ces erreurs proviennent du fournisseur d'inférence : le service Anthropic sur l'API Anthropic, et le service derrière l'endpoint de ce fournisseur sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou une passerelle personnalisée. Le mode auto ne peut pas déterminer la sécurité d'une action et L'agent s'est arrêté prématurément en raison d'une erreur API couvrent également les causes de votre côté, comme un compte Amazon Bedrock qui ne peut pas invoquer le modèle du classifieur ou un sous-agent qui a atteint une limite d'utilisation.
Erreur API : 500 Erreur serveur interne
Claude Code affiche le code d'état et le message d'erreur de l'API pour toute réponse 5xx. L'exemple ci-dessous montre une réponse 500 sur l'API Anthropic :
API Error: 500 Internal server error. This is a server-side issue, usually temporary — try again in a moment. If it persists, check https://status.claude.com.
La phrase finale indique où vérifier l'état du service et varie selon le fournisseur. Les configurations Amazon Bedrock, Google Cloud's Agent Platform et Microsoft Foundry nomment l'état du service de ce fournisseur. Une ANTHROPIC_BASE_URL personnalisée nomme l'hôte de la passerelle.
Une 5xx de l'API elle-même indique une défaillance inattendue à l'intérieur de l'API. Elle n'est pas causée par votre prompt, vos paramètres ou votre compte.
Quand un proxy, un équilibreur de charge ou une passerelle répond avec une page d'erreur HTML, le message affiche le code d'état et le titre de la page, comme API Error: 502 Bad Gateway. Pour une page sans titre, le message affiche le code d'état et son nom standard à la place. Avant v2.1.281, le code d'état était supprimé quand la page avait un titre, et le balisage brut de la page était imprimé quand elle n'en avait pas.
Que faire :
- Vérifiez status.claude.com, ou la page d'état du fournisseur nommée dans le message, pour les incidents actifs
- Attendez une minute, puis renvoyez votre message. Votre message original est toujours dans la conversation, donc pour un long prompt vous pouvez taper
try againau lieu de coller le tout. - Si
ANTHROPIC_BASE_URLpointe vers une passerelle LLM et que chaque requête échoue de cette manière, vérifiez si votre passerelle rejette les champs de recherche d'outils que Claude Code envoie par défaut. Pour le vérifier, définissezENABLE_TOOL_SEARCH=falsecomme décrit dans Recherche d'outils via une passerelle LLM, puis réessayez. Avant v2.1.304, la recherche d'outils était désactivée derrière une passerelle, sauf si vous l'activiez avecENABLE_TOOL_SEARCH. - Si l'erreur persiste sans incident signalé, exécutez
/feedbackpour qu'Anthropic puisse enquêter avec les détails de votre demande. Voir Signaler une erreur si/feedbackn'est pas disponible dans votre environnement.
Erreur API : Erreurs 529 Overloaded répétées
L'API est temporairement à capacité pour tous les utilisateurs. Claude Code a déjà réessayé plusieurs fois avant d'afficher ce message :
API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.
La phrase finale varie selon le fournisseur de la même manière que l'erreur 500 ci-dessus.
Un 529 n'est pas votre limite d'utilisation et ne compte pas contre votre quota.
Que faire :
-
Vérifiez status.claude.com, ou la page d'état du fournisseur nommée dans le message, pour les avis de capacité
-
Réessayez dans quelques minutes
-
Exécutez
/modelet basculez vers un modèle différent pour continuer à travailler, car la capacité est suivie par modèle. Claude Code vous invite à le faire quand un modèle est sous une charge particulièrement élevée, par exempleOpus is experiencing high load, please use /model to switch to Sonnet. Sur les modèles Fable, le message nomme Fable.Dans une session que l'application Claude Desktop exécute, comme l'onglet Code ou Cowork, le message se lit
Opus is experiencing high load. Switch to Sonnet.et vous basculez les modèles avec le sélecteur de modèle de l'application.
Délai d'attente de la demande dépassé
L'API n'a pas répondu avant la date limite de connexion.
Request timed out
Le délai d'expiration de requête par défaut est de 10 minutes. Si vous définissez API_TIMEOUT_MS sur 0, ce délai d'expiration de requête est désactivé. Le délai du premier octet et le délai d'inactivité du corps ne se désactivent pas quand vous définissez 0, donc une requête de streaming reste soumise à ceux d'entre eux qui s'appliquent à votre connexion. Une tentative sans streaming conserve sa limite de 300 secondes dans une session locale et peut toujours se terminer par ce message.
Que faire :
- Si chaque requête échoue avec ce message et que vous avez défini
API_TIMEOUT_MSsur0, vérifiezclaude --version. Sur une version antérieure à v2.1.305, mettez à jour Claude Code ou définissez une valeur positive. - Réessayez la demande
- Si une connexion réseau lente ou un proxy en est la cause, augmentez
API_TIMEOUT_MScomme décrit dans Tentatives automatiques - Si les délais d'attente sont fréquents et votre réseau est par ailleurs sain, voir Erreurs réseau et de connexion ci-dessous
Aucune réponse de l'API
Claude Code a envoyé une requête de streaming, et l'API n'a retourné aucun en-tête de réponse avant la date limite du premier octet. Claude Code annule une telle requête au lieu d'attendre le délai d'expiration de requête API_TIMEOUT_MS complet, et la renvoie si le budget de tentatives le permet. Quand la date limite est également dépassée pour la nouvelle tentative, le tour se termine par ce message, qui montre combien de temps chaque tentative a attendu.
Si vous définissez CLAUDE_CODE_RETRY_WATCHDOG, Claude Code continue de réessayer selon le budget décrit dans Ajuster le comportement de tentative au lieu de terminer le tour.
API Error: No response from API (waited 3m, then 10m on the retry). If a proxy or gateway on your network holds responses until they complete, raise API_TIMEOUT_MS or CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS to wait longer.
Claude Code définit le délai d'attente des en-têtes de réponse de la première tentative et le délai d'attente de la tentative de réessai séparément :
-
Première tentative :
CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MSquand vous le définissez à 1 ou plus, limité entre 10 secondes et 30 minutes. Sinon, Claude Code utilise le délai d'attente du watchdog au niveau des octets listé dans Watchdogs d'inactivité de streaming, donc les variables qui changent ce délai d'attente changent aussi cette attente. De toute façon, Claude Code ajoute une seconde pour chaque 32 Ko de corps de demande. -
Tentative de réessai : une seconde de moins que
API_TIMEOUT_MS, juste sous 10 minutes par défaut, afin que la tentative de réessai puisse dépasser un proxy ou une passerelle qui retient la réponse jusqu'à ce que la génération soit terminée. Sur Amazon Bedrock, la tentative de réessai utilise la même date limite que la première tentative, et le message affiche une durée au lieu de deux.Sauf sur Amazon Bedrock, si vous définissez
API_TIMEOUT_MSsur0, la tentative de réessai attend 10 minutes plus une seconde par 32 Ko, ou aussi longtemps que la première tentative si celle-ci est plus longue.
Aucune attente ne dépasse une seconde de moins qu'un API_TIMEOUT_MS positif, et un API_TIMEOUT_MS positif inférieur à 11 secondes désactive la date limite. Le watchdog au niveau des octets ne démarre qu'une fois les en-têtes de réponse arrivés, donc une réponse qui arrête d'envoyer des octets après cela suit les règles de flux interrompu au lieu de cette date limite.
Dans une session Claude apps gateway, cette date limite ne s'applique que lorsque vous l'activez en définissant CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS sur 1 ou plus.
Que faire :
- Renvoyez votre message. Votre message original est toujours dans la conversation, donc pour un long prompt vous pouvez taper
try againau lieu de coller le tout. - Si cela se répète, traitez-le comme un problème réseau ou proxy.
- Si une passerelle ou un proxy sur votre réseau retient les réponses jusqu'à ce qu'elles soient terminées, augmentez
API_TIMEOUT_MSafin que la tentative de réessai attende plus longtemps. Sur Amazon Bedrock, augmentez égalementCLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS. - Si la première tentative continue à expirer et que la tentative de réessai réussit ensuite, augmentez
CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MSafin que la première tentative attende assez longtemps aussi.
Avant v2.1.242, Claude Code attendait le délai d'attente de demande API_TIMEOUT_MS complet, 10 minutes par défaut, avant d'échouer une demande de streaming sans réponse. Avant v2.1.261, la tentative de réessai attendait la même date limite que la première tentative et le message n'affichait aucune durée. Avant v2.1.307, Claude Code ignorait CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS dans une session Claude apps gateway.
La réponse ci-dessus peut être incomplète
Une demande de streaming a échoué alors que la réponse était toujours en cours, après que Claude ait terminé un bloc de texte ou un appel d'outil, ou en ait commencé un après avoir terminé sa réflexion. Le renvoi de la demande pourrait exécuter les mêmes appels d'outil deux fois, donc Claude Code conserve la sortie que Claude a terminée et ajoute cet avis au lieu de rejeter le tour. La variante que vous voyez nomme la cause :
API Error: Server error mid-response. The response above may be incomplete.
API Error: Connection lost mid-response. The response above may be incomplete.
API Error: Your computer went to sleep mid-response. The response above may be incomplete.
API Error: The response stopped arriving. The response above may be incomplete.
API Error: Part of the response never arrived. The response above may be incomplete.
API Error: The response stream was malformed. The response above may be incomplete.
Server error mid-response: une erreur serveur surchargée ou 5xx en milieu de flux. Cette variante nécessite Claude Code v2.1.199 ou ultérieur ; avant cela, ce cas rejetait la sortie partielle et signalait le tour entier comme une erreur.Connection lost mid-response: la connexion a été interrompue. Vous voyez également cette variante quand un proxy ou une passerelle termine le corps de la réponse proprement avant que la réponse soit terminée.Your computer went to sleep mid-response: Claude Code a détecté que votre ordinateur s'est endormi pendant que la réponse était en streaming. Une fois que votre ordinateur se réveille, Claude Code traite la connexion comme cassée et arrête de la lire.Part of the response never arrived: un événement de flux a été supprimé entre l'API et Claude Code, donc un événement ultérieur référençait du contenu qui n'est jamais arrivé. Avant v2.1.281, ce cas terminait le tour avecAPI Error: Content block not found.The response stream was malformed: un événement est arrivé pour un bloc de contenu qui avait déjà terminé, ou un événement est arrivé endommagé. Un événement endommagé est un événement dont les données ne sont pas du JSON valide, dont le contenu est manquant, ou dont le contenu ne correspond pas au type d'événement. Avant v2.1.284, l'erreur brute du parseur, comme une commençant parAPI Error: JSON Parse error, apparaissait à la place quand un événement avec du JSON invalide arrivait après que Claude ait terminé sa réflexion, un bloc de texte ou un appel d'outil.The response stopped arriving: la connexion est restée ouverte mais a arrêté de livrer des données, donc le watchdog d'inactivité de streaming l'a annulée. Avant v2.1.222, Claude Code pouvait également signaler cet échec sur les connexions de passerelle atteintes viaANTHROPIC_BASE_URLouANTHROPIC_AWS_BASE_URLtandis que les pings de maintien de connexion du serveur arrivaient toujours, car il ne comptait que les événements de réponse analysés là ; la mise à niveau arrête ces faux positifs sur ces routes. Les passerelles atteintes via une URL de base de fournisseur telle queANTHROPIC_BEDROCK_BASE_URLne sont pas enveloppées par le watchdog d'octet ; voir Watchdogs d'inactivité de streaming.
Avant v2.1.227, Connection lost mid-response lisait Connection closed mid-response et The response stopped arriving lisait Response stalled mid-stream.
Quand un événement de flux supprimé, dupliqué ou endommagé arrive avant que Claude ait commencé du texte ou un appel d'outil, vous ne voyez pas cet avis :
- Si Claude avait terminé seulement sa réflexion, Claude Code réédite la demande. Quand les flux réédités se cassent de la même manière, le tour se termine avec
Part of the response never arrived and no response was produced. Try again.ouThe response stream was malformed and no response was produced. Try again. - Si rien n'avait terminé, Claude Code renvoie la demande sans streaming à la place. Si vous avez désactivé ce repli avec
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK, le tour se termine avecAPI Error: Content block not foundpour un événement supprimé ouAPI Error: Content block already closedpour un événement dupliqué. Pour un événement endommagé avec le repli désactivé, le tour se termine avecAPI Error: Stream event unreadableou l'erreur brute du parseur.
Dans quatre cas, Claude Code gère l'échec sans afficher cet avis immédiatement :
- Plus tôt dans la réponse, Claude Code réessaie l'échec ou termine le tour avec une erreur différente. Voir Tentatives automatiques.
- Quand l'un de ces échecs arrive après que Claude ait terminé la réponse, Claude Code conserve la réponse complète et termine le tour normalement, sans cet avis. Avant v2.1.222, Claude Code affichait cet avis quand la connexion était interrompue ou bloquée après la fin de la réponse, et signalait le tour comme une erreur même si la réponse était complète.
- Dans une session non interactive, comme une exécution
-p, une exécution Agent SDK, ou une session cloud, vous n'avez pas à envoyercontinuevous-même quand la réponse coupée est dans la conversation principale et contient du texte mais pas d'appels d'outil : Claude Code conserve la sortie partielle et invite Claude à continuer à partir d'où il s'est arrêté, jusqu'à trois fois de suite. Vous voyez cet avis pour une telle réponse seulement une fois que Claude Code a épuisé ces continuations. Avant v2.1.246, Claude Code terminait un tour non interactif avec cet avis à la première coupure. - Dans un sous-agent, que la session soit interactive ou non : quand sa réponse coupée contient du texte mais pas d'appels d'outil, Claude Code invite le sous-agent à continuer. L'avis devient le dernier message du sous-agent seulement une fois que ces continuations sont épuisées. Avant v2.1.257, un sous-agent affichait cet avis à la première coupure.
Que faire :
- Dans une session interactive, lisez la réponse qui reste à l'écran : Claude Code conserve chaque bloc que Claude a terminé avant l'erreur, mais rejette un bloc final interrompu quand le tour se termine, donc les dernières phrases ou appels d'outil peuvent manquer. Répondez avec
continuepour que Claude reprenne à partir de son dernier bloc terminé. - En mode non interactif (
-p) :- Avec la sortie texte par défaut, Claude Code imprime le dernier bloc de texte terminé qu'il détient toujours du début du tour, suivi de ce message. Quand il n'en détient aucun, Claude Code imprime ce message seul, par exemple parce que Claude Code a compacté la conversation en milieu de tour et a effacé ce texte. Avant v2.1.219, Claude Code n'imprimait que ce message dans la sortie texte
-pet rejetait la réponse qu'il avait déjà produite. - Avec
--output-format jsonoustream-json, Claude Code signale ce message dans le champresult. - Pour continuer le tour une fois la connexion stable, reprenez la session et envoyez
continuecomme décrit dans Continuer les conversations.
- Avec la sortie texte par défaut, Claude Code imprime le dernier bloc de texte terminé qu'il détient toujours du début du tour, suivi de ce message. Quand il n'en détient aucun, Claude Code imprime ce message seul, par exemple parce que Claude Code a compacté la conversation en milieu de tour et a effacé ce texte. Avant v2.1.219, Claude Code n'imprimait que ce message dans la sortie texte
Le mode auto ne peut pas déterminer la sécurité d'une action
Le modèle que le mode auto utilise pour classifier les actions n'a pas pu produire une décision, donc le mode auto n'a pas approuvé l'action automatiquement. Le message que vous voyez dépend de la façon dont le classificateur a échoué.
Les lectures, recherches et modifications à l'intérieur de votre répertoire de travail ignorent le classificateur, donc elles continuent à fonctionner dans tous ces cas.
Quand le modèle du classificateur est indisponible :
<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.
Dans une session interactive, une ligne estompée Not run · auto mode's check had no usable answer apparaît sous l'appel d'outil au lieu de ce message. Appuyez sur Ctrl+O pour lire le message dans la visionneuse de transcription. Les refus gave no verdict décrits sous Le serveur n'a retourné aucun verdict de sécurité affichent la même ligne. Avant v2.1.296, le message apparaissait sous l'appel sous forme d'erreur rouge.
Quand Claude Code peut déterminer la catégorie d'échec, il nomme la catégorie entre parenthèses après temporarily unavailable, par exemple <model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now. Les catégories sont (rate-limited), (overloaded), (server error), (timed out), et (connection failed). Si (timed out) ou (connection failed) se répète, vérifiez votre connexion ; voir Impossible de se connecter à l'API. Avant v2.1.229, le message ne nommait jamais une catégorie et lisait Wait briefly and then try this action again.
Quand aucune catégorie ne convient, le message apparaît sans catégorie entre parenthèses ; plus d'un échec produit cette forme. Sur Amazon Bedrock, y compris l'endpoint Mantle, il apparaît également quand votre compte AWS ne peut pas invoquer le modèle nommé dans le message, et cet échec se répète à chaque tentative jusqu'à ce que votre compte soit autorisé à accéder au modèle.
Que faire :
- Réessayez après quelques secondes ; Claude voit le même message et réessaie généralement de lui-même. Un échec transitoire n'est pas lié à l'admissibilité du mode auto ; vous n'avez pas besoin de modifier les paramètres
- Si les tentatives continuent à échouer, continuez avec les tâches en lecture seule et revenez à l'action bloquée plus tard
- Sur Amazon Bedrock, si le message revient à chaque tentative, vérifiez que votre compte peut invoquer le modèle qu'il nomme : pour les modèles Amazon Bedrock standard, confirmez que votre politique IAM permet de l'invoquer ; pour les ID de modèle Mantle, contactez votre équipe de compte AWS
- Si le message revient à chaque tentative et nomme le modèle que vous avez défini dans
CLAUDE_CODE_AUTO_MODE_MODEL, vérifiez que l'API ou le fournisseur cloud sur lequel votre session s'exécute sert cet ID de modèle. Si ce n'est pas le cas, définissez la variable sur un ID de modèle qu'il sert, ou supprimez la variable pour utiliser le modèle de classificateur par défaut.
Quand une demande de classificateur échoue parce que votre jeton OAuth a expiré ou a été pivoté par une autre session, Claude Code actualise le jeton et réessaie la demande une fois, donc une expiration de jeton courante ne fait pas surface comme ce message. Avant v2.1.216, un jeton expiré ou pivoté échouait à chaque demande de classificateur, et le mode auto refusait chaque action vérifiée avec ce message jusqu'à ce que le jeton soit actualisé.
Quand le classificateur a retourné une réponse non analysable :
Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details
Que faire :
- Réessayez l'action ; cela réussit généralement à la tentative suivante
- Exécutez
claude --debuget répétez l'action pour les détails dans le journal de débogage
Quand une vérification de sécurité API distincte a bloqué la demande du classificateur en raison du contenu de la conversation antérieure :
Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details
Claude Code refuse l'action mais dit à Claude que ce n'est pas un jugement que l'action est dangereuse, et de continuer avec d'autres tâches plutôt que de réessayer. Ces refus ne comptent pas vers les seuils de pause du mode auto. Dans une exécution -p non interactive, Claude Code n'arrête pas l'exécution. Ce que Claude reçoit dépend de l'endroit où il a demandé l'action :
- À un sous-agent en arrière-plan dans une exécution
-psans--input-format stream-json, Claude Code retourne un résultat d'erreur contenantAgent aborted: auto mode classifier request refused by the safety safeguard in headless mode - Partout ailleurs, y compris les sessions interactives et la conversation principale d'une exécution
-p, Claude Code retourne ce refus à Claude
Avant v2.1.225, Claude Code comptait ces refus vers les seuils de pause et retournait le même message de rejet qu'un bloc de classificateur authentique.
Que faire :
- Ce n'est pas une décision concernant votre action. Le contenu déjà dans votre conversation a déclenché un filtre de sécurité sur l'API quand le mode auto a envoyé la conversation au classificateur
- Réessayer ne servira à rien ; le même contenu de conversation déclenchera le filtre à nouveau
- Dans une session interactive, basculez vers un mode de permission différent afin de pouvoir approuver l'action quand vous y êtes invité
- Commencez une nouvelle conversation sans le contenu déclencheur
Quand la conversation est trop longue pour la requête du classificateur de Claude Code et que Claude Code ne peut pas la compacter de lui-même :
Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)
Ce qui se passe à l'action dépend de l'endroit où Claude l'a demandée :
- Dans une session interactive, le mode auto bascule sur une demande de permission normale pour cette action afin que vous puissiez l'approuver ou la refuser manuellement
- À un sous-agent en arrière-plan dans une exécution
-pnon interactive sans--input-format stream-json, Claude Code retourne un résultat d'erreur contenantAgent aborted: auto mode classifier transcript exceeded context window in headless mode, et l'exécution continue - Ailleurs dans une exécution
-psans--permission-prompt-tool, il n'y a pas de demande de permission sur laquelle se rabattre, donc l'action ne s'exécute pas et l'exécution continue
Que faire :
- Dans une session interactive, approuvez ou refusez l'action dans la demande qui apparaît
- Dans une session interactive, exécutez
/compactpour réduire la taille de la conversation afin que les actions suivantes s'adaptent à nouveau à la fenêtre du classificateur
Le serveur n'a retourné aucun verdict de sécurité
Sous examen du classificateur côté serveur, le mode auto refuse une action quand le serveur ne donne aucun verdict pour elle. Le refus nomme une catégorie entre parenthèses quand Claude Code peut en déterminer une, comme (timed out) :
The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.
Le reste du message dit à Claude si une tentative peut aider. Avant certains de ces refus, Claude Code attend afin que la tentative suivante de Claude ne suive pas immédiatement. Pendant l'attente dans une session interactive, le spinner affiche Auto mode check unavailable avec un compte à rebours, et appuyer sur Esc interrompt le tour.
Après dix réponses de suite sans verdict, le mode auto arrête le tour :
Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.
Le message d'arrêt apparaît à un endroit différent dans chaque type de session :
- Dans une session interactive, le message apparaît comme un avertissement dans la transcription et le tour se termine
- Dans une exécution
-pnon interactive, l'exécution se termine et signale une erreur d'exécution. Avec la sortie texte par défaut, le message s'imprime sur stderr. - Quand un sous-agent a atteint la limite, le sous-agent s'arrête avant de terminer, et Claude reçoit ce qu'il a produit avec une note que le mode auto l'a arrêté
Que faire :
- Dans une session interactive, appuyez sur
Ctrl+Opour lire le texte du refus dans la visionneuse de transcription. - Si le refus nomme
(the conversation is too long for the check), exécutez/compactà l'invite de Claude Code pour raccourcir la conversation. Tant que la conversation n'est pas plus courte, l'envoi d'un autre message entraîne le même refus. Si vous avez désactivé la compaction automatique, réactivez-la afin que Claude Code compacte de lui-même la prochaine fois. - Envoyez un autre message pour que Claude réessaie. Le compte de réponses recommence.
- Si l'arrêt se répète et que vos demandes passent par une passerelle LLM ou un proxy, vérifiez s'il coupe les réponses de streaming ou les réécrit. L'examen du classificateur côté serveur indique quel comportement de passerelle cause les refus, et le guide de compatibilité de passerelle liste ce qu'il faut transmettre inchangé.
- Définissez
CLAUDE_CODE_AUTO_MODE_SERVER=0avant de démarrer Claude Code pour utiliser ses propres demandes de classificateur à la place. Avant v2.1.281, Claude Code ne lisait pas la variable sur une connexion directe à l'API Anthropic. - Pour approuver les actions vous-même à la place, basculez hors du mode auto
Avant v2.1.280, Claude Code refusait chaque action d'une réponse sans verdict immédiatement et n'arrêtait jamais le tour.
Avant v2.1.302, sur une connexion directe à l'API Anthropic, Claude Code ne compactait pas une conversation devenue trop longue pour la vérification du serveur.
Was not reviewed and did not run
Un refus was not reviewed and did not run signifie que la conversation est trop longue pour que le classificateur du mode auto vérifie l'action, donc l'action ne s'est pas exécutée. Claude Code retourne ce message à Claude :
<tool> was not reviewed and did not run: the conversation is too long for auto mode's classifier. Claude Code will try to compact the conversation before the next request; if this action is still needed after that, issue it again and it will be reviewed normally.
Si la compaction échoue, les actions ultérieures que le classificateur ne peut pas vérifier reçoivent l'un de deux autres messages :
- Un refus
gave no verdict (the conversation is too long for the check) - Le message
Auto mode classifier transcript exceeded context window
Que faire :
- Si la compaction annoncée par le message réussit, vous n'avez rien à faire.
- Si vous voyez l'un de ces deux messages, exécutez
/compactà l'invite de Claude Code pour raccourcir la conversation vous-même. Si vous avez désactivé la compaction automatique, réactivez-la afin que Claude Code compacte de lui-même la prochaine fois.
L'agent s'est arrêté prématurément en raison d'une erreur API
Une demande API d'un sous-agent a échoué de manière terminale, par exemple parce qu'une limite d'utilisation a été atteinte ou que les tentatives pour une erreur serveur ont épuisé, donc le sous-agent s'est arrêté avant de terminer sa tâche. Ce message nécessite Claude Code v2.1.199 ou ultérieur ; avant cela, le texte d'erreur API était retourné à Claude comme s'il s'agissait du résultat du sous-agent.
Agent terminated early due to an API error: <error detail>
Que faire :
- Faites correspondre le détail d'erreur après les deux points à sa propre section sur cette page, comme Limites d'utilisation ou Erreurs serveur, et suivez les étapes de cette section
- Une fois que l'erreur sous-jacente est résolue, demandez à Claude de réessayer la tâche ou de reprendre le sous-agent
Quand une limite de débit, une surcharge ou une erreur serveur interrompt un sous-agent au premier plan qui a déjà produit une sortie texte, Claude reçoit cette sortie partielle marquée comme incomplète au lieu de cette erreur. Un sous-agent dont la seule sortie était des appels d'outil reçoit également cette erreur ; dans v2.1.199 cette forme retournait un résultat partiel vide à la place. Voir Erreurs API dans les sous-agents.
Limites d'utilisation
La plupart des erreurs de cette section signifient qu'un quota lié à votre compte ou à votre plan a été atteint. Trois fonctionnent différemment : Server is temporarily limiting requests est un throttle côté serveur sans rapport avec votre quota de plan, Usage credits required for 1M context est une vérification de droit plutôt qu'un quota épuisé, et The prompt to confirm went unanswered signifie qu'une invite de consentement pour les crédits d'utilisation s'est fermée sans réponse, que le quota ait été atteint ou non.
You've hit your session limit
Les plans d'abonnement incluent une allocation d'utilisation continue. Quand elle s'épuise, vous voyez l'un de ces messages :
You've hit your session limit · resets 3:45pm
You've hit your weekly limit · resets Mon 12:00am
You've hit your Opus limit · resets 3:45pm
You've hit your Sonnet limit · resets 3:45pm
Claude Code bloque les requêtes supplémentaires jusqu'à l'heure de réinitialisation indiquée dans le message. Les limites de session et hebdomadaires sont partagées entre tous les modèles, donc changer de modèle ne restaure pas l'accès. Les limites Opus et Sonnet s'appliquent chacune uniquement aux requêtes adressées à cette famille de modèles, donc passer à un modèle en dehors de la famille avec /model vous permet de continuer à travailler.
Dans une session interactive connectée avec un abonnement claude.ai, Claude Code peut également attendre dans la session ouverte et continuer la tâche interrompue peu après la réinitialisation. Consultez Attendre la réinitialisation d'une limite d'utilisation pour voir ce que vous voyez, comment démarrer ou annuler une attente, et comment désactiver la continuation automatique. Avant la v2.1.234, Claude Code n'offrait pas cette attente.
L'utilisation compte à la fois pour les allocations de session et hebdomadaires. Une seule rafale d'activité intensive, comme un grand fanout de workflow, peut épuiser l'allocation hebdomadaire avant que la fenêtre de session ne se réinitialise.
Ce qu'il faut faire :
- Attendez l'heure de réinitialisation indiquée dans l'erreur
- Dans l'onglet Code de l'application de bureau, la carte de limite de session offre une case à cocher Auto-continue when limits reset. La carte de limite hebdomadaire ne l'offre pas. Quand elle est cochée, l'application de bureau réessaie le tour interrompu après la réinitialisation et affiche l'heure de nouvelle tentative sur la carte. La case à cocher de l'application de bureau et le paramètre Continue automatically at usage limit de la CLI dans
/configsont séparés, donc désactivez chacun indépendamment. - Pour la limite Opus ou Sonnet, exécutez
/modelet basculez vers un modèle en dehors de cette famille pour continuer à travailler. Chaque modèle a son propre cache de prompt, donc la requête suivante relit toute la conversation sans accès au cache ; consultez Changement de modèles - Exécutez
/usagepour voir vos limites de plan et quand elles se réinitialisent - Exécutez
/usage-creditspour acheter une utilisation supplémentaire sur Pro et Max, ou pour la demander à votre administrateur sur Team et Enterprise. Consultez usage credits for paid plans pour savoir comment cela est facturé. - Pour mettre à niveau votre plan pour des limites de base plus élevées, consultez claude.com/pricing
Avant qu'une fenêtre ne s'épuise, Claude Code peut vous avertir que vous avez utilisé la plupart de celle-ci, avec un message tel que You've used 85% of your session limit · resets 3:45pm. Pour surveiller votre allocation restante en continu, ajoutez les champs rate_limits à une barre de statut personnalisée, ou dans l'application de bureau, cliquez sur l'anneau d'utilisation à côté du sélecteur de modèle.
Usage credits required for 1M context
Le modèle sélectionné utilise la fenêtre de contexte étendue de 1M tokens, et votre plan ne l'inclut que via les crédits d'utilisation.
API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context
Dans une session que l'application Claude Desktop exécute, l'indice ne nomme aucune commande : il pointe vers la page des paramètres d'utilisation de claude.ai, ou sur les plans Team et Enterprise indique d'activer les crédits d'utilisation à claude.ai/admin-settings/usage ou de demander à votre administrateur.
C'est une vérification de droit, pas un épuisement de quota. Elle se déclenche même quand vos allocations de session et hebdomadaires ont de la capacité restante. Consultez Contexte étendu pour voir quels plans incluent le contexte 1M directement et lesquels nécessitent des crédits d'utilisation.
Quand cette erreur apparaît au milieu d'une conversation parce que le contexte a dépassé 200K tokens, Claude Code compacte automatiquement la conversation en dessous de la limite de contexte standard et maintient la session à cette limite par la suite, donc aucune action n'est nécessaire. Sur les versions antérieures à v2.1.172, l'erreur se répétait à chaque requête suivante, y compris /compact ; exécutez /clear sur ces versions pour récupérer. Les étapes ci-dessous s'appliquent quand vous avez explicitement sélectionné un modèle [1m].
Ce qu'il faut faire :
- Exécutez
/modelet sélectionnez la variante sans le suffixe[1m]pour revenir à la fenêtre de contexte standard - Où le message nomme
/usage-credits, exécutez-le pour activer la facturation à l'usage pour la variante 1M sur Pro et Max, ou pour demander des crédits d'utilisation à votre administrateur sur Team et Enterprise. Une fois que les crédits d'utilisation sont activés, redémarrez Claude Code ou démarrez une nouvelle session, selon ce que le message indique. Jusqu'à ce moment, la session reste à la limite de contexte standard. - Si l'erreur persiste après
/model, un ID de modèle 1M peut être défini ailleurs. Consultez Définir votre modèle pour les emplacements de configuration à vérifier par ordre de priorité. - Pour supprimer complètement les variantes 1M du sélecteur de modèle, définissez
CLAUDE_CODE_DISABLE_1M_CONTEXT=1
Avant v2.1.268, le message se terminait par run /usage-credits to turn them on, or /model to switch to standard context et ne mentionnait pas le redémarrage.
The prompt to confirm went unanswered
Si votre compte nécessite le consentement des crédits d'utilisation Fable, Claude Code vous demande de confirmer avant qu'une requête Fable ne facture les crédits d'utilisation. Quand l'invite de consentement se ferme sans que personne n'y réponde, Claude Code termine le tour avec l'un de ces messages :
Fable limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change
Fable 5.1 now uses usage credits · the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change
Les messages nomment le modèle Fable de la session, donc sur Fable 5, ils indiquent continuing on Fable 5 et Fable 5 now uses usage credits. Avant v2.1.257, le premier message commençait par Fable 5 limit reached.
Cela se produit dans les sessions Remote Control, les sessions en arrière-plan, les sessions de coéquipiers d'une équipe d'agents, et les sessions qu'une autre application héberge via l'Agent SDK. Pour savoir quand Claude Code ferme l'invite, consultez Fable et crédits d'utilisation.
Ce qu'il faut faire :
- Où la session s'exécute, au terminal ou dans l'application qui l'héberge, envoyez un autre prompt et répondez à l'invite de consentement quand elle réapparaît. Pour une session en arrière-plan, attachez-vous d'abord à partir de la vue des agents. Renvoyer depuis un client Remote Control affiche ce message à nouveau, car le client ne peut pas afficher l'invite.
- Exécutez
/modelpour basculer vers un modèle qui ne facture pas les crédits d'utilisation - Pour vous donner plus de temps, définissez
dialogExpirysur une valeur plus longue ou"never"
Avant v2.1.236, ce message n'apparaissait pas : pendant qu'un client Remote Control était connecté, Claude Code attendait 60 secondes une réponse, puis continuait le tour sur votre modèle par défaut.
Server is temporarily limiting requests
L'API a appliqué un throttle de courte durée sans rapport avec votre quota de plan.
API Error: Server is temporarily limiting requests (not your usage limit)
Claude Code les distingue de votre limite de plan par l'absence des en-têtes de quota unifiés qu'une réponse de limite réelle porte. À partir de v2.1.199, ceci est réessayé automatiquement avec backoff avant d'être affiché, quelle que soit votre méthode d'authentification. Sur les versions antérieures, une session connectée avec un abonnement claude.ai échouait le tour à la première occurrence ; seules les connexions par clé API et Enterprise le réessayaient.
Ce qu'il faut faire :
- Attendez brièvement et réessayez
- Vérifiez status.claude.com si cela persiste
Request rejected (429)
Vous avez atteint la limite de débit configurée pour votre clé API, votre projet Amazon Bedrock ou votre projet Google Cloud.
API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com.
La phrase finale nomme où vérifier la santé du service et varie selon le fournisseur. Les configurations Amazon Bedrock, Google Cloud's Agent Platform et Microsoft Foundry nomment le statut du service de ce fournisseur au lieu de la page de statut Anthropic. Un ANTHROPIC_BASE_URL personnalisé nomme l'hôte de la passerelle.
Quand un proxy, un équilibreur de charge ou une passerelle entre Claude Code et l'API répond avec sa propre page HTML 429, le texte après le · est le titre de cette page quand elle en a un, comme Too Many Requests. Avant v2.1.281, l'ensemble du balisage de la page était imprimé après le ·.
Ce qu'il faut faire :
- Exécutez
/statuset confirmez que les identifiants actifs sont ceux que vous attendez. UnANTHROPIC_API_KEYégaré dans votre environnement peut acheminer les requêtes via une clé de niveau inférieur au lieu de votre abonnement. - Vérifiez votre console de fournisseur pour les limites actives et demandez un niveau supérieur si nécessaire
- Pour les clés API Anthropic, consultez la référence des limites de débit pour savoir comment fonctionnent les niveaux et comment définir des plafonds par espace de travail
- Réduisez la concurrence : évitez d'exécuter de nombreux sous-agents parallèles, ou basculez vers un modèle plus petit avec
/modelpour les exécutions scriptées à haut volume
You've hit your monthly spend limit
L'utilisation incluse de votre plan ne peut pas couvrir cette requête, et les crédits d'utilisation qui paieraient autrement pour cela ont atteint une limite de dépenses. Cela se produit quand l'une des fenêtres d'utilisation de votre plan s'est épuisée, ou quand la requête est une requête que seuls les crédits d'utilisation paient, comme une requête à un modèle qui facture aux crédits d'utilisation. Le message nomme la limite qui vous a bloqué. Le texte après le · indique comment augmenter cette limite, et varie selon votre plan et si vous gérez la facturation :
You've hit your monthly spend limit · raise it at https://claude.ai/settings/usage?from=cc_cli_limit_message
You've hit your individual spend limit · ask your admin for a higher limit
You've hit your org's monthly spend limit · visit https://claude.ai/admin-settings/usage to raise it
You've hit your team's shared budget · ask your admin to raise it at https://claude.ai/admin-settings/usage
You've hit your channel's monthly spend limit · an org owner or channel manager can raise it in the channel's Claude settings
team's shared budget est un budget groupé qu'un administrateur a attribué à un groupe auquel vous appartenez ; le message ne nomme pas le groupe. channel's monthly spend limit est le budget du seul canal Slack dans lequel la session s'exécute, donc votre organisation peut toujours avoir un budget en dehors de celui-ci.
Quand l'une des fenêtres de votre plan est ce qui s'est épuisé, le message indique également quand cette fenêtre se réinitialise, par exemple · your session limit resets 3:45pm, et l'accès revient alors sans que personne n'augmente la limite. Sur les organisations avec facturation basée sur l'utilisation, le message dit usage limit à la place de spend limit, comme dans You've hit your individual usage limit.
Si vous vous connectez via une passerelle d'applications Claude et voyez spend limit reached en minuscules, c'est le plafond de votre opérateur de passerelle ; consultez Spend limit reached.
Ce qu'il faut faire :
- Sur Pro et Max, augmentez votre limite de dépenses mensuelles dans Settings > Usage sur claude.ai, ou exécutez
/usage-credits - Sur Team et Enterprise, augmentez la limite dans Organization settings > Usage si vous gérez la facturation, ou demandez à un administrateur de le faire.
/usage-creditsenvoie cette demande à votre administrateur pour vous - Pour la limite d'un canal, demandez à un propriétaire d'organisation ou au gestionnaire du canal de l'augmenter sur claude.ai. Consultez Per-channel limits dans la documentation Claude Tag
- Si le message nomme une heure de réinitialisation pour la fenêtre de votre plan, vous pouvez l'attendre à la place
- Exécutez
/usagepour voir les fenêtres de votre plan et quand chacune se réinitialise
Spend limit reached
Vous vous connectez via une passerelle d'applications Claude et avez dépassé un plafond de dépenses que votre opérateur de passerelle a défini. La passerelle bloque vos requêtes jusqu'à ce que la période nommée se réinitialise ou que l'opérateur augmente le plafond. Elle marque chaque réponse 429 bloquée x-should-retry: false, donc Claude Code affiche ce message sans réessayer.
spend limit reached (daily; resets 2026-08-09 00:00 UTC)
Le message nomme la période du plafond et l'heure de réinitialisation, et quand l'opérateur a configuré un blocked_message, ses instructions le suivent. Avant v2.1.225, le message indiquait seulement spend limit reached ; une passerelle sur une version plus ancienne envoie toujours cette forme plus courte.
Ce qu'il faut faire :
- Attendez l'heure de réinitialisation que le message nomme, ou suivez les instructions de l'opérateur si le message les porte
- Demandez à votre opérateur de passerelle d'augmenter le plafond si vous le dépassez régulièrement
Un message connexe, spend limit unavailable, signifie que la passerelle n'a pas pu lire ses enregistrements de dépenses et a bloqué la requête par précaution plutôt que sur votre plafond. Cela s'efface généralement de lui-même ; si cela persiste, informez votre opérateur de passerelle.
Credit balance is too low
Votre organisation Console a épuisé ses crédits prépayés, ou Claude Code envoie vos requêtes avec une clé API Console quand vous aviez l'intention d'utiliser votre abonnement.
Credit balance is too low
Ce qu'il faut faire :
- Si vous avez un plan Pro, Max, Team ou Enterprise et voyez ceci, exécutez
/statuset vérifiez la ligneAPI key. UnANTHROPIC_API_KEYapprouvé dans votre environnement achemine les requêtes via cette clé au lieu de votre abonnement. Supprimez-le dans le shell actuel et retirez-le de votre profil de shell, puis relancezclaude. Exécutez/loginsi vous ne vous êtes pas encore connecté avec votre abonnement. - Ajoutez des crédits à platform.claude.com/settings/billing, et envisagez d'activer le rechargement automatique là-bas pour que le solde se remplisse avant d'atteindre zéro
- Définissez des plafonds de dépenses par espace de travail dans la Console pour empêcher un seul projet de drainer le solde de l'organisation. Consultez Gérer les coûts efficacement.
Could not update your spend limit
Le serveur a rejeté un changement de limite de dépenses que vous avez effectué à partir de l'invite qui apparaît quand vous atteignez votre limite de dépenses.
Could not update your spend limit: <reason from the server>
Quand le serveur explique le rejet, le message se termine par cette raison, et réessayer la même valeur échoue à nouveau. Quand l'échec n'a pas de raison fournie par le serveur, comme une connexion interrompue, le message indique Could not update your spend limit. Press Enter to retry. et réessayer peut réussir. Avant v2.1.216, Claude Code affichait la forme générique pour chaque échec.
Ce qu'il faut faire :
- Si le message inclut une raison, choisissez une limite qui la satisfait, comme un montant inférieur
- Si le message affiche uniquement la forme générique, réessayez ; l'échec peut être transitoire
- Si le changement continue d'échouer, effectuez-le à partir de vos paramètres de facturation claude.ai dans le navigateur à la place
Erreurs d'authentification
Ces erreurs signifient que Claude Code ne parvient pas à prouver votre identité auprès de l'API. Exécutez /status à tout moment pour voir quels identifiants sont actuellement actifs.
Non connecté
Cette session ne dispose d'aucuns identifiants valides.
Not logged in · Please run /login
Dans une session exécutée par l'application Claude Desktop, comme l'onglet Code ou Cowork, le message indique Authentication required · Sign in again to continue, et vous vous reconnectez depuis l'application.
Si vous vous connectez avec votre compte claude.ai dans une autre fenêtre Claude Code qui utilise le même répertoire de configuration, une session interactive affichant ce message commence à utiliser cette connexion d'elle-même. Vous n'avez pas besoin de la redémarrer.
Avant la v2.1.286 sur macOS, la session pouvait continuer à afficher le message après votre connexion depuis une autre fenêtre. Sur ces versions, redémarrez la session qui affiche le message.
Que faire :
- Exécutez
/loginpour vous authentifier avec votre abonnement Claude ou votre compte Console - Si vous vous attendiez à ce qu'une variable d'environnement vous authentifie, vérifiez que
ANTHROPIC_API_KEYest définie et exportée dans le shell où vous avez lancéclaude - Pour la CI ou l'automatisation où la connexion interactive n'est pas possible, configurez un script
apiKeyHelperqui récupère une clé au démarrage - Consultez Priorité d'authentification pour comprendre quels identifiants Claude Code utilise lorsque plusieurs sont présents
Si vous êtes invité à vous connecter à plusieurs reprises, consultez Non connecté ou jeton expiré pour les vérifications de l'horloge système et les étapes de récupération du stockage des identifiants sur macOS.
Impossible de déterminer la méthode d'authentification
La session a atteint le client API sans aucuns identifiants. Les sessions en arrière-plan et les sessions cloud affichent ce message lorsque le worker démarre sans identifiants. Les exécutions interactives, -p et Agent SDK signalent la même condition sous la forme Non connecté et n'écrivent cette chaîne que dans leur log de débogage ; si vous l'y avez trouvée, suivez donc plutôt cette entrée.
Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted
Sur les versions actuelles, l'erreur signifie qu'aucuns identifiants n'étaient disponibles pour le processus worker. Avant la v2.1.174, une session en arrière-plan attribuée à un worker pré-initialisé inactif pouvait échouer de cette manière même lorsque des identifiants valides étaient configurés. Avant la v2.1.176, une session cloud restée inactive avant d'être prise en charge le pouvait aussi. Mettez à jour pour corriger le problème.
Que faire :
- Passez à la v2.1.176 ou ultérieure si ce message apparaît dans une session en arrière-plan ou cloud et que vos identifiants sont déjà configurés
- Vérifiez que
ANTHROPIC_API_KEY,CLAUDE_CODE_OAUTH_TOKENou les identifiants de votre fournisseur cloud sont définis dans l'environnement qui lance le worker, et pas seulement dans votre shell interactif - Pour l'Agent SDK, consultez la configuration de l'authentification dans le démarrage rapide
- Exécutez
/statusdans une session interactive du même environnement pour confirmer quelle source d'identifiants est résolue
Clé API non valide
La variable d'environnement ANTHROPIC_API_KEY ou le script apiKeyHelper a renvoyé une clé que l'API a rejetée, ou Claude Code a bloqué une clé provenant de ANTHROPIC_API_KEY avant de l'envoyer.
Invalid API key · Fix external API key
Lorsque le message se poursuit après Fix external API key avec une description telle que Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines)., l'API n'a jamais vu la clé. Claude Code a trouvé un caractère que les en-têtes HTTP ne peuvent pas transporter et a arrêté la requête avant de l'envoyer. Consultez Valeur d'en-tête de requête non valide pour savoir comment lire la description et corriger la valeur.
Que faire :
- Vérifiez l'absence de fautes de frappe et confirmez que la clé n'a pas été révoquée dans la Console
- Dans le même shell, exécutez
env | grep ANTHROPIC, ou dans PowerShellGet-ChildItem Env:ANTHROPIC*. Des outils comme direnv, les plugins shell dotenv et les terminaux d'IDE peuvent charger une clé obsolète depuis un fichier.envde votre projet sans que vous l'ayez définie explicitement. - Supprimez
ANTHROPIC_API_KEYet exécutez/loginpour utiliser plutôt l'authentification par abonnement - Si la clé provient d'un script
apiKeyHelper, exécutez le script directement pour confirmer qu'il affiche une clé valide sur stdout - Exécutez
/statuspour confirmer quelle source d'identifiants Claude Code utilise réellement
Votre script apiKeyHelper échoue
Claude Code a exécuté la commande de votre paramètre apiKeyHelper et n'a pas récupéré de clé. Sans clé, la requête atteint l'API avec des identifiants factices, et l'API la rejette avec une 401. Le panneau Authentication du terminal indique lequel de ces cas s'est produit :
- La commande s'est terminée avec une erreur ou a expiré
- La commande n'a rien affiché sur stdout
- La commande a affiché autre chose que la clé, comme une bannière de connexion ou une ligne de log. Le panneau affiche
returned output that cannot be used as an API keyet indique ce qui ne va pas, sans répéter la sortie. Avant la v2.1.227, Claude Code envoyait tout ce que la commande affichait, après suppression des espaces environnants.
Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output
En mode non interactif, stderr contient également la raison précise, préfixée par apiKeyHelper failed:.
Claude Code réexécute le script et relance la requête jusqu'à deux fois supplémentaires avant d'afficher ce message, de sorte que l'échec apparaît en trois tentatives au maximum. Avant la v2.1.208, Claude Code épuisait tout le budget de nouvelles tentatives en renvoyant la requête avec les identifiants factices, puis signalait une erreur d'authentification 401 générique au lieu de l'échec du script.
Exécuter /login n'aide pas ici : la sortie du helper a priorité sur une connexion enregistrée tant que le paramètre est présent.
Que faire :
- Exécutez directement dans votre shell la commande configurée dans
apiKeyHelperpour reproduire l'échec - Si la commande signale une session expirée, authentifiez-vous à nouveau auprès de votre fournisseur d'identifiants, par exemple en vous reconnectant à votre SSO ou à votre coffre de secrets
- Corrigez la commande pour qu'elle n'affiche que la clé sur stdout, sous la forme d'un seul token d'ASCII imprimable de 16 384 caractères maximum, et qu'elle se termine avec le code 0. Consultez renouveler les identifiants avec apiKeyHelper pour une configuration fonctionnelle.
- Exécutez
/statuspour voir l'échec et confirmer queapiKeyHelperest la source d'identifiants active. La ligneapiKeyHelperafficheFailingavec le détail du dernier échec, comme le code de sortie et la sortie d'erreur de la commande, et disparaît après la prochaine exécution réussie. Avant la v2.1.274,/statusn'affichait que la source d'identifiants, pas l'échec. - Chaque fois que la commande échoue, son code de sortie et sa sortie d'erreur apparaissent également dans un panneau
Authenticationdu terminal. Avant la v2.1.212, le panneau s'intitulaitCloud authentication.
Valeur d'en-tête de requête non valide
Une valeur que Claude Code s'apprêtait à envoyer comme en-tête de requête contient un caractère que les en-têtes HTTP ne peuvent pas transporter : un saut de ligne, un octet NUL ou un caractère au-delà de U+00FF, comme un guillemet typographique ou une espace de largeur nulle. Claude Code arrête la requête avant tout envoi et nomme la variable ou le paramètre à corriger. La cause habituelle est un identifiant collé depuis un document ou un chat qui contenait un caractère invisible ou un saut de ligne parasite.
Claude Code effectue cette vérification lorsqu'il envoie des requêtes à l'API Claude directement ou via une passerelle LLM. Sur un fournisseur cloud tiers comme Amazon Bedrock, Claude Code ne l'effectue pas avant l'envoi.
Invalid auth token · Fix external auth token
Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable
Invalid request header from the environment · Fix the environment variable
La première partie du message dépend de la provenance de la valeur incorrecte :
Invalid auth token: un jeton bearer provenant deANTHROPIC_AUTH_TOKENou deCLAUDE_CODE_OAUTH_TOKENInvalid ANTHROPIC_CUSTOM_HEADERS: un nom ou une valeur d'en-tête que vous avez défini dansANTHROPIC_CUSTOM_HEADERS. La description indique le rang de la paireName: Valuefautive, par exempledistinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS, sans répéter le nom ni la valeur, puisque vous avez choisi les deux.Invalid request header from the environment: une valeur que Claude Code copie dans un en-tête de requête depuis une autre variable d'environnement, commeCLAUDE_AGENT_SDK_CLIENT_APP. La description nomme la variable à corriger.
Claude Code signale une ANTHROPIC_API_KEY incorrecte détectée par cette vérification sous la forme Clé API non valide, avec la même description finale. Il signale des identifiants /login enregistrés incorrects sous la forme Non connecté ; exécutez /login pour en enregistrer de nouveaux. La sortie d'un script apiKeyHelper n'atteint jamais cette vérification : Claude Code la valide lors de l'exécution du script, et une sortie qu'un en-tête HTTP ne peut pas transporter échoue avec Votre script apiKeyHelper échoue.
Après le second ·, le message décrit le problème, comme dans cet exemple complet :
Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).
Les positions comptent les caractères à partir de un. La description est construite à partir de phrases fixes et de nombres de caractères, elle n'inclut donc jamais la valeur elle-même. Elle nomme le caractère fautif uniquement lorsqu'il s'agit d'un caractère invisible ou typographique bien connu, comme une marque d'ordre des octets, une espace de largeur nulle ou un guillemet typographique, et signale tout autre caractère comme a non-ASCII character.
Que faire :
- Redéfinissez la variable ou le paramètre que nomme le message, en retapant les caractères autour de la position signalée plutôt qu'en collant à nouveau depuis la même source
- Pour
ANTHROPIC_CUSTOM_HEADERS, conservez une paireName: Valuepar ligne et réécrivez la paire indiquée par le message - Exécutez
/statuspour confirmer quelle source d'identifiants est active
Cette organisation a été désactivée
Claude Code utilise une ANTHROPIC_API_KEY obsolète provenant d'une organisation Console désactivée. Lorsque vous disposez d'une connexion par abonnement enregistrée, la clé la remplace.
Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead
Your ANTHROPIC_API_KEY belongs to a disabled organization · Update or unset the environment variable
API Error: 400 ... This organization has been disabled.
L'indication après le · dépend de vos identifiants enregistrés : la première forme apparaît lorsqu'une connexion /login enregistrée peut prendre le relais une fois la clé supprimée, et la seconde lorsque la clé est votre seul identifiant.
Les variables d'environnement ont priorité sur /login : une clé exportée dans votre profil de shell ou chargée depuis un fichier .env est donc utilisée même si vous disposez d'un abonnement Pro ou Max fonctionnel. En mode non interactif (-p), la clé est toujours utilisée lorsqu'elle est présente.
Que faire :
- Supprimez
ANTHROPIC_API_KEYdans le shell actuel et retirez-la de votre profil de shell, puis relancezclaude - Si le message indique
Update or unset, vous n'avez aucune connexion enregistrée sur laquelle vous rabattre. Supprimez la clé et exécutez/login, ou remplacez la clé par une clé provenant d'une organisation Console active. - Exécutez ensuite
/statuspour confirmer que les identifiants actifs sont ceux de votre abonnement - Si aucune variable d'environnement n'est définie et que l'erreur persiste, contactez le support ou connectez-vous avec un autre compte.
Votre organisation a désactivé l'authentification par clé API
Ce message nécessite Claude Code v2.1.169 ou ultérieure. L'administrateur de votre organisation Console a désactivé l'authentification par clé API, l'API rejette donc la clé que Claude Code envoie. L'indication de récupération après le · varie selon la provenance de la clé :
Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead
Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Sign in again with your claude.ai account
La dernière forme apparaît dans une session exécutée par l'application Claude Desktop, comme l'onglet Code ou Cowork, où vous vous reconnectez depuis l'application.
Les variables d'environnement et apiKeyHelper ont priorité sur /login : exécuter /login seul n'aide donc pas tant que l'un d'eux fournit encore une clé. Consultez Priorité d'authentification.
Que faire :
- Si le message nomme
ANTHROPIC_API_KEY, supprimez-la dans le shell actuel et retirez-la de votre profil de shell ou de votre fichier.env, puis relancezclaude - Si le message nomme
apiKeyHelper, retirez le paramètreapiKeyHelperde votresettings.json - Exécutez
/loginpour vous connecter avec votre compte claude.ai - Exécutez ensuite
/statuspour confirmer que les identifiants actifs sont ceux de votre abonnement et non une clé API - Si vous avez besoin de l'authentification par clé API pour l'automatisation, demandez à l'administrateur de votre organisation de la réactiver dans la Console
Votre organisation a désactivé l'accès par abonnement Claude
Votre organisation Claude n'autorise pas la connexion à Claude Code avec une connexion par abonnement. Exécuter à nouveau /login avec le même compte renvoie la même erreur.
Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access
Il s'agit d'un paramètre d'organisation côté serveur, qui ne peut donc pas être remplacé par des paramètres locaux, des variables d'environnement ou des flags CLI.
L'Agent SDK et le mode non interactif -p le signalent avec le code d'erreur oauth_org_not_allowed.
Que faire :
- Demandez à votre administrateur d'activer l'accès à Claude Code pour votre organisation
- Authentifiez-vous avec une clé API Console plutôt qu'avec votre abonnement. Consultez Authentification Claude Console pour la configuration.
- Si vous êtes l'administrateur et ne voyez pas d'option pour activer l'accès, contactez le support Anthropic
Les routines sont désactivées par la politique de votre organisation
Un Owner de votre organisation Team ou Enterprise a désactivé les tâches planifiées cloud, anciennement routines, au niveau de l'organisation. L'erreur apparaît lorsque vous essayez d'en créer ou d'en exécuter une, par exemple sur claude.ai/code/routines. Sur Claude Code v2.1.227 ou ultérieure, le même paramètre masque également /schedule dans la CLI.
Routines are disabled by your organization's policy.
Il s'agit d'un paramètre côté serveur, qui ne peut donc pas être remplacé par des paramètres locaux, des variables d'environnement ou des flags CLI.
Que faire :
- Demandez à un Owner de votre organisation d'activer l'option Scheduled tasks (Was Routines) dans Organization settings > Capabilities > Remote sessions
Remote Control nécessite l'API Anthropic
La session ne communique pas directement avec l'API Anthropic, ce que Remote Control exige.
Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.
Une seconde phrase explique ce qui a détourné la session de l'API Anthropic ; avant la v2.1.219, le message se limitait à la première phrase. Selon la cause, le message nomme :
- Une variable de fournisseur
CLAUDE_CODE_USE_*, commeCLAUDE_CODE_USE_BEDROCKpour Amazon Bedrock ouCLAUDE_CODE_USE_VERTEXpour Google Cloud's Agent Platform ANTHROPIC_BASE_URLpointant vers un hôte autre queapi.anthropic.com, comme une passerelle LLM ou un proxy, même lorsque vous vous connectez avec claude.ai ; avant la v2.1.196, une URL de base personnalisée ne bloquait pas Remote ControlANTHROPIC_UNIX_SOCKETdéfinie, de sorte que la session envoie ses requêtes via un socket local plutôt qu'àapi.anthropic.com- Une connexion à une passerelle cloud d'entreprise effectuée via
/login, qui ne prend pas en charge Remote Control et n'a aucune variable à supprimer
Que faire :
- Supprimez la variable que nomme le message, comme
CLAUDE_CODE_USE_BEDROCKouANTHROPIC_BASE_URL, et redémarrez la session, ou lancez Remote Control depuis une session qui communique directement avec l'API Anthropic - Si la variable n'est pas définie dans votre shell, vérifiez la clé
envdans vos fichiers de paramètres, qui applique des variables d'environnement à chaque session - Pour ce message et les autres messages de démarrage de Remote Control, consultez Dépannage de Remote Control
Remote Control n'a pas pu actualiser votre connexion
Claude Code fait fonctionner une connexion Remote Control active avec des identifiants de courte durée qu'il obtient et renouvelle à l'aide de votre connexion claude.ai enregistrée. Lorsque claude.ai cesse d'accepter cette connexion, ou que Claude Code n'a plus de connexion enregistrée, Claude Code arrête Remote Control et vous demande de vous reconnecter. L'un ou l'autre échec peut survenir pendant que Claude Code est encore en train de se connecter ou plus tard, lors du renouvellement des identifiants.
Lorsque Claude Code demande au service de connexion d'actualiser votre connexion enregistrée et n'obtient aucune réponse, il maintient Remote Control en fonctionnement et retente l'actualisation tant que les identifiants actuels de la connexion sont encore valides. Une actualisation reste sans réponse lorsque Claude Code ne peut pas joindre le service de connexion, que la requête expire ou que le service échoue sans rejeter votre connexion. Si le service de connexion ne répond toujours pas à l'expiration de ces identifiants, Claude Code arrête Remote Control et signale OAuth token refresh failed.
Lorsque Claude Code arrête Remote Control, il affiche la raison dans un avertissement et dans une ligne de transcription commençant par Remote Control disconnected. Votre session locale continue de fonctionner sans Remote Control. Cette section couvre les lignes suivantes :
Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control
Remote Control disconnected — Claude.ai login expired — run /login, then /remote-control
Remote Control disconnected — Claude.ai login was rejected — run /login, then /remote-control
Remote Control disconnected — OAuth token unavailable — run /login to restore Remote Control
Remote Control disconnected — OAuth token refresh failed — run /login to re-authenticate
Remote Control disconnected — JWT refresh failed: no OAuth token — run /login
Remote Control disconnected — Signed out of Claude — run /login, then /remote-control
Claude Code nomme la cause au milieu du message :
Claude.ai login expiredetClaude.ai login was rejected: claude.ai n'accepte plus votre jeton de connexion enregistré, parce qu'il a expiré ou a été révoquéOAuth token unavailable: Claude Code n'avait aucun jeton de connexion enregistré au moment où les identifiants de la connexion devaient être renouvelésOAuth token refresh failed: claude.ai a rejeté votre jeton de connexion enregistré pendant que Claude Code se reconnectait, et l'actualisation du jeton n'en a pas produit de nouveauJWT refresh failed: no OAuth token: Claude Code n'a trouvé aucun jeton de connexion enregistré avec lequel renouvelerSigned out of Claude: vous vous êtes déconnecté sur cette machine, par exemple en exécutant/logoutdans un autre terminal, Claude Code n'a donc plus de connexion enregistrée avec laquelle renouveler la connexion
Que faire :
- Exécutez
/loginpour vous reconnecter - Exécutez
/remote-controlpour reconnecter la session. Les messages se terminant parrun /login to restore Remote Controlne nécessitent pas cette étape : Claude Code se reconnecte de lui-même une fois que vous êtes connecté.
Avant la v2.1.224, OAuth token refresh failed — run /login to re-authenticate s'affichait sous la forme OAuth token refresh failed — re-authenticate, then re-enable Remote Control, et JWT refresh failed: no OAuth token — run /login sous la forme no OAuth token available for recovery (code <N>). Les messages Claude.ai login expired, Claude.ai login was rejected et OAuth token unavailable ont été ajoutés dans la v2.1.225.
Avant la v2.1.238, Claude Code signalait les cas qui affichent désormais Signed out of Claude sous la forme JWT refresh failed: no OAuth token — run /login, et arrêtait Remote Control avec Claude.ai login expired — run /login to restore Remote Control dès qu'une actualisation de connexion restait sans réponse.
Remote Control could not renew this computer's connection
Cet avertissement apparaît dans le terminal exécutant claude remote-control lorsque le serveur ne peut pas utiliser votre connexion claude.ai pour renouveler l'identifiant de sa connexion avant son expiration. La dernière phrase de l'avertissement indique pendant combien de temps l'identifiant actuel fonctionne encore, ou qu'il a déjà expiré :
Remote Control could not renew this computer's connection: claude.ai did not accept the sign-in it uses. Run `claude /login` to sign in again. The connection keeps working for about 26 hours; if it still cannot sign in then, it stops.
Que faire :
- Si l'avertissement vous demande d'exécuter
claude /login, ouvrez un autre terminal sur la machine qui exécute le serveur, exécutez-yclaude /loginet connectez-vous avec votre compte claude.ai - Si le serveur ne parvient toujours pas à se connecter une fois l'identifiant de la connexion expiré, il affiche une erreur contenant
Poll: Authentication failed (401)et s'arrête. Reconnectez-vous comme l'indique la deuxième phrase de l'avertissement, puis exécutez à nouveauclaude remote-controldans le terminal où le serveur s'est arrêté.
Remote Control s'est arrêté parce que le compte connecté a changé
Claude Code affiche cette ligne pendant une session Remote Control lorsque vous vous connectez à un autre compte ou à une autre organisation claude.ai sur cette machine. Vous avez effectué ce changement en dehors de la session Claude Code, par exemple en exécutant /login dans un autre terminal.
Une session Remote Control que vous avez démarrée en étant connecté via /login appartient au compte et à l'organisation claude.ai connectés à ce moment-là.
Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control
Claude Code arrête la session Remote Control dès que claude.ai confirme que le compte ou l'organisation a changé. Votre session locale continue de fonctionner sans Remote Control.
Que faire :
- Exécutez
/remote-controlpour démarrer une nouvelle session Remote Control sous le compte ou l'organisation actuel - Pour revenir en arrière, exécutez
/loginet reconnectez-vous au compte ou à l'organisation précédent. Exécutez ensuite/remote-control.
Avant la v2.1.234, Claude Code ne détectait pas le passage à un autre compte ou à une autre organisation en dehors de la session Claude Code. Claude Code maintenait la session Remote Control connectée jusqu'à ce qu'une requête ultérieure au serveur Remote Control échoue avec Remote Control server rejected the request (HTTP 404). Cet échec pouvait survenir des heures après le changement.
Remote Control s'est arrêté parce que l'application exécutant la session s'est déconnectée ou a changé de compte
Lorsque l'application de bureau Claude ou un IDE héberge votre session, Claude Code obtient son jeton de connexion auprès de cette application plutôt que via /login. Lorsque claude.ai rejette ce jeton, Claude Code en demande un nouveau à l'application. Si l'application répond qu'elle est déconnectée, ou qu'elle est désormais connectée à un autre compte Claude, Claude Code met fin à la session Remote Control et envoie à l'application l'une de ces lignes :
Remote Control stopped — the app running this session is now signed in to a different Claude account
Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on
Votre session locale continue de fonctionner sans Remote Control.
Que faire :
- Si l'application est déconnectée, reconnectez-vous-y, puis réactivez Remote Control dans l'application
- Si l'application a changé de compte, Claude Code ne peut pas poursuivre la session terminée sous le nouveau compte. Démarrez une nouvelle session Remote Control sous ce compte.
Avant la v2.1.238, Claude Code envoyait à l'application, dans les deux cas, les messages run /login listés sous Remote Control n'a pas pu actualiser votre connexion.
Jeton OAuth révoqué ou expiré
Votre connexion enregistrée n'est plus valide. Un jeton révoqué signifie que vous vous êtes déconnecté partout ou qu'un administrateur a retiré l'accès ; un jeton expiré signifie que l'actualisation automatique a échoué en cours de session.
Les deux messages signalent un rejet renvoyé par l'API pour une requête envoyée par Claude Code. Lorsque la connexion enregistrée a déjà été effacée après un échec d'actualisation, vous voyez plutôt Connexion expirée. Si vous vous authentifiez avec un jeton de longue durée dans CLAUDE_CODE_OAUTH_TOKEN, vous voyez les mêmes messages lorsque ce jeton expire ou est révoqué.
OAuth token revoked · Please run /login
Please run /login · API Error: 401 OAuth token has expired ...
En mode non interactif (-p) et dans l'Agent SDK, les messages se présentent comme suit, et le code d'erreur structuré est authentication_failed :
Failed to authenticate: OAuth token revoked. Please log in again or contact your administrator.
Failed to authenticate. API Error: 401 OAuth token has expired ...
Avant la v2.1.287, en mode non interactif et dans l'Agent SDK, le message de révocation indiquait Your account does not have access to Claude. Please login again or contact your administrator.
Que faire :
- Exécutez
/loginà l'invite de Claude Code pour vous reconnecter - Si votre commande
-pou votre programme Agent SDK utilise une connexion enregistrée, exécutezclaudedans le même environnement, effectuez/login, puis relancez la commande ou le programme. Pour une automatisation qui ne peut pas se connecter de manière interactive, authentifiez-vous avecANTHROPIC_API_KEYou générez un jeton de longue durée avecclaude setup-token. - Si vous vous authentifiez avec la variable d'environnement
CLAUDE_CODE_OAUTH_TOKEN, Claude Code continue d'envoyer la valeur que vous avez définie après l'échec d'une requête avec une 401, plutôt que de passer au jeton d'une connexion enregistrée./statusaffiche ces identifiants sous la forme d'une ligneAuth tokenindiquantCLAUDE_CODE_OAUTH_TOKEN. Générez un nouveau jeton avecclaude setup-tokenet redémarrez avec celui-ci, ou supprimez la variable et exécutez/login. Avant la v2.1.225, Claude Code pouvait remplacer la valeur de la variable en cours de session par le jeton d'accès de courte durée d'une connexion enregistrée, et la session échouait à nouveau avec des erreurs 401 une fois ce jeton expiré. - Pour des demandes de connexion répétées d'un lancement à l'autre, consultez les vérifications de l'horloge système et les étapes de récupération du stockage des identifiants sur macOS dans Dépannage
- Pour d'autres échecs, notamment
403 Forbiddenet les problèmes de navigateur OAuth, consultez Connexion et authentification
API Error: 401 Invalid authentication credentials
L'API a reconnu le format de vos identifiants mais a rejeté le compte ou l'organisation qui se trouve derrière. Anthropic renvoie ce message lorsque des identifiants ont été récemment révoqués, lorsqu'une organisation a été désactivée ou a retiré votre accès, ou lorsque le compte lui-même a été désactivé ; un jeton expiré n'en est donc pas la cause. Les identifiants peuvent être votre connexion enregistrée ou une ANTHROPIC_API_KEY approuvée, et la solution diffère : commencez donc par exécuter /status pour voir lesquels sont actifs.
Please run /login · API Error: 401 Invalid authentication credentials
Que faire :
- Si
/statusaffiche une ligneAPI keyqui n'est pas marquée comme inutilisée, uneANTHROPIC_API_KEYapprouvée constitue les identifiants actifs et a priorité sur votre connexion, de sorte que/loginne la remplace pas. Renouvelez la clé dans la Claude Console, ou revenez à votre abonnement en exécutantunset ANTHROPIC_API_KEY, ou dans PowerShellRemove-Item Env:ANTHROPIC_API_KEY. - Si
/statusn'affiche que votre connexion, exécutez/loginune fois. Si les identifiants ont été révoqués, une nouvelle connexion les remplace. - Si le même message revient pour le même compte de connexion, le compte ou l'organisation n'est plus actif. Vérifiez le compte et l'organisation que signale
/status, et demandez à l'administrateur de votre organisation de rétablir l'accès. - Si
ANTHROPIC_BASE_URLpointe vers une passerelle LLM, le texte après401est le message de votre passerelle et non celui d'Anthropic, et/loginn'y change rien. Corrigez plutôt les identifiants qu'attend votre passerelle. - Si chaque requête échoue avec une erreur
401alors que votre passerelle dispose des identifiants qu'elle attend, vérifiez si la passerelle rejette les champs de recherche d'outils que Claude Code envoie par défaut. Pour le vérifier, définissezENABLE_TOOL_SEARCH=falsecomme le décrit Recherche d'outils via une passerelle LLM, puis réessayez. Avant la v2.1.304, la recherche d'outils était désactivée derrière une passerelle, sauf si vous l'activiez avecENABLE_TOOL_SEARCH.
Connexion expirée
Claude Code a tenté de renouveler votre connexion claude.ai enregistrée et le service OAuth a rejeté le jeton d'actualisation stocké ; Claude Code a donc effacé les identifiants enregistrés. Ensuite, chaque requête au modèle s'arrête localement avec ce message avant d'atteindre l'API, car seul /login peut créer de nouveaux identifiants.
Avant la v2.1.206, Claude Code envoyait quand même la requête au modèle avec les identifiants restant dans l'environnement, et chaque modèle échouait alors avec Un problème concerne le modèle sélectionné ou une 401 au lieu d'une invitation à se connecter.
Login expired · Please run /login
En mode non interactif (-p) et dans l'Agent SDK, le message se présente comme suit, et le code d'erreur structuré est authentication_failed :
Failed to authenticate: OAuth session expired and could not be refreshed
Pour un message Login expired qui se termine par or re-authenticate your Anthropic profile, consultez Anthropic profile login expired.
Cet état est différent de Jeton OAuth révoqué ou expiré. Ces messages signalent un rejet renvoyé par l'API. Claude Code produit lui-même Login expired pour une connexion qu'il n'a déjà pas réussi à renouveler ; il n'envoie donc aucune requête. Lorsque le renouvellement échoue parce que le compte lui-même est suspendu plutôt que parce que la connexion est obsolète, Claude Code affiche plutôt Votre compte est suspendu.
Les sessions authentifiées avec une clé API, CLAUDE_CODE_OAUTH_TOKEN ou un fournisseur tiers n'utilisent pas la connexion enregistrée et ne voient jamais ce message.
Vous pouvez détecter cet état avant l'échec d'une requête : /status affiche une ligne Login indiquant Expired — log in again, ainsi que l'organisation et l'adresse e-mail enregistrées pour la connexion expirée. La ligne n'apparaît que lorsque la connexion enregistrée constitue vos identifiants actifs et ne peut plus être actualisée. Les sessions authentifiées d'une autre manière n'affichent pas cette ligne, même si une connexion expirée reste enregistrée. Avant la v2.1.210, /status n'indiquait pas dans cet état qu'une connexion avait jamais existé, car les identifiants effacés ne lui laissaient rien à signaler.
Que faire :
- Exécutez
/loginpour vous reconnecter. Réessayer sans vous connecter affiche le même message à chaque requête. - Si vous vous connectez avec votre compte claude.ai dans une autre fenêtre Claude Code, consultez Non connecté pour savoir quand cette session commence à utiliser cette connexion d'elle-même.
- En mode non interactif, exécutez
claudedans le même environnement, effectuez/login, puis relancez votre commande. Pour une automatisation qui ne peut pas se connecter de manière interactive, authentifiez-vous avecANTHROPIC_API_KEYou générez un jeton de longue durée avecclaude setup-token. - Si la connexion continue d'échouer, consultez Connexion et authentification
Impossible d'actualiser votre connexion, car un autre processus Claude Code est en train de l'actualiser
Ce message ne signifie pas que votre connexion a été rejetée. Votre connexion claude.ai enregistrée avait expiré et devait être renouvelée. Un autre processus Claude Code sur la même machine détenait le verrou d'actualisation partagé, ou s'est terminé en le laissant derrière lui, et l'actualisation n'a pas progressé pendant que cette session attendait. Claude Code arrête la requête avant de l'envoyer :
Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login
En mode non interactif (-p) et dans l'Agent SDK, le message se présente comme suit, et le code d'erreur structuré est server_error :
Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again
Les sessions authentifiées avec une clé API, CLAUDE_CODE_OAUTH_TOKEN ou un fournisseur tiers n'utilisent pas la connexion enregistrée et ne voient jamais ce message.
Que faire :
- Réessayez dans une minute. Si un autre processus termine l'actualisation en premier, cette session utilise la connexion renouvelée.
- Si le message continue de revenir, fermez les autres fenêtres et processus Claude Code, puis réessayez.
- S'il revient alors qu'aucun autre processus Claude Code n'est en cours d'exécution, exécutez
/login. Se reconnecter n'attend pas le verrou d'actualisation.
Impossible d'enregistrer votre connexion
Vous vous êtes connecté avec claude.ai, mais Claude Code n'a pas pu enregistrer la connexion dans son magasin d'identifiants ; la connexion n'a donc pas abouti. Sur macOS, cela peut se produire lorsque le trousseau de session se verrouille, par exemple lors de la mise en veille ou d'une inactivité, après que Claude Code y a déjà lu ou enregistré des identifiants au cours de la même session.
Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.
Couldn't save your login. Try logging in again.
La première forme apparaît sur macOS et la seconde partout ailleurs. Un échec transitoire du magasin d'identifiants, comme un délai d'expiration ou un magasin illisible, produit le même message.
Que faire :
- Sur macOS, déverrouillez le trousseau de session, puis exécutez à nouveau
/login - Sur les autres plateformes, exécutez à nouveau
/login - Si la connexion ne s'enregistre toujours pas, consultez Non connecté ou jeton expiré pour la commande de déverrouillage du trousseau et d'autres étapes de récupération du stockage des identifiants
Couldn't start the local listener that receives the browser sign-in
Chacun de ces messages provenant de /login, claude auth login ou claude setup-token signifie que Claude Code n'a pas pu ouvrir le port sur 127.0.0.1 où votre navigateur renvoie le résultat de la connexion.
Avec l'avis qui commence par The browser can't return the sign-in to Claude Code automatically, la connexion se poursuit sans ce port. Aucun navigateur ne s'ouvre, et l'avis apparaît au-dessus d'une URL où vous vous connectez à la place :
The browser can't return the sign-in to Claude Code automatically. After you sign in, paste the code shown.
Avec le message qui inclut Couldn't start the local listener, la connexion s'est arrêtée. Cela se produit, par exemple, lorsque vous redirigez une entrée vers claude auth login :
Couldn't start the local listener that receives the browser sign-in. Try again.
Que faire :
The browser can't return the sign-in to Claude Code automatically: vous n'avez rien à corriger au préalable. Ouvrez l'URL affichée sous l'avis dans un navigateur et connectez-vous. Le navigateur affiche alors un code : collez-le dans Claude Code à l'invitePaste code here >, et la connexion se poursuit à partir de là.Couldn't start the local listener that receives the browser sign-in: exécutez à nouveau la même commande. Si elle s'arrête de la même manière, connectez-vous avec un jeton ou une clé API au lieu du navigateur. Ou, si vous avez redirigé une entrée versclaude auth login, exécutez-la dans un terminal afin qu'elle puisse accepter un code collé.- Pour vous connecter avec un jeton ou une clé API au lieu du navigateur : si vous utilisez un abonnement claude.ai, exécutez
claude setup-tokensur une machine où la connexion fonctionne. Définissez ensuite le jeton qu'il affiche comme variable d'environnementCLAUDE_CODE_OAUTH_TOKENsur cette machine. Sinon, définissez la variable d'environnementANTHROPIC_API_KEYsur une clé provenant de la Claude Console. Priorité d'authentification explique comment Claude Code choisit entre les identifiants. - Pour rétablir le retour automatique du navigateur : Claude Code doit pouvoir écouter sur
127.0.0.1. S'il s'exécute dans un sandbox, vérifiez que la politique du sandbox autorise l'écoute sur les ports locaux, puis reconnectez-vous. Si l'écoute devrait fonctionner dans cet environnement et que l'avis apparaît toujours, exécutez/feedbackafin que le rapport inclue les détails de votre environnement.
Avant la v2.1.305, la connexion s'arrêtait dès que le port ne pouvait pas être ouvert et n'affichait aucune URL de connexion. Le message était, par exemple, Failed to start OAuth callback server: Failed to start server. Is port 0 in use?. Sur ces versions, mettez à jour Claude Code et reconnectez-vous, ou connectez-vous avec un jeton ou une clé API au lieu du navigateur.
Connexion Claude non acceptée
Vous avez tenté de démarrer une session cloud, et le serveur a refusé de la créer avec une 401 : il n'a pas accepté la connexion Claude envoyée par cette machine, généralement parce que la connexion a expiré ou a été révoquée.
La première partie de la ligne est la raison propre du serveur lorsqu'il en fournit une. Sinon, la ligne indique :
Claude login not accepted · Run /login, then try again
Que faire :
- Exécutez
/login, terminez la connexion, puis démarrez à nouveau la session
Les artefacts nécessitent une connexion claude.ai
Claude Code a refusé une publication ou une lecture d'artefact parce que la session n'a aucune connexion claude.ai utilisable pour les artefacts.
Chaque forme du message commence par les mêmes mots, suivis d'une solution qui dépend de la manière dont votre session s'authentifie. En l'absence d'identifiants concurrents, il indique :
Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.
Que faire :
- Exécutez
/loginet sélectionnez Claude account with subscription. L'option Anthropic Console account ne fournit pas d'identifiants claude.ai. - Lorsque le message nomme des identifiants qui ont priorité, comme
ANTHROPIC_API_KEY, un paramètreapiKeyHelperou une clé Console enregistrée par un/loginprécédent, supprimez-les comme l'indique le message, puis exécutez/login - Lorsque le message indique que cette session à distance s'authentifie via la machine qui l'a lancée, connectez-vous à claude.ai sur cette machine, puis reconnectez la session
- Lorsque le message indique que les identifiants sont injectés par l'environnement hôte de la session, vous ne pouvez pas les modifier dans cette session ; démarrez une session connectée à claude.ai
- Consultez Disponibilité pour les autres exigences des artefacts, comme le forfait, le fournisseur de modèle et la politique de l'organisation
La politique de l'administrateur exige une connexion à la passerelle cloud
Les paramètres gérés d'un administrateur sur cette machine définissent forceLoginMethod sur "gateway" ou définissent forceLoginGatewayUrl. Sauf si vous sélectionnez un fournisseur cloud via une variable comme CLAUDE_CODE_USE_BEDROCK, Claude Code n'accepte alors que la connexion à la passerelle des applications Claude. Vous voyez l'un de ces deux messages :
Not signed in to the Cloud gateway — run /login.
Les requêtes au modèle échouent avec ce message lorsque la session n'a pas de connexion à la passerelle, par exemple parce que vous n'avez pas exécuté /login depuis que la politique a atteint la machine.
Si la machine détient également des identifiants émis par Anthropic et que les paramètres gérés définissent forceLoginMethod ou forceLoginOrgUUID, Claude Code se ferme plutôt au démarrage. Ces identifiants peuvent être une variable ANTHROPIC_API_KEY ou ANTHROPIC_AUTH_TOKEN, un paramètre apiKeyHelper ou une clé API enregistrée par une connexion Claude Console antérieure.
Le message de démarrage nomme les identifiants avec lesquels la session est configurée, l'endroit où ils sont définis et l'étape qui les supprime. Par exemple, avec une variable ANTHROPIC_API_KEY définie dans votre shell, il indique :
Administrator policy requires a Cloud gateway sign-in on this machine, but this session is configured with an API key from ANTHROPIC_API_KEY, which a gateway machine does not accept.
To continue: unset ANTHROPIC_API_KEY (or run in a shell without it), then run claude and sign in with /login.
Que faire :
- Pour
Not signed in to the Cloud gateway, exécutez/loginet terminez la connexion sur l'écran Cloud gateway - Pour le message de démarrage, supprimez les identifiants en suivant les étapes à la fin du message
- Si vous pensez que la machine ne devrait pas exiger la passerelle, demandez à l'administrateur qui la gère de retirer
forceLoginMethodetforceLoginGatewayUrlde ses paramètres gérés
Avant la v2.1.284, le message de démarrage listait les identifiants possibles au lieu de nommer ceux qui étaient configurés. Il commençait par Administrator policy requires a Cloud gateway sign-in on this machine; the Anthropic-issued credential configured here (ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used. Si vous voyez cette formulation et ne parvenez pas à déterminer quels identifiants supprimer, passez à la v2.1.284 ou ultérieure et relancez claude.
Sur la v2.1.265, une régression affichait également le premier message dans certaines configurations de passerelle LLM et de proxy qui s'authentifient avec une clé API, apiKeyHelper ou des en-têtes personnalisés, même sans exigence de l'administrateur sur la machine. Passez à la v2.1.266 ou ultérieure. Vous n'avez pas besoin de modifier votre configuration.
Avant la v2.1.261, sur les machines qui définissaient forceLoginMethod sur "gateway", Claude Code utilisait une connexion enregistrée résiduelle au lieu de faire échouer les requêtes au modèle, et signalait des identifiants d'environnement configurés avec This machine's managed settings require a first-party login au lieu du message de démarrage.
Votre compte est suspendu
Le compte Claude associé à votre connexion a été suspendu. Claude Code affiche le premier message lorsqu'il tente de renouveler votre connexion enregistrée et apprend la suspension, et le second lorsqu'une connexion que vous effectuez dans le navigateur la signale :
Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted
Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted
Se reconnecter avec le même compte ne fait pas disparaître le message, car la suspension porte sur le compte et non sur la connexion. En mode non interactif (-p) et dans l'Agent SDK, le code d'erreur structuré est account_on_hold. Avant la v2.1.235, Claude Code signalait un compte suspendu sous la forme Login expired · Please run /login, dont les étapes de récupération ne peuvent pas lever une suspension.
Que faire :
- Ouvrez le lien du message pour consulter les détails de la suspension ou faire appel
- Si vous disposez d'un autre compte Claude ou d'une clé API non concernés par la suspension, vous pouvez continuer à travailler pendant sa résolution : exécutez
/loginavec ce compte, ou définissez la clé avecANTHROPIC_API_KEY
Connexion au profil Anthropic expirée
Claude Code s'authentifie via un profil d'identifiants Anthropic dont l'identifiant de connexion enregistré a expiré, et le profil ne contient aucun identifiant d'actualisation que Claude Code puisse utiliser pour le renouveler. Claude Code arrête chaque requête localement sans réessayer.
Anthropic profile login expired · Re-authenticate your Anthropic profile
Login expired · Run /login to sign in again, or re-authenticate your Anthropic profile
Que faire :
- Si le message commence par
Login expired, exécutez/loginpour vous reconnecter - Pour renouveler un profil écrit par la connexion Console sans clé ou par
ant auth loginde la CLI Claude Platform, exécutez/loginsur une machine qui propose la connexion sans clé. Choisissez le compte Anthropic Console, puis Sign in with your Console account. Claude Code remplace l'identifiant expiré dans ce profil - Pour renouveler un profil créé par un autre outil, reconnectez-vous avec cet outil. Si vous choisissez plutôt Sign in with your Console account dans
/login, Claude Code laisse le profil tel quel et crée une clé API - Si un administrateur a provisionné les identifiants du profil, demandez-lui d'en émettre de nouveaux
- Exécutez
/statuspour confirmer la source d'identifiants active et le nom du profil - Pour cesser d'utiliser le profil, supprimez
ANTHROPIC_PROFILEsi vous l'avez définie, puis authentifiez-vous d'une autre manière, par exemple avec/loginouANTHROPIC_API_KEY
Le début du message vous indique comment Claude Code a trouvé le profil :
- Lorsque Claude Code a découvert le profil à partir de votre répertoire de configuration et que son mode d'authentification est
user_oauth, le message commence parLogin expiredet propose d'abord/login. Claude Code donne à un/loginfonctionnel la priorité sur le profil découvert, puis s'authentifie plutôt avec votre compte claude.ai. De la v2.1.234 à la v2.1.277, cette forme indiquaitAnthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile. Avant la v2.1.234, Claude Code affichait également la formeRe-authenticate your Anthropic profiledans ce cas. - Lorsque vous avez sélectionné le profil avec
ANTHROPIC_PROFILE, le message commence parAnthropic profile login expired.
Ce message n'apparaît que lorsque l'identifiant actif provient d'un profil d'identifiants Anthropic, soit un profil que vous sélectionnez avec la variable d'environnement ANTHROPIC_PROFILE, soit un profil que Claude Code découvre comme profil actif dans votre répertoire de configuration Anthropic, soit un profil que Claude Code a écrit lorsque vous vous êtes connecté sans clé API. Les sessions qui s'authentifient avec une clé API, un jeton bearer comme ANTHROPIC_AUTH_TOKEN ou un fournisseur tiers ne voient jamais ce message.
Exigence de scope OAuth
Le jeton stocké est antérieur à un scope de permission dont une fonctionnalité plus récente a besoin :
OAuth token does not meet scope requirement: user:profile
Que faire :
- Exécutez
/loginpour obtenir un nouveau jeton avec les scopes actuels. Vous n'avez pas besoin de vous déconnecter au préalable.
claude.ai a rejeté le jeton de session
Une requête d'un connecteur claude.ai a échoué parce que claude.ai a rejeté le jeton de votre connexion Claude Code. Le jeton rejeté est votre connexion, et non l'autorisation propre du connecteur dans claude.ai ; autoriser à nouveau le connecteur ne résout donc pas le problème. Dans /mcp, le connecteur apparaît comme session token rejected et sa vue détaillée indique :
claude.ai rejected the session token. Run /login, then reconnect.
Que faire :
- Exécutez
/loginpour vous reconnecter - Reconnectez le connecteur depuis
/mcp, ou exécutez/mcp reconnect <server>. Reconnecter avant de vous être reconnecté laisse le connecteur dans le même état. L'option Reconnect du panneau/mcpsignaleyour claude.ai session token was rejected; la forme saisie/mcp reconnect <server>signale une reconnexion réussie alors que le jeton est toujours rejeté.
Avant la v2.1.222, Claude Code marquait plutôt le connecteur comme nécessitant une authentification, ce qui vous orientait vers le flux d'autorisation du connecteur alors que le mener à terme ne résolvait pas l'état.
Le serveur MCP vous demande de vous reconnecter
Un serveur MCP distant a rejeté les identifiants lors d'un appel d'outil en cours de session, généralement parce qu'une connexion ou un jeton a expiré ou parce que le jeton ne dispose pas d'une permission dont l'outil a besoin. L'appel d'outil échoue, et /mcp marque le serveur comme nécessitant une authentification.
Pour un serveur auquel vous vous connectez depuis Claude Code, y compris un connecteur claude.ai, la connexion a expiré ou a été révoquée :
MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)
Exécutez /mcp, sélectionnez le serveur et reconnectez-vous depuis son menu.
Pour un serveur configuré avec un script headersHelper, Claude Code a déjà réexécuté le helper et relancé l'appel une fois avant d'afficher ceci :
MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)
Vérifiez que le helper renvoie des identifiants que le serveur accepte, puis reconnectez-vous depuis /mcp, qui réexécute le helper.
Pour un serveur avec un en-tête Authorization statique dans sa configuration :
MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)
Mettez à jour la valeur de l'en-tête là où le serveur est configuré, puis reconnectez-vous depuis /mcp.
Dans une session Cowork sur votre machine dans l'application Claude Desktop, ces messages signifient que le serveur MCP a rejeté un identifiant qui lui a été fourni. Corrigez celui que le message nomme, puis démarrez une nouvelle tâche ou un nouveau chat dans Cowork :
MCP server "<name>" rejected the credential from its headersHelper (check the helper, then start a new task or chat)
MCP server "<name>" rejected the Authorization header in its config (update it, then start a new task or chat)
- Identifiant
headersHelperrejeté : vérifiez que le helper renvoie un identifiant accepté par le serveur, puis démarrez une nouvelle tâche ou un nouveau chat dans Cowork - En-tête
Authorizationrejeté : mettez à jour la valeurAuthorizationsousheadersdans la configuration de ce serveur, puis démarrez une nouvelle tâche ou un nouveau chat dans Cowork
Avant la v2.1.302, une session Cowork affichait plutôt les fins de message run /mcp to reconnect, bien que /mcp n'y soit pas disponible. Si vous voyez une telle fin de message dans Cowork, vérifiez tout de même le helper ou mettez à jour l'en-tête, puis démarrez une nouvelle tâche ou un nouveau chat. Avant la v2.1.273, les cas de connexion expirée, de headersHelper et d'en-tête Authorization affichaient tous MCP server "<name>" requires re-authorization (token expired).
Un serveur peut également refuser un appel d'outil avec une erreur HTTP 403 insufficient_scope pour vous demander d'autoriser un scope, parfois un scope que votre jeton liste déjà. Le message nomme ce scope :
MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate
Exécutez /mcp, sélectionnez le serveur et authentifiez-vous à nouveau depuis son menu.
Lorsque la configuration du serveur ne définit ni oauth.scopes ni authServerMetadataUrl, Claude Code demande le scope que le serveur a nommé. Avec l'un ou l'autre de ces paramètres, Claude Code demande plutôt les scopes de ce paramètre. Si vous avez figé oauth.scopes, ajoutez le scope manquant à cette liste avant de vous authentifier à nouveau.
Avant la v2.1.274, ce cas affichait le message needs you to sign in again, et avant la v2.1.273 il affichait requires re-authorization (token expired) comme les autres cas.
Couldn't read the stored credentials for MCP server
Claude Code conserve vos connexions aux serveurs MCP OAuth dans un magasin d'identifiants. Ce message signifie que Claude Code n'a pas pu lire ce magasin, donc une requête au serveur n'a pas été exécutée :
Couldn't read the stored credentials for MCP server "<name>", so the request didn't run. If your Mac's keychain is locked, unlock it, then try again.
Couldn't read the stored credentials for MCP server "<name>", so the request didn't run. Try again.
Vos connexions stockées restent inchangées : réessayez une fois que le magasin peut être lu, et ne vous reconnectez que si le serveur vous le demande ensuite.
Dans une exécution claude -p ou Agent SDK sur macOS, le trousseau peut devenir lisible après qu'une requête a déjà été envoyée sans la connexion stockée. Cette requête échoue avec :
A request to MCP server "<name>" was sent without your stored credentials, so the server rejected it. The credentials are available now. Try again.
Que faire :
-
Si le message vous demande de déverrouiller le trousseau de votre Mac, exécutez
claude doctordans la session shell depuis laquelle vous exécutez Claude Code, et recherchez un avertissement concernant le trousseau dans son rapport :-
Si le rapport contient un avertissement commençant par
macOS Keychain is not writable, ou si votre shell ne dispose pas de la commandeclaude, exécutez cette commande de déverrouillage dans cette session shell :security unlock-keychain ~/Library/Keychains/login.keychain-db -
Si le rapport ne contient aucun avertissement concernant le trousseau, ignorez la commande de déverrouillage
-
-
Réessayez là où vous avez vu le message :
- Pour
claude -p, exécutez à nouveau la commande - Dans une session interactive, reconnectez le serveur depuis
/mcps'il y apparaît en échec, puis demandez à Claude de réessayer - Dans une application Agent SDK qui continue de s'exécuter, appelez
reconnectMcpServer()en TypeScript ouClaudeSDKClient.reconnect_mcp_server()en Python, ou démarrez une nouvelle session
- Pour
-
Si le serveur signale ensuite qu'il a besoin d'une authentification, Claude Code n'a trouvé aucune connexion utilisable pour ce serveur. Connectez-vous de manière interactive : exécutez
/mcpdans une session Claude Code, ouclaude mcp login <name>dans votre shell. Dans une application Agent SDK, consultez Authentification OAuth2 dans l'Agent SDK.
Avant la v2.1.307, une exécution claude -p ou Agent SDK sur un Mac dont le trousseau de connexion était verrouillé signalait que le serveur nécessitait une authentification au lieu d'afficher l'un ou l'autre de ces messages.
L'URL du serveur MCP est manquante ou n'est pas une URL valide
Claude Code a refusé de démarrer une connexion OAuth pour un serveur MCP distant parce que l'url configurée du serveur ne peut pas être analysée comme une URL. Sauf si Claude Code a un problème de configuration plus précis à signaler pour le serveur, exécuter claude mcp login <name> dans votre shell affiche le refus ainsi :
Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.
Que faire :
- Définissez l'
urlde l'entrée sur l'endpoint réel du serveur là où le serveur est configuré, ou définissez la variable d'environnement que nomme sa référence${VAR}, puis relancez la connexion.
Incohérence de l'émetteur dans la réponse d'autorisation
Lors d'une connexion OAuth MCP, le serveur d'autorisation a redirigé vers Claude Code avec un paramètre iss qui ne nomme pas l'émetteur que Claude Code attendait d'après les métadonnées OAuth du serveur. Un émetteur incorrect à cette étape correspond à la signature d'une attaque par confusion de serveur d'autorisation (mix-up) ; Claude Code fait donc échouer la connexion au lieu d'échanger le code d'autorisation. Claude Code affiche l'erreur dans le menu du serveur /mcp après la connexion par navigateur :
Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"
expected est l'émetteur indiqué dans les métadonnées OAuth du serveur, et received est la valeur iss que contenait la redirection. Une connexion dont la redirection ne contient aucun paramètre iss passe la vérification, sauf si les métadonnées du serveur définissent authorization_response_iss_parameter_supported, auquel cas Claude Code fait échouer la connexion.
Que faire :
- Relancez la connexion depuis
/mcp - Si l'erreur se répète, signalez-la à l'opérateur du serveur. La correction se fait côté serveur : le serveur d'autorisation doit renvoyer dans le paramètre
issle même émetteur que celui qu'il annonce dans ses métadonnées - Pour vous connecter pendant la correction du serveur, démarrez Claude Code avec
MCP_SDK_GENERATION=v1, dont le runtime n'effectue pas cette vérification. Cela supprime une protection contre les attaques par confusion ; privilégiez donc la correction côté serveur
Avant la v2.1.232, Claude Code n'utilisait le runtime v2 que dans le cadre d'un déploiement progressif ou lorsque vous définissiez MCP_SDK_GENERATION=v2.
Refus d'envoyer des identifiants à un endpoint de jeton non HTTPS
Sur le runtime v2, Claude Code n'envoie une requête de jeton OAuth MCP qu'à un endpoint de jeton servi en HTTPS ou sur localhost, 127.0.0.1 ou ::1. Ce message signifie que l'endpoint de jeton du serveur n'est ni l'un ni l'autre ; Claude Code s'est donc arrêté avant d'envoyer la requête. Cela se produit après la connexion par navigateur, de sorte que l'étape du navigateur réussit d'abord, puis à nouveau chaque fois que Claude Code actualise le jeton du serveur.
Dans sa forme complète, le message provient du MCP SDK et cite l'endpoint de jeton qu'il a refusé. Dans le log de débogage, il suit Error during auth completion: pour une connexion ou Token refresh failed: pour une actualisation. Dans votre shell, claude mcp login <name> l'affiche après Couldn't complete authentication for "<name>":, et dans une session, /mcp l'affiche sous le menu du serveur :
Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).
Claude Code considère comme potentiellement secrète une URL de serveur qui comporte une chaîne de requête ou un long segment de chemin d'apparence aléatoire. Pour un tel serveur, il masque les erreurs de connexion levées par le MCP SDK avant de les afficher ou de les journaliser. Cette erreur se présente alors sous la forme d'un nom court susceptible de changer d'une version à l'autre, comme io, suivi de from the MCP SDK for et de l'URL du serveur masquée. Les autres erreurs du MCP SDK prennent la même forme dans ce cas. Le message masqué ne peut correspondre à cette erreur que lorsque l'endpoint de jeton du serveur est en http:// simple sur une adresse autre que localhost, 127.0.0.1 ou ::1.
Que faire :
- Servez cet endpoint de jeton en HTTPS, par exemple en plaçant le serveur derrière un reverse proxy ou un tunnel qui termine TLS et en configurant le serveur pour annoncer l'adresse
https:// - Pour vous connecter sans modifier le serveur, démarrez Claude Code avec
MCP_SDK_GENERATION=v1, dont le runtime n'applique pas cette règle et envoie la requête de jeton en HTTP simple. Ce choix dure jusqu'à ce que vous quittiez et s'applique à tous les serveurs. Le runtime v1 ignore également la vérification de l'émetteur ; privilégiez donc le service de l'endpoint en HTTPS
Identifiants AWS expirés ou non valides
Votre jeton de session AWS a expiré ou a été rejeté. Ce message apparaît lors d'une 401 provenant de Claude Platform on AWS ou de l'endpoint Mantle, qui est la manière dont ces fournisseurs signalent un jeton de sécurité expiré.
L'indication d'action au milieu varie selon votre configuration. La partie stable est le début AWS credentials expired or invalid :
AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...
Avant la v2.1.273, ce message n'apparaissait que lorsque awsAuthRefresh était configuré.
Que faire :
- Si l'indication précise que les identifiants sont gérés par cet environnement, l'application qui a lancé Claude Code détient les identifiants et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur
- Si
awsAuthRefreshest défini, exécutez la commande nommée dans le message, commeaws sso login --profile myprofile, dans un autre terminal et terminez la connexion par navigateur, puis réessayez. Sinon, actualisez vous-même les identifiants AWS que vous utilisez : votre connexion SSO, vos clés d'accès, votre clé API ou votre jeton de proxy - Avec
awsAuthRefreshdéfini dans une session interactive, vous pouvez plutôt exécuter/login, choisir 3rd-party platform, puis sélectionner Claude Platform on AWS · refresh credentials sous Using 3rd-party platforms pour exécuter la même commande sans redémarrer Claude Code. Consultez Configurer les identifiants AWS - Si l'erreur se répète après la réussite de la commande d'actualisation, confirmez que l'identité est valide en dehors de Claude Code avec
aws sts get-caller-identitydans le même shell et le même profil
Échec de l'authentification AWS
Votre fournisseur AWS a renvoyé une 403, ou Amazon Bedrock a renvoyé une 401.
Amazon Bedrock signale un jeton de sécurité expiré par une 403, mais une 403 est aussi sa manière de signaler un refus d'autorisation, comme une AccessDeniedException due à une permission IAM manquante. Claude Code ne peut pas distinguer ces deux causes.
Une 401 provenant d'Amazon Bedrock aboutit également ici plutôt que sous Identifiants AWS expirés ou non valides, car Amazon Bedrock ne signale pas un jeton expiré par une 401. Une 401 provenant de cet endpoint vient généralement d'un autre élément du chemin de la requête, comme un proxy d'entreprise.
Une actualisation des identifiants corrige un jeton expiré mais ne peut pas corriger les autres causes ; le message propose donc les deux :
AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...
L'indication d'action au milieu varie selon votre configuration. La partie stable est le début AWS authentication failed.
Lorsque la 403 est la réponse d'Amazon Bedrock indiquant que vous n'avez pas accès au modèle avec l'identifiant de modèle spécifié, l'indication vous invite plutôt à activer le modèle pour votre compte et votre région dans la console Amazon Bedrock.
Avant la v2.1.273, ce message n'apparaissait que lorsque awsAuthRefresh était configuré.
Que faire :
- Si l'indication précise que les identifiants sont gérés par cet environnement, l'application qui a lancé Claude Code détient les identifiants et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur
- Actualisez vos identifiants AWS au cas où des identifiants expirés seraient en cause : exécutez la commande
awsAuthRefreshnommée dans le message lorsqu'elle est définie, ou actualisez vous-même votre connexion SSO, vos clés d'accès, votre clé API ou votre jeton de proxy - Si vos identifiants sont à jour, vérifiez que les permissions IAM de Configuration IAM sont attachées à l'identité que vous utilisez et que le modèle sélectionné est activé pour votre compte et votre région
- Exécutez
aws sts get-caller-identitypour confirmer quelle identité vos requêtes utilisent
Identifiants Google Cloud expirés ou non valides
Vos identifiants Google Cloud pour Google Cloud's Agent Platform ont expiré ou ont été rejetés : la requête a renvoyé une 401, qui est la manière dont Agent Platform signale l'expiration des identifiants.
L'indication d'action au milieu varie selon votre configuration. La partie stable est le début Google Cloud credentials expired or invalid :
Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...
Que faire :
- Si l'indication précise que les identifiants sont gérés par cet environnement, l'application qui a lancé Claude Code détient les identifiants et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur
- Si vous vous authentifiez avec les identifiants par défaut de l'application, exécutez la commande
gcpAuthRefreshnommée dans le message, ougcloud auth application-default login, et terminez la connexion, puis réessayez - Si vous passez par une passerelle LLM avec
CLAUDE_CODE_SKIP_VERTEX_AUTHdéfini, actualisez le jeton de la passerelle dansANTHROPIC_AUTH_TOKENouANTHROPIC_CUSTOM_HEADERS, puis réessayez - Si vous vous authentifiez avec un fichier de clé de compte de service, vérifiez que
GOOGLE_APPLICATION_CREDENTIALSpointe vers une clé valide. Consultez Configurer les identifiants GCP - Si l'erreur se répète après une actualisation, confirmez que l'identité fonctionne en dehors de Claude Code avec
gcloud auth application-default print-access-tokendans le même shell
Avant la v2.1.273, une 401 provenant d'Agent Platform affichait plutôt le message générique Please run /login ou Failed to authenticate, qui ne permet pas d'actualiser les identifiants Google Cloud.
Échec de l'authentification Google Cloud
Agent Platform de Google Cloud a renvoyé une erreur 403, qu'il utilise pour les refus d'autorisation plutôt que pour les identifiants expirés. En général, il manque une permission IAM à l'identité avec laquelle vous vous authentifiez, ou le modèle n'est pas activé pour votre projet.
L'indication d'action au milieu varie selon votre configuration. La partie stable est le début Google Cloud authentication failed :
Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...
Que faire :
- Si l'indication précise que les identifiants sont gérés par cet environnement, c'est l'application qui a lancé Claude Code qui détient l'identifiant et les autres étapes ci-dessous ne s'appliquent pas : réessayez ou contactez votre administrateur
- Vérifiez que les rôles décrits dans Configuration IAM sont accordés à l'identité avec laquelle vous vous authentifiez
- Vérifiez que le modèle est activé pour votre projet. Consultez Demander l'accès au modèle
Avant la v2.1.273, une erreur 403 d'Agent Platform affichait à la place le message générique Please run /login ou Failed to authenticate, qui ne permet pas d'actualiser les identifiants Google Cloud.
Échec de l'authentification Microsoft Foundry
Microsoft Foundry a renvoyé une erreur 401 ou 403 : l'identifiant Azure de la requête a été rejeté, ou l'identité associée n'a pas accès à la ressource Foundry. /login ne peut pas générer d'identifiants Azure. L'indication d'action au milieu varie selon votre configuration. La partie stable est le début Microsoft Foundry authentication failed :
Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...
Que faire :
- Si l'indication précise que les identifiants sont gérés par cet environnement, c'est l'application qui a lancé Claude Code qui détient l'identifiant et les autres étapes ci-dessous ne s'appliquent pas : réessayez ou contactez votre administrateur
- Actualisez l'identifiant que vous avez configuré dans Configurer les identifiants Azure : renouvelez
ANTHROPIC_FOUNDRY_API_KEY, générez un nouveauANTHROPIC_FOUNDRY_AUTH_TOKEN, ou exécutezaz loginpour que la chaîne d'identifiants Microsoft Entra par défaut puisse se reconnecter - Si l'identifiant est à jour, vérifiez que l'identité a accès à la ressource Foundry. Consultez Configuration Azure RBAC
Avant la v2.1.273, une erreur 401 ou 403 de Microsoft Foundry affichait à la place le message générique Please run /login ou Failed to authenticate, qui ne permet pas d'actualiser les identifiants Azure.
Impossible de charger les identifiants AWS ou Google Cloud
Claude Code n'a pas pu obtenir d'identifiants utilisables à partir de la chaîne de fournisseurs d'identifiants AWS ou de vos identifiants Google par défaut de l'application sur la machine où il s'exécute, si bien qu'aucune requête n'a atteint votre fournisseur cloud. Le détail après le · indique la cause précise, comme une session SSO expirée, des identifiants par défaut de l'application manquants signalés par Could not load the default credentials, ou une connexion révoquée signalée par invalid_grant :
API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.
API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.
En mode non interactif avec -p et dans l'Agent SDK, le code d'erreur structuré est cloud_credential_error. Avant la v2.1.267, le message n'affichait que le texte de détail après API Error:, et le code structuré était server_error ou unknown.
Que faire :
- Exécutez la commande de connexion de votre fournisseur, par exemple
aws sso login --profile myprofileougcloud auth application-default login, puis réessayez. Identifiants Bedrock, Agent Platform ou Foundry non chargés explique comment vérifier les identifiants en dehors de Claude Code - Si le détail indique
AWS default-chain credential resolve timed out, la chaîne s'est bloquée au lieu d'échouer ; suivez plutôt Délai d'expiration de la résolution des identifiants de la chaîne AWS par défaut
Délai d'expiration de la résolution des identifiants de la chaîne AWS par défaut
La chaîne de fournisseurs d'identifiants AWS par défaut n'a pas produit d'identifiants dans un délai de 60 secondes ; Claude Code a donc interrompu la résolution et fait échouer la requête. Ce délai d'expiration est l'une des causes de Impossible de charger les identifiants AWS ou Google Cloud. L'échec concerne la résolution locale des identifiants : la requête n'a jamais atteint Amazon Bedrock, Claude Platform on AWS ni l'endpoint Mantle. Claude Code vide son cache d'identifiants et réessaie avant que cette erreur n'apparaisse ; lorsque vous la voyez, la chaîne s'est donc bloquée lors de plusieurs tentatives.
API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.
Les causes courantes sont une commande credential_process dans votre profil AWS qui attend une saisie qu'elle ne peut pas recevoir, et un conteneur ou une VM dont le service de métadonnées d'instance (IMDS) ne répond jamais à la sonde de la chaîne.
Avant la v2.1.267, le message était API Error: AWS default-chain credential resolve timed out.
Avant la v2.1.207, une chaîne bloquée laissait la requête en attente indéfiniment au lieu d'échouer.
Que faire :
- Exécutez
aws sts get-caller-identitydans le même shell avec le mêmeAWS_PROFILE. Si la commande se bloque également, corrigez le profil ; une commandecredential_processqui demande une saisie interactive en est une cause fréquente. - Effectuez l'étape de connexion avant de démarrer Claude Code, par exemple
aws sso login --profile myprofile - Si votre chaîne exécute une connexion interactive qui nécessite légitimement plus de 60 secondes, comme une connexion SSO avec MFA via un wrapper tel que
aws-vault, augmentez la limite en millisecondes avecCLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS
Délai d'attente d'AWS expiré lors de la vérification de la configuration Bedrock
Un appel à AWS lors de la vérification des identifiants de l'assistant de configuration Bedrock, comme la recherche d'identifiants ou la vérification d'identité, ne s'est pas terminé dans la limite de 60 secondes. L'assistant cesse d'attendre et fait échouer l'étape de vérification :
Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.
Le nombre reflète votre limite : 60 secondes par défaut, ou la valeur que vous avez définie dans CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.
Les causes courantes sont un réseau ou un proxy qui bloque les requêtes vers AWS, y compris l'actualisation du jeton SSO, et un assistant d'identifiants qui attend encore une saisie que vous ne voyez pas. N'augmentez la limite que lorsque l'assistant a légitimement besoin de plus de temps.
Une seule requête bloquée vers AWS peut également échouer en raison de son propre délai d'expiration par requête, ce qui affiche un message plus court à la même étape :
A request to AWS timed out. Check your network and proxy settings, then try again.
Lorsque les mêmes délais d'expiration surviennent à l'étape d'épinglage du modèle, l'assistant marque un modèle comme unreachable au lieu d'afficher l'un ou l'autre message.
Que faire :
- Exécutez
aws sts get-caller-identitydans le même shell. Si la commande se bloque également, le blocage se situe en dehors de Claude Code, dans votre réseau, votre proxy ou l'assistant d'identifiants de votre profil AWS ; corrigez d'abord ce problème. - Effectuez toute connexion interactive avant d'ouvrir l'assistant, par exemple
aws sso login --profile myprofile - Si un assistant d'identifiants de votre profil AWS a légitimement besoin de plus de 60 secondes pour vous demander une saisie, augmentez la limite en millisecondes avec
CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS
Session de passerelle cloud expirée
Vous vous êtes connecté via une passerelle Claude apps, et la session de passerelle enregistrée sur cette machine a expiré et n'a pas pu être renouvelée, ou la passerelle ne l'accepte plus, par exemple après le remplacement du secret JWT de la passerelle. Si cette ligne apparaît lorsque vous démarrez claude en mode interactif, la session s'est ouverte déconnectée de la passerelle :
Cloud gateway session expired — run /login to reconnect.
La même ligne peut apparaître en cours de session lorsque l'identifiant de la passerelle expire et que Claude Code ne parvient pas à le renouveler.
Lors d'une exécution non interactive, d'une session en arrière-plan ou autrement sans surveillance, ou d'une sous-commande claude autre que claude auth, Claude Code se ferme plutôt avec ce message lorsque la passerelle n'accepte plus la session :
Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.
Que faire :
- Exécutez
/logindans la session et terminez la connexion dans le navigateur - Pour un lancement non interactif, démarrez
claudedans le même environnement, exécutez/login, puis relancez votre commande
Délai de connexion expiré en attendant votre confirmation
Lors d'une connexion via une passerelle Claude apps, la passerelle a indiqué le compte qui s'est connecté, et Claude Code vous a demandé de le confirmer avant d'enregistrer l'identifiant. Vous avez laissé la confirmation ouverte au-delà de l'expiration propre à la connexion, et la passerelle n'a émis aucun jeton d'actualisation permettant de la renouveler ; Claude Code n'a donc rien enregistré lorsque vous avez continué :
Sign-in timed out while waiting for you to continue. Try again.
Que faire :
- Exécutez de nouveau
/loginet confirmez le compte avant l'expiration de la connexion
La passerelle a refusé la requête
Vous êtes connecté via une passerelle Claude apps, et une requête a renvoyé une erreur 403 : la passerelle, ou le service en amont derrière elle, l'a refusée. Se reconnecter ne change rien à un refus ; le message vous oriente donc vers l'administrateur de votre passerelle :
Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...
Que faire :
- Demandez à l'administrateur de votre passerelle d'examiner la requête. La fin du message
API Error:contient le refus renvoyé par la passerelle - Pour les administrateurs : une règle de contrôle d'accès sur la passerelle renvoie une erreur 403 que le log d'audit consigne avec sa raison, et un refus d'autorisation du service en amont est transmis conformément à Messages d'erreur en amont
Avant la v2.1.273, une erreur 403 sur une session de passerelle affichait à la place le message générique Please run /login ou Failed to authenticate, et se reconnecter ne levait pas le refus.
Erreurs de réseau et de connexion
La plupart de ces erreurs signifient qu'une requête réseau de Claude Code n'a pas pu atteindre sa destination, ou que quelque chose entre Claude Code et l'API a modifié la réponse en chemin ; lorsqu'une entrée a également une cause locale, comme une écriture d'archive échouée, son corps l'indique. Elles proviennent généralement de votre réseau local, proxy ou pare-feu, ou de la politique réseau de l'environnement cloud.
Unable to connect to API
La connexion TCP à l'API a échoué ou ne s'est jamais complétée. Pour les codes d'erreur de connexion courants, le message nomme le type d'échec et conserve le code entre parenthèses :
Unable to connect to API. Check your internet connection
Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)
Can't reach the API server — check your internet or DNS (ENOTFOUND)
No internet route — check your connection or VPN (EHOSTUNREACH)
Couldn't connect through your proxy (ERR_PROXY_TUNNEL) — the proxy refused the tunnel: check its credentials and that it allows this host
Connection dropped (ECONNRESET)
Request timed out. Check your internet connection and proxy settings
Un code que Claude Code ne reconnaît pas apparaît comme Unable to connect to API suivi du code entre parenthèses. Certains de ces messages peuvent afficher plus d'un code : Connection refused peut afficher ConnectionRefused ou ECONNREFUSED, par exemple, et Can't reach the API server peut afficher ENOTFOUND ou FailedToOpenSocket.
Avant la v2.1.227, chacun de ces messages codés lisait Unable to connect to API suivi du code, par exemple Unable to connect to API (ECONNREFUSED).
Les causes courantes incluent l'absence d'accès à Internet, un VPN qui bloque api.anthropic.com, ou un proxy d'entreprise requis qui n'est pas configuré.
À faire :
- Confirmez que vous pouvez atteindre l'hôte API à partir du même shell en exécutant
curl -I https://api.anthropic.com. Sur Windows PowerShell, utilisezcurl.exe -I https://api.anthropic.compour que l'aliasInvoke-WebRequestintégré ne soit pas utilisé. - Si vous êtes derrière un proxy d'entreprise, définissez
HTTPS_PROXYavant de lancer Claude Code et consultez Configuration réseau - Si vous routez via une passerelle LLM ou un relais, définissez
ANTHROPIC_BASE_URLsur son adresse. Consultez Connecter Claude Code à une passerelle LLM pour la configuration. - Si
ANTHROPIC_BASE_URLpointe déjà vers votre passerelle et que chaque requête se termine parConnection dropped, vérifiez si votre passerelle rejette les champs de recherche d'outils que Claude Code envoie par défaut. Pour le vérifier, définissezENABLE_TOOL_SEARCH=falsecomme le décrit Recherche d'outils via une passerelle LLM, puis réessayez. Avant la v2.1.304, la recherche d'outils était désactivée derrière une passerelle, sauf si vous l'activiez avecENABLE_TOOL_SEARCH. - Assurez-vous que votre pare-feu autorise les hôtes listés dans Exigences d'accès réseau
- Les défaillances intermittentes sont automatiquement réessayées
Si curl réussit mais que Claude Code échoue toujours, la cause est généralement quelque chose entre le runtime et le réseau plutôt que le réseau lui-même :
- Vérifiez si
ANTHROPIC_BASE_URLest défini en exécutantecho $ANTHROPIC_BASE_URL, ouecho $env:ANTHROPIC_BASE_URLdans PowerShell, et cherchez-le dans le blocenvde vos fichiers de paramètres. Lorsqu'il est défini, Claude Code envoie les requêtes de modèle à cette adresse au lieu deapi.anthropic.com, donc une valeur résiduelle pointant vers un proxy local ou une passerelle qui ne fonctionne plus produitConnection refusedmême sicurlatteint l'API. Supprimez-le de votre profil shell ou de vos paramètres et démarrez Claude Code à partir d'un nouveau terminal. - Sur Linux et WSL, vérifiez
/etc/resolv.confpour un serveur de noms inaccessible. WSL en particulier peut hériter d'un résolveur cassé de l'hôte. - Sur macOS, un client VPN qui a été déconnecté ou désinstallé peut laisser une interface de tunnel ou une règle de routage. Vérifiez
ifconfigpour les interfacesutunobsolètes et supprimez l'extension réseau du VPN dans les Paramètres système. - Docker Desktop et les runtimes de conteneurs similaires peuvent intercepter le trafic sortant. Quittez-les et réessayez pour exclure cette possibilité.
Unable to connect to Anthropic services
Lors de la configuration initiale, Claude Code vérifie qu'il peut atteindre api.anthropic.com et platform.claude.com avant d'afficher l'étape de connexion. Lorsque l'une des vérifications échoue, Claude Code imprime la raison et se ferme.
Unable to connect to Anthropic services
Failed to connect to api.anthropic.com: ECONNREFUSED
Connection to api.anthropic.com timed out after 10 seconds
A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above.
Claude Code envoie la vérification via la même configuration proxy que les requêtes API et donne à chaque sonde 10 secondes. Lorsque la sonde échouée a traversé un proxy, le message nomme la variable d'environnement qui l'a configurée, comme HTTPS_PROXY. Avant la v2.1.222, la vérification utilisait un transport proxy différent sans délai d'expiration : derrière une URL proxy avec le schéma https://, elle pouvait se bloquer sur Checking connectivity... indéfiniment puis échouer même si les requêtes API via le même proxy réussissent.
Claude Code ignore cette vérification lorsqu'un fichier de paramètres gérés, une politique MDM ou un assistant de politique définit forceLoginMethod sur "gateway", ou définit forceLoginGatewayUrl sans forceLoginMethod. Avec l'une ou l'autre configuration, Claude Code ouvre l'étape de connexion sur l'écran Cloud gateway plutôt qu'une méthode de connexion Anthropic. Claude Code ignore également la vérification lorsqu'une source de paramètres gérés sur la machine existe mais ne peut pas être lue, car cette source peut contenir la configuration de la passerelle. Avant la v2.1.247, Claude Code exécutait la vérification sous cette configuration aussi, et se fermait avec cette erreur lorsque les endpoints d'Anthropic étaient inaccessibles.
Claude Code ignore également la vérification sur une machine sans paramètres gérés lorsque votre propre ~/.claude/settings.json nomme une passerelle avec forceLoginMethod et forceLoginGatewayUrl. Avant la v2.1.295, Claude Code exécutait la vérification dans ce cas.
À faire :
- Si le message nomme une variable proxy, vérifiez que sa valeur pointe vers le bon proxy et demandez à votre équipe réseau d'autoriser les connexions HTTPS via celui-ci vers l'hôte du message. Consultez Configuration réseau.
- Parcourez les vérifications dans Impossible de se connecter à l'API. Le test
curlet les conseils de pare-feu là s'appliquent à cette vérification aussi. - Si votre réseau est ouvert et l'échec persiste, Claude Code peut ne pas être disponible dans votre pays
Socket is closed
Socket is closed signifie que la connexion transportant une réponse en streaming a été fermée alors que la réponse arrivait toujours. La cause la plus courante est un proxy d'entreprise sur Windows qui abandonne un tunnel établi au milieu de la réponse.
Selon la progression de la réponse, Claude Code réessaye la requête, conserve ce que Claude a produit, ou termine le tour. Consultez Nouvelles tentatives automatiques.
Avant la v2.1.214, Claude Code ne réessayait pas cet échec, et le tour s'arrêtait avec une erreur contenant Socket is closed.
À faire :
- Si vous voyez cette erreur, mettez à jour vers v2.1.214 ou ultérieur avec
claude update, puis renvoyez votre message - Si les tours continuent d'échouer derrière le même proxy après la mise à jour, parcourez Impossible de se connecter à l'API et vérifiez la configuration du proxy dans Configuration réseau
API returned an empty or malformed response
Claude Code affiche cette erreur lorsque sa nouvelle tentative sans streaming d'une requête en streaming échouée obtient un statut HTTP de succès mais le corps n'est pas un message API Claude : généralement une erreur HTML ou une page de connexion, un corps vide, ou du JSON dans un autre format. Un proxy, une passerelle ou une page de connexion réseau répondant à la place de l'API est la source habituelle. Claude Code ne réessaye pas la requête, et le tour se termine avec cette erreur.
API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.
Après cette ouverture, le message rapporte ce qui est revenu et quelle requête a échoué :
- Une clause
Response:avec le type de contenu, le type de corps, commebody is an HTML pageouempty body, sa taille en octets, et si la réponse portait un id de requête Anthropic. Lorsque la réponse nomme un serveur reconnaissable, commenginxoucloudflare, ou porte des en-têtes intermédiaires, commecf-rayouvia, la clause les liste aussi. - Une phrase nommant l'id de la requête en streaming échouée et l'échec qui a déclenché la nouvelle tentative. Lorsqu'un flux s'était ouvert avant l'échec, il rapporte également combien d'événements de flux sont arrivés et, s'il y en avait, combien de temps le flux avait été silencieux lorsque la tentative a échoué.
Avant la v2.1.234, le message se terminait après intercepting the request.
Avant la v2.1.271, une réponse qui portait un message API valide sous un type de contenu non-JSON comme text/plain terminait également le tour avec cette erreur. Certaines passerelles LLM utilisent ce type de contenu pour la réponse sans streaming.
À faire :
- Lisez la clause
Response:pour voir quel système a répondu. Un corps HTML, pas d'id de requête Anthropic, ou un serveur nommé commenginxoucloudflaresignifie que quelque chose entre Claude Code et l'API a répondu à sa place - Si vous routez via une passerelle LLM, testez la route avec une requête directe et corrigez le saut qui retourne la réponse non-API
- Sur un réseau avec une page de connexion, comme le Wi-Fi invité, complétez la connexion dans un navigateur, puis réessayez
- Si seule la route sans streaming via votre passerelle est cassée, définissez
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1pour désactiver cette solution de repli, sauf lorsque l'endpoint en streaming lui-même retourne404, où Claude Code bascule toujours sur celle-ci
Streaming response ended before any complete data was received
Une réponse en streaming de votre fournisseur de modèle s'est complétée sans livrer de données utilisables, donc Claude Code a renvoyé la requête sans streaming pour terminer le tour. Claude Code affiche l'avertissement une fois par session, dans les sessions interactives uniquement. Avant la v2.1.239, Claude Code réessayait silencieusement sans streaming.
Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.
Claude Code envoie chaque requête affectée deux fois : la tentative en streaming vide et la nouvelle tentative. La cause habituelle est un proxy ou une passerelle qui consomme ou transforme le corps de la réponse en streaming en chemin.
À faire :
- Configurez tout proxy ou passerelle entre Claude Code et votre fournisseur de modèle pour passer les corps de réponse en streaming et leurs en-têtes sans modification
- Sur Amazon Bedrock, consultez Erreurs de streaming derrière une passerelle ou un proxy pour les exigences d'en-tête et de corps
La réponse en streaming Bedrock a un content-type inattendu
Une passerelle ou un proxy entre Claude Code et Amazon Bedrock transforme le corps de la réponse en streaming ou son en-tête Content-Type. Amazon Bedrock diffuse les réponses en tant que application/vnd.amazon.eventstream. Plutôt que de décoder un corps qu'il ne peut pas lire, Claude Code rejette une réponse en streaming réussie qui rapporte un content-type différent. Claude Code ne réessaye pas la requête.
Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed through unmodified. Set CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 to suppress this check while the gateway is being fixed.
Avant la v2.1.208, la même mauvaise configuration s'affichait comme API Error: Truncated event message received après que la réponse entière ait été mise en mémoire tampon.
À faire :
- Configurez la passerelle pour passer le corps de la réponse
InvokeModelWithResponseStreamet son en-têteContent-Typesans modification. Un intermédiaire qui réemet le flux en tant qu'événements envoyés par le serveur est une cause courante. - Définir
CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1masque cette erreur, mais Claude Code ne décode pas un corps binaire sous un en-tête réécrit, donc ces requêtes se rabattent sur un chemin plus lent sans streaming. Consultez Erreurs de streaming derrière une passerelle ou un proxy.
Erreurs de certificat SSL
Un proxy ou un appareil de sécurité sur votre réseau intercepte le trafic TLS avec son propre certificat, et Claude Code ne lui fait pas confiance.
Unable to connect to API: SSL certificate verification failed (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config
Unable to connect to API: Self-signed certificate detected (SELF_SIGNED_CERT_IN_CHAIN). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config
Avant la v2.1.273, les deux messages se terminaient à Check your proxy or corporate SSL certificates, sans le code OpenSSL ou l'indice NODE_EXTRA_CA_CERTS.
À partir de la v2.1.199, une défaillance de validation de certificat n'est pas réessayée, donc cette erreur apparaît à la première tentative au lieu d'après le budget de nouvelles tentatives complet. Les versions antérieures passaient quelques minutes à réessayer avant de l'afficher. Les conditions TLS transitoires, comme un délai d'expiration de poignée de main, sont toujours réessayées.
Pendant /login et la vérification de connectivité au démarrage, la même défaillance produit un message différent :
SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.
Sur Amazon Bedrock, les requêtes que Claude Code lui-même envoie à AWS, comme les appels d'identifiants de rôle STS et SSO, la découverte de modèle, et les vérifications de l'assistant de configuration, dépendent de la même configuration de certificat. Consultez Erreurs de certificat derrière un proxy qui inspecte TLS.
À faire :
- Exportez le bundle CA de votre organisation et pointez Claude Code vers celui-ci avec
NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem - Consultez Configuration réseau pour les instructions de configuration complètes
- Ne définissez pas
NODE_TLS_REJECT_UNAUTHORIZED=0, qui désactive entièrement la validation de certificat
L'hôte n'est pas autorisé dans une session cloud
Une requête HTTP sortante d'une session cloud ou d'une tâche planifiée cloud a été bloquée par la politique réseau de l'environnement.
HTTP 403
x-deny-reason: host_not_allowed
Vous pouvez également voir un certificat TLS qui ne correspond pas au certificat réel de la destination. Les sessions cloud routent le trafic sortant via un proxy qui applique la politique réseau, donc un certificat non-correspondant signifie que le proxy a terminé la connexion, pas la destination.
Cette erreur n'est pas un problème réseau côté client. Les sessions cloud et les tâches planifiées cloud s'exécutent à l'intérieur d'une VM en sandbox dont le trafic sortant via le réseau de la session est filtré selon la liste d'autorisation de l'environnement cloud :
- Trafic GitHub et des connecteurs : les opérations GitHub et le trafic des connecteurs MCP utilisent des canaux séparés, c'est pourquoi ils peuvent continuer à fonctionner tandis que d'autres hôtes sont bloqués
- Environnement par défaut : l'environnement Default utilise l'accès Trusted, qui permet la liste d'autorisation par défaut des registres de paquets, des API de fournisseurs cloud, des registres de conteneurs et des domaines de développement courants et bloque les autres domaines sur ce chemin
À faire :
Ces étapes modifient l'un de vos propres environnements. Un environnement partagé par l'organisation s'ouvre en lecture seule dans le sélecteur, donc demandez à un propriétaire de modifier son accès réseau à partir de la page Cloud environments dans les paramètres d'administration.
- Ouvrez votre environnement pour l'édition, soit à partir du formulaire de la tâche planifiée cloud, soit à partir du sélecteur d'environnement où vous démarrez les sessions cloud.
- Dans la boîte de dialogue Edit cloud environment, changez Network access de Trusted à Custom, puis ajoutez le domaine bloqué à Allowed domains. Entrez un domaine par ligne. Cochez Also include default list of common package managers pour conserver la liste d'autorisation par défaut aux côtés de vos domaines personnalisés. Sélectionnez Full à la place si vous voulez un accès sans restriction.
- Cliquez sur Save changes. La prochaine exécution utilise la liste d'autorisation mise à jour. Pour une session cloud qui est déjà ouverte, consultez quand une modification d'accès réseau atteint les sessions existantes.
Consultez Accès réseau pour les niveaux d'accès et la liste d'autorisation par défaut. Les sessions CLI locales ne sont pas affectées par cette politique.
Le proxy a refusé la connexion
Vous voyez ce message lorsque Claude lit un artefact via le proxy que vous avez défini dans HTTPS_PROXY ou une variable proxy associée. Le contenu des artefacts provient de *.frame.claudeusercontent.com, donc Claude Code envoie d'abord au proxy une requête CONNECT lui demandant d'ouvrir un tunnel vers cet hôte. Lorsque le proxy refuse, rien n'atteint l'hôte, et le message porte le statut HTTP du proxy :
artifact content fetch failed (proxy refused the connection: HTTP 407)
artifact content fetch failed (proxy refused the connection: HTTP 403)
the proxy refused the connection to the artifact's content host (HTTP 502)
Le statut est la réponse du proxy au CONNECT. L'hôte n'a jamais répondu, donc chaque statut pointe vers un correctif différent :
HTTP 407: le proxy nécessite des identifiants qu'il n'a pas reçus. Mettez-les dans l'URL du proxy, comme le montre Authentification basique.HTTP 403: le proxy refuse de tunneler vers*.frame.claudeusercontent.com. Demandez à celui qui gère le proxy d'autoriser cet hôte, que liste Exigences d'accès réseau.- Tout autre statut, comme
HTTP 502: le proxy n'a pas ouvert le tunnel pour sa propre raison, comme l'échec à atteindre l'hôte. Recherchez le statut dans les logs du proxy. unreadable replyà la place d'un statut : tout ce qui se trouve à l'adresse du proxy n'a pas répondu avec une ligne de statut HTTP. Vérifiez que l'adresse est un proxy HTTP.
À faire :
- Vérifiez l'adresse et les identifiants dans la variable proxy, comme le décrit Configuration du proxy, puis exécutez
curl -x http://proxy.example.com:8080 -I https://api.anthropic.comà partir du shell dans lequel vous démarrez Claude Code, en utilisant votre propre URL de proxy. Sur Windows PowerShell, exécutezcurl.exe. Si cette sonde échoue de la même manière, corrigez d'abord la configuration du proxy. Si elle réussit, le refus est spécifique à l'hôte des artefacts. - Si votre réseau permet à Claude Code d'atteindre l'hôte des artefacts directement, ajoutez
.frame.claudeusercontent.comàNO_PROXY. Gardez l'entrée étroite : une entrée.claudeusercontent.complus large contourne également le proxy pourbridge.claudeusercontent.com, que les organisations avec IP allowlisting doivent garder sur le proxy.
Avant la v2.1.238, Claude Code rapportait un tunnel refusé comme une erreur réseau générique.
Le service des environnements cloud a retourné une réponse vide ou inattendue
Claude Code demande votre liste d'environnements cloud à plusieurs points, comme lorsque vous créez une session cloud à partir de la CLI ou exécutez /remote-env. Lorsqu'il ne peut pas lire la réponse du serveur, il affiche l'un de ces messages :
The cloud environments service returned an empty response (HTTP 200 with no body). This is usually temporary — try again in a moment.
The cloud environments service returned a response in an unexpected format (HTTP 200 with a non-JSON body). This is usually temporary — try again in a moment.
The cloud environments service returned a response in an unexpected format (HTTP 200 without a usable environments list). This is usually temporary — try again in a moment.
Le serveur a accepté la requête mais a répondu avec un corps qui n'est pas la liste des environnements : vide, pas JSON, ou JSON sans la liste. Cela accompagne généralement une perturbation côté service et s'efface de lui-même. Selon la surface qui a demandé la liste, Claude Code peut ajouter un préfixe, comme couldn't list environments: dans la boîte de dialogue /remote-env.
À faire :
- Réessayez l'action. Claude Code demande la liste à nouveau chaque fois
- Si le message continue d'apparaître, vérifiez status.claude.com pour les incidents actifs
Avant la v2.1.236, Claude Code affichait une TypeError JavaScript brute au lieu de ces messages.
Failed to fetch session from Sessions API
Ce message signifie que Claude Code a trouvé la session cloud que vous avez demandé de récupérer dans votre terminal mais n'a pas pu lire son historique de conversation depuis les serveurs d'Anthropic, et ne l'a donc pas ouverte :
Failed to fetch session from Sessions API: Failed to fetch session logs
Vous le voyez après claude --teleport, /teleport, ou après avoir choisi la session dans la liste /tasks. claude --teleport <session-id> l'affiche et se ferme avec le code 1.
À faire :
- Exécutez à nouveau le même teleport. S'il échoue de la même manière, signalez le problème
Avant la v2.1.296, Claude Code ne réessayait pas une lecture échouée, et après un tel échec il pouvait ouvrir la session avec une conversation vide et signaler un succès au lieu d'afficher ce message.
Couldn't reconnect to your Remote Control session
Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume.
La reprise avec claude --resume ou claude --continue se reconnecte à la session Remote Control enregistrée dans cette conversation. Ce message signifie que la reconnexion a échoué pour une raison qui peut être temporaire, comme une interruption réseau ou une erreur serveur, donc Claude Code ne peut pas confirmer si la session distante existe toujours. Votre session locale continue de s'exécuter sans Remote Control.
À faire :
- Exécutez
/remote-controlpour réessayer la connexion - Démarrez une nouvelle session avec
claude --remote-controlpour créer une nouvelle session Remote Control - Pour les autres messages de démarrage Remote Control, consultez Troubleshoot Remote Control
Si le serveur rapporte à la place que la session précédente est partie, vous ne voyez pas ce message. Claude Code démarre une nouvelle session à sa place ou affiche Previous session is unavailable — run /remote-control to start a new one.
Les sessions se sont terminées alors que cette machine était hors ligne
Claude Code affiche ce message dans le terminal exécutant claude remote-control après que votre machine ait été hors ligne assez longtemps pour que le serveur nettoie l'environnement Remote Control que votre machine servait. Les sessions dans cet environnement se sont terminées, et vous ne pouvez pas les reprendre. Le nombre est le nombre de sessions qui se sont terminées.
2 sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.
À faire :
- Lorsque Claude Code liste les worktrees conservés sous ce message, récupérez tout travail non validé à partir d'eux
- Exécutez
claude remote-controlpour démarrer un environnement frais
Couldn't share the transcript
Après que vous ayez accepté de partager votre transcription de session à partir d'une invite d'enquête, comme l'enquête de qualité de session, Claude Code la télécharge vers Anthropic, ou enregistre une archive locale à la place sur les fournisseurs tiers, sur les sessions de passerelle d'applications Claude, et lorsqu'aucun identifiant Anthropic n'est disponible. Ce message signifie que le partage ne s'est pas complété.
Couldn't share the transcript.
Le téléchargement doit tenir dans une limite de 8 MiB. Sur une longue session, Claude Code supprime progressivement des parties du partage, les paramètres du modèle de la dernière requête d'abord, puis la conversation structurée et les transcriptions des sous-agents, et affiche ce message lorsqu'aucune version réduite ne peut être envoyée ou qu'une erreur réseau ou serveur arrête le téléchargement. Lorsque Claude Code enregistre une archive locale à la place, le message signifie qu'il n'a pas pu écrire l'archive.
À faire :
- Exécutez
/feedbackpour envoyer la transcription avec une description de ce qui s'est passé. Consultez Signaler une erreur si/feedbackn'est pas disponible dans votre environnement - Si d'autres requêtes échouent aussi, vérifiez votre connexion réseau et consultez Impossible de se connecter à l'API
Couldn't send feedback
Un message commençant par Couldn't send feedback signifie que le service de commentaires n'a pas confirmé le rapport que vous avez soumis à partir de la boîte de dialogue /feedback, /bug ou /share, ou un brouillon de commentaires en file d'attente. Considérez-le comme non reçu. Lorsqu'une phrase concernant votre organisation suit les deux-points, votre organisation refuse les commentaires et le même rapport obtiendra la même réponse.
Le second de ces deux exemples est un refus de l'organisation :
Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.
Couldn't send feedback: Feedback has not been enabled for your organization. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.
À faire :
- Non connecté : le message continue par
: not signed in. Run /login, then retry.Exécutez/login, puis envoyez à nouveau - Refus de votre organisation : par exemple
: Feedback has not been enabled for your organization.ou: Feedback collection is not available for organizations with custom data retention policies.Si le message ajouteTo report a bug, open an issue, faites-le sur github.com/anthropics/claude-code/issues. Un brouillon en file d'attente y reste, et vous pouvez le supprimer - Identifiants refusés : le message continue par
: the sign-in this session uses is not allowed to send feedbackou: the server did not accept the credentials this session uses. Exécutez/statusà l'invite de Claude Code pour voir quelle connexion, quel jeton ou quelle clé API cette session envoie (request timed out)ou(couldn't reach the service)juste aprèsCouldn't send feedback: envoyez à nouveau le rapport ou le brouillon en file d'attente. La boîte de dialogue conserve votre texte, et le message d'un brouillon en file d'attente indiqueThe draft is still queued.Si d'autres requêtes échouent aussi, vérifiez votre connexion réseau et consultez Impossible de se connecter à l'API. Si cela continue d'échouer, déposez le rapport sur github.com/anthropics/claude-code/issues(server returned <status>), ou aucune raison, juste aprèsCouldn't send feedback: le statut est le code de réponse du service. Le message propre du service le suit lorsqu'il en a envoyé un, comme dans(server returned 403: Access Forbidden). Si cela continue d'échouer, déposez le rapport sur github.com/anthropics/claude-code/issues
Les issues sur github.com/anthropics/claude-code sont publiques, donc omettez le code, les transcriptions et tout autre élément confidentiel lorsque vous en ouvrez une.
Avant la v2.1.281, chaque envoi échouait avec ce message une fois qu'un Stop Remote Control ou un message urgent entre sessions était arrivé alors que la boîte de dialogue était ouverte. Sur ces versions, fermez la boîte de dialogue, rouvrez-la, et envoyez à nouveau.
Feedback payload too large
Ce message dans l'écran de révision d'un brouillon de commentaires signifie que Claude Code n'a aucune confirmation que le service a accepté le brouillon. Considérez-le comme non reçu. Le brouillon reste dans votre file d'attente /feedback, vous pouvez donc l'envoyer à nouveau.
Feedback payload too large. Try again without the transcript, or shorten the details.
À faire :
- Dans l'écran de révision, définissez Send transcript sur
no, puis envoyez à nouveau le brouillon. Raccourcir les détails supprime au plus 10 Ko de texte, soit tout ce que les détails d'un brouillon peuvent contenir.
Connexion au serveur MCP expirée pendant une mise en veille ou un changement d'horloge
Ce message signifie qu'une connexion à un serveur MCP a expiré, et que Claude Code a constaté que l'horloge de votre système a avancé brusquement pendant la tentative :
MCP server "<name>" connection timed out. Your computer went to sleep or its clock changed while connecting.
Claude Code ne peut pas déterminer si votre ordinateur s'est mis en veille ou si son horloge a été avancée, c'est pourquoi le message mentionne les deux.
À faire :
Connectez-vous à nouveau au serveur et maintenez votre ordinateur éveillé jusqu'à la fin de la tentative. Si le serveur se connecte, vous n'avez rien à corriger.
- Dans une session interactive : exécutez
/mcp, sélectionnez le serveur, puis sélectionnez Reconnect - Dans votre shell : exécutez à nouveau la commande
claude -p,claude mcp listouclaude mcp get. Si le serveur échoue ensuite avec un message commençant parSkipping connection (recent failure cached, attendez 15 minutes et exécutez à nouveau la commande. - Dans une application Agent SDK : appelez
reconnectMcpServer()en TypeScript ouClaudeSDKClient.reconnect_mcp_server()en Python - Si le serveur échoue à nouveau : si le message diffère de celui-ci, consultez ce qu'il faut vérifier lorsqu'un serveur MCP ne se connecte pas. Si ce message revient alors que votre ordinateur est resté éveillé et que rien n'a modifié son horloge, consultez Signaler une erreur.
Avant la v2.1.307, Claude Code affichait un message d'expiration tel que MCP server "<name>" connection timed out after <N>ms au lieu de celui-ci.
Erreurs de requête
Ces erreurs concernent le contenu de votre requête. La plupart sont renvoyées par l'API après qu'elle a rejeté la requête ; quelques-unes sont produites localement par Claude Code avant l'envoi de toute requête.
Prompt is too long
La conversation et les fichiers joints dépassent la fenêtre de contexte du modèle.
Prompt is too long
Dans une session interactive, Claude Code affiche cette erreur ainsi :
Context limit reached · /compact or /clear to continue
La ligne ne mentionne que /clear lorsque DISABLE_COMPACT est défini. Les formes plus longues de l'erreur, comme la forme d'échec de compaction ci-dessous, conservent la formulation Prompt is too long ·. Dans la sortie -p et dans la transcription, le texte reste Prompt is too long.
Lorsque vous avez désactivé la compaction automatique dans vos paramètres utilisateur, la ligne l'indique également :
Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on
Le bouton Auto-compact de /config écrit autoCompactEnabled dans les paramètres utilisateur. L'indication n'apparaît que lorsqu'une modification dans /config prendrait effet. Par exemple, elle n'apparaît pas lorsque DISABLE_AUTO_COMPACT ou DISABLE_COMPACT a désactivé la compaction automatique. Elle n'apparaît pas non plus lorsqu'une portée de priorité supérieure, comme les paramètres de projet ou les paramètres gérés, a défini autoCompactEnabled sur false. Avant la v2.1.235, la ligne ne contenait aucune indication sur la compaction automatique.
Amazon Bedrock signale cette condition sous la forme Input is too long for requested model., que Claude Code traite de la même manière. Avant la v2.1.217, Claude Code ne reconnaissait pas la formulation de Bedrock : la compaction automatique ne se déclenchait donc jamais dessus et /compact échouait avec la même erreur.
Une passerelle d'applications Claude signale cette condition sous la forme capability_rejected: prompt_too_long lorsqu'un fournisseur cloud en amont rejette la requête dans le format d'erreur propre au fournisseur. Claude Code traite ce jeton de la même manière que Prompt is too long. Avant la v2.1.228, Claude Code ne reconnaissait pas ce jeton : la compaction automatique ne se déclenchait donc pas dessus.
Lorsque la compaction automatique s'est exécutée sur ce tour et a échoué sur une erreur sous-jacente, comme un modèle indisponible ou un échec d'authentification, le message nomme cette erreur après un séparateur :
Prompt is too long · automatic compaction failed: <the underlying error>
Résolvez d'abord l'erreur nommée ; /compact échoue sur la même erreur tant que vous ne l'avez pas fait. Avant la v2.1.229, un échec de compaction automatique affichait Prompt is too long sans la cause.
Lorsque la compaction automatique s'exécute sur cette erreur, elle résume normalement vos échanges les plus anciens et conserve les plus récents. En dernier recours, Claude Code résume différemment :
- Lorsqu'il ne peut résumer aucun échange complet, Claude Code conserve votre prompt le plus récent mot pour mot et résume tout ce qui le précède.
- Dans ce cas, lorsque la conversation ne se termine pas par votre prompt, Claude Code résume plutôt l'ensemble de la conversation.
Claude Code ignore cette récupération lorsque le contenu qu'il conserverait ne contient aucune réponse du modèle et moins d'environ 1 000 tokens de votre propre texte, comme une courte nouvelle tentative envoyée après un collage trop volumineux. Exécutez /clear pour repartir de zéro. Avant la v2.1.269, la compaction échouait chaque fois qu'elle ne pouvait pas résumer un échange complet, de sorte qu'une session dans cet état rencontrait à nouveau cette erreur à chaque tour.
Une conversation à échange unique n'a pas de tours antérieurs à résumer. Lorsque la compaction automatique aurait dû s'exécuter sur une telle conversation, Claude Code ignore la tentative et explique plutôt ce qui remplit la requête. Lorsque l'API ne signale pas le nombre de tokens dans son erreur, le message est le suivant :
Prompt is too long · this conversation is a single exchange and cannot be compacted — the request size comes mostly from system prompt, tool definitions, or attachments.
Lorsque l'API signale le nombre de tokens dans son erreur, Claude Code le compare à sa propre estimation de la taille de la conversation pour déterminer ce qui constitue l'essentiel de la requête : le contenu propre de la conversation, ou le prompt système, les définitions d'outils et le contenu des pièces jointes que Claude Code envoie avec elle. Lorsque le contenu propre de la conversation constitue l'essentiel de la requête, le message est le suivant :
Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) and this conversation's own content is most of it. A single-exchange conversation cannot be compacted; start with less content (smaller files or pasted text).
Lorsque l'essentiel de la requête se trouve en dehors de la conversation, le message est le suivant :
Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) but this conversation is only ~<conversation tokens> tokens — the rest is system prompt, tool definitions, and attachment content. A single-exchange conversation cannot be compacted; reduce attached files/tools or start with less context.
Avant la v2.1.162, Claude Code tentait tout de même la compaction et affichait simplement Prompt is too long en cas d'échec.
Que faire :
- Exécutez
/compactpour résumer les tours précédents et libérer de l'espace, ou/clearpour repartir de zéro. Si/compactrépondNot enough messages to compact., la conversation est un échange unique sans rien d'antérieur à résumer : l'espace est donc occupé par ce seul prompt et par ce que Claude Code envoie avec chaque requête. Exécutez/clearet renvoyez avec moins de texte collé ou des pièces jointes plus petites, ou réduisez les définitions d'outils et les fichiers de mémoire en suivant les étapes ci-dessous - Exécutez
/contextpour voir la répartition de ce qui consomme la fenêtre : prompt système, outils, fichiers de mémoire et messages - Désactivez les serveurs MCP que vous n'utilisez pas avec
/mcp disable <name>pour retirer leurs définitions d'outils du contexte - Réduisez les fichiers de mémoire
CLAUDE.mdvolumineux, ou déplacez les instructions dans des règles limitées à des chemins qui ne se chargent que lorsqu'elles sont pertinentes - La compaction automatique est activée par défaut et empêche normalement cette erreur. Si vous l'avez désactivée dans
/configou avecDISABLE_AUTO_COMPACT, réactivez-la. Si vous la laissez désactivée, exécutez/compactvous-même avant que la fenêtre ne soit pleine. - Si l'erreur apparaît vers 200K tokens sur un modèle qui en accepte davantage, l'une des causes possibles est un identifiant de modèle que Claude Code ne reconnaît pas. Claude Code suppose une fenêtre de 200K pour un tel identifiant ; pour continuer à travailler au-delà, indiquez-lui la fenêtre de contexte réelle du modèle.
- Si vous utilisez un
ANTHROPIC_BASE_URLpersonnalisé et que l'erreur commence parPrompt is too long · automatic compaction failed, définissez la fenêtre de contexte du modèle ou mettez à jour vers la v2.1.299 ou ultérieure. Avant la v2.1.299, Claude Code terminait le tour avec ce message aux alentours de la fenêtre supposée de 200K au lieu d'envoyer la requête.
- Si vous utilisez un
- Si l'erreur est apparue juste après que vous avez arrêté Claude pendant qu'il compactait la conversation, votre conversation est inchangée et reste suffisamment volumineuse pour nécessiter une compaction. Exécutez
/compactet renvoyez votre message. Pour éviter que l'erreur ne se reproduise, mettez à jour Claude Code vers la v2.1.304 ou ultérieure. Avant la v2.1.304, un arrêt à ce moment pouvait terminer le tour avec cette erreur. - Sur la v2.1.305, avec de nombreux outils MCP et une connexion directe à l'API Anthropic, cette erreur peut masquer une erreur 400 ou 422 sans rapport renvoyée par l'API. Mettez à jour Claude Code vers la v2.1.306 ou ultérieure pour voir l'erreur d'origine.
Consultez Explorer la fenêtre de contexte pour une vue interactive de la manière dont le contexte se remplit.
Context exceeds the token limit
/context affiche cet avertissement en haut de sa sortie lorsque la conversation a dépassé la fenêtre de contexte du modèle. Les requêtes échouent avec Prompt is too long tant que vous ne libérez pas d'espace. Une session interactive affiche cette erreur sous la forme de la ligne Context limit reached.
Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.
Lorsque la limite dépassée est une fenêtre de compaction, comme la limite de 200K sur les modèles à contexte de 1M, l'avertissement est formulé différemment. Une fenêtre de compaction peut se situer en dessous de la fenêtre de contexte du modèle : les requêtes qui la dépassent peuvent donc encore aboutir.
Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.
Les deux formes mentionnent /clear au lieu de /compact lorsque vous avez défini DISABLE_COMPACT.
Que faire :
- Dans une conversation à plusieurs tours, exécutez
/compactpour résumer les tours précédents et libérer de l'espace. Pour repartir de zéro, exécutez plutôt/clear - Pour d'autres moyens de réduire l'utilisation, consultez Prompt is too long
Avant la v2.1.216, /context affichait une utilisation supérieure à 100 % sans ligne d'avertissement expliquant ce que cela signifiait ni comment y remédier.
Request too large
Le corps brut de la requête a dépassé la limite de 32 Mo de l'API avant la tokenisation, généralement à cause d'un contenu collé volumineux, de résultats d'outils ou de pièces jointes. Cette limite est distincte de la fenêtre de contexte.
Request too large (max 32MB). Accumulated images and attachments in the conversation pushed the request over the limit. Run /compact, or double press esc to go back and remove attachments.
Lorsque la requête est allée directement à l'API Claude et que l'API elle-même l'a rejetée, Claude Code mesure la conversation et formule le message selon que la récupération peut fonctionner ou non. Via un proxy, une passerelle ou un fournisseur cloud, vous obtenez le message général. Les formes mesurées :
Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).: des images ou des documents ont fait dépasser la limite à la requête. Claude Code réessaie en les retirant.Request too large for the API's 32MB request limit: les messages seuls dépassent la limite ; le message indique donccompacting cannot make it fitet Claude Code ne réessaie pas. En mode non interactif, le message vous invite plutôt à réduire l'entrée ou à démarrer une nouvelle session.
Avant la v2.1.212, les conversations contenant suffisamment d'images accumulées échouaient à chaque tour avec Request too large (max 32MB). Double press esc to go back and try with a smaller file. Avant la v2.1.229, Claude Code affichait le conseil sur les pièces jointes pour chaque rejet, même lorsque la compaction ne pouvait pas aider.
Que faire :
- Si le message indique
compacting cannot make it fit, appuyez deux fois sur Esc pour revenir avant le tour qui a ajouté le contenu volumineux, ou exécutez/clearpour repartir de zéro - Sinon, exécutez
/compact, qui supprime les images et pièces jointes accumulées - Référencez les fichiers volumineux par leur chemin au lieu de coller leur contenu, afin que Claude puisse les lire par morceaux
- Pour les images, consultez Image was too large ci-dessous
Image was too large
Une image collée ou jointe dépasse les limites de taille ou de dimensions de l'API.
Image was too large. Double press esc to go back and try again with a smaller image.
API Error: 400 ... image dimensions exceed max allowed size
API Error: an image in the conversation could not be processed and was removed.
La ligne could not be processed and was removed signifie que l'API a refusé une image de la conversation, par exemple une image dépassant les limites de taille ou de dimensions.
Si l'une de ces erreurs revient sans cesse, mettez à jour Claude Code. Sur les anciennes versions, une erreur d'image pouvait se répéter pour des raisons comme celles-ci :
- Avant la v2.1.299, dans une longue conversation contenant de nombreuses images, Claude Code pouvait retirer les images que vous aviez jointes en dernier au lieu de celle qui dépassait la limite. La ligne
was removedse répétait alors à chaque tour, et Claude ne voyait pas vos nouvelles images. - Avant la v2.1.299, dans VS Code, l'application Desktop et l'Agent SDK, les images que vous joigniez pendant que Claude travaillait ne bénéficiaient pas du redimensionnement appliqué aux autres images jointes. Elles atteignaient l'API à leur taille d'origine, ce qui provoquait des erreurs d'image répétées dans les longues conversations.
- Avant la v2.1.166, une image collée pouvait rester dans la conversation, et la même erreur se répétait alors à chaque message suivant
Que faire :
- Redimensionnez l'image avant de la coller. L'API accepte des images jusqu'à 8000 pixels sur le côté le plus long pour une image unique, ou 3000 pixels lorsque plus de 20 images sont dans le contexte.
- Prenez une capture d'écran plus resserrée de la zone pertinente au lieu de l'écran entier
Unable to resize image
Claude Code n'a pas pu réduire une image jointe avant de l'envoyer à l'API.
Unable to resize image — image processing is unavailable and dimensions could not be read from the file header. Please convert the image to PNG, JPEG, GIF, or WebP.
Unable to resize image — dimensions exceed the 2000x2000px limit and image processing failed. Please resize the image to reduce its pixel dimensions.
Unable to resize image (… raw, … base64). The image exceeds the … API limit and compression failed. Please resize the image manually or use a smaller image.
Unable to resize image — could not verify image dimensions are within the 2000x2000px API limit.
Unable to resize image — it is a CMYK JPEG, which Claude Code cannot decode, and at …px it is over the 2000x2000px limit, so it cannot be sent. Re-save it as an RGB PNG or JPEG and try again.
Unable to resize image — it is an animated WebP whose first frame Claude Code cannot decode, and at …px it is over the 2000x2000px limit, so it cannot be sent. Save its first frame as a PNG or JPEG and try again.
Unable to resize image — its pixels could not be decoded (the file may be damaged, or use an encoding Claude Code cannot read), and it is over the … API limit (… raw, … base64), so it cannot be sent. Re-save it as a PNG or JPEG and try again.
Claude Code redimensionne normalement les images volumineuses automatiquement. Ces erreurs signifient que l'image n'a pas pu être décodée ou redimensionnée pour respecter les limites de l'API.
Que faire :
- Si le message vous demande de convertir l'image, convertissez-la en PNG, JPEG, GIF ou WebP et joignez-la à nouveau. Pour ces formats, Claude Code peut vérifier les dimensions à partir de l'en-tête du fichier, sans décoder l'image.
- Si le message signale une limite de dimensions ou de taille, redimensionnez ou recompressez l'image en dessous de cette limite avant de la joindre.
- Si le message nomme une cause, comme un JPEG CMYK, un WebP animé ou un fichier possiblement endommagé, réenregistrez l'image dans le format suggéré par le message et joignez-la à nouveau.
Request rejected as unprocessable by the model
L'API a refusé la requête comme ne pouvant pas être traitée par le modèle. Le message est celui de l'API elle-même.
API Error: 400 Request rejected as unprocessable by the model (too many or oversized images, or unsupported parameters)
Claude Code peut retirer les images et documents les plus anciens d'une requête refusée et la renvoyer. Avant la v2.1.290, Claude Code ne retirait pas les images lors de ce refus : une longue session qui en avait accumulé des centaines pouvait donc échouer avec cette erreur à chaque tour.
Que faire :
- Si le message continue d'apparaître dans une conversation contenant des images ou des documents, retirez-les vous-même. Appuyez deux fois sur Esc pour revenir avant les tours qui les ont ajoutés, ou exécutez
/clearpour repartir de zéro.
Erreurs PDF
Le PDF que vous avez joint n'a pas pu être traité. Les messages sont présentés ici sous leur forme non interactive ; dans une session interactive, ils vous invitent plutôt à appuyer deux fois sur Esc et à réessayer.
PDF too large (max 100 pages, 20MB). Try reading the file a different way (e.g., extract text with pdftotext).
PDF is password protected. Try using a CLI tool to extract or convert the PDF.
The PDF file was not valid. Try converting it to text first (e.g., pdftotext).
Que faire :
- Pour les PDF trop volumineux, demandez à Claude de lire une plage de pages avec l'outil Read au lieu de joindre le fichier entier, ou extrayez le texte avec un outil comme
pdftotextet référencez le fichier de sortie par son chemin - Pour les PDF protégés ou non valides, supprimez le mot de passe ou réexportez le fichier depuis son application source, puis réessayez
Lorsque Claude lit une plage de pages d'un PDF avec l'outil Read, la lecture peut échouer avec un message différent :
pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering.
Les lectures par plage de pages effectuent le rendu des pages avec pdftoppm. Installez poppler-utils avec la commande indiquée par le message, ou, sur d'autres plateformes, une version de poppler qui place pdftoppm dans votre PATH. Consultez Comportement de l'outil Read pour savoir quels PDF sont lus par plage de pages.
Extra inputs are not permitted
L'endpoint qui a reçu la requête a rejeté l'un des champs de la requête comme une entrée qu'il n'accepte pas, et le message de l'endpoint nomme ce champ.
API Error: 400 ... context_management: Extra inputs are not permitted
Claude Code envoie des champs réservés aux bêtas, comme context_management et le champ defer_loading de la recherche d'outils, accompagnés d'un en-tête anthropic-beta qui les active. Lorsqu'une passerelle transmet le corps mais supprime l'en-tête, l'API voit des champs qu'elle ne reconnaît pas. Lorsqu'une passerelle transmet un corps au format Anthropic à un service en amont ayant un schéma différent, ce service rejette ces champs. Paires d'en-têtes bêta et de champs de corps couvre les deux cas.
Que faire :
- Si le message contient
context_management: Extra inputs are not permitted, mettez à jour Claude Code vers la v2.1.304 ou ultérieure. Après la mise à jour, Claude Code répond à ce rejet en renvoyant la requête une fois sans le champ. Avant la v2.1.304, Claude Code ne réessayait pas après ce rejet. - Si le message nomme
defer_loadingoutool_reference, mettez à jour Claude Code ou désactivez la recherche d'outils :- Mettez à jour Claude Code vers la v2.1.305 ou ultérieure. Claude Code répond alors à ce rejet en renvoyant la requête une fois sans les champs de recherche d'outils.
- Si vous ne pouvez pas mettre à jour, ou si le message apparaît toujours après la mise à jour, définissez
ENABLE_TOOL_SEARCH=falsedans votre shell ou dans leenvde vos paramètres. Si un fichier de paramètres définit déjà la variable, modifiez-la à cet endroit, car cette valeur peut remplacer un export du shell. Claude Code charge alors les outils MCP dès le départ.
- Si votre passerelle supprime l'en-tête, configurez-la pour qu'elle transmette l'en-tête
anthropic-beta. Consultez la transmission des fonctionnalités pour savoir ce que les passerelles doivent transmettre. - En solution de repli, définissez
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1avant le lancement. Désactiver les fonctionnalités en préversion en précise la portée exacte.
Avant la v2.1.302, cette erreur pouvait également nommer le champ diagnostics sans qu'aucune passerelle ne soit impliquée. Elle apparaissait lorsqu'une session ayant déjà utilisé l'API Anthropic passait à Amazon Bedrock ou à l'Agent Platform de Google Cloud sans redémarrage. Par exemple, une session que vous avez laissée ouverte passe à Bedrock lorsque vous exécutez /setup-bedrock dans une autre fenêtre Claude Code. Sur ces versions, exécutez /clear dans cette session ou redémarrez-la.
Le schéma d'entrée de l'outil n'est pas valide
Un outil de la requête a déclaré un input_schema qui échoue à la validation JSON Schema de l'API : l'API a donc rejeté l'ensemble de la requête. Le nombre après tools. est la position de l'outil en échec dans la liste d'outils de la requête, et non un nom que vous pouvez rechercher.
API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid
API Error: 400 ... tools.N.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$'
La première forme signifie que le schéma n'est pas un JSON Schema draft 2020-12 valide. La seconde signifie qu'un nom de propriété de premier niveau ne correspond pas au motif cité par le message.
Claude Code exclut les outils MCP dont le schéma d'entrée échouerait à cette validation lorsqu'il charge les outils d'un serveur : les requêtes n'en contiennent donc normalement jamais.
Sur un déploiement où la récupération des flags est désactivée, ou sur une machine dont les flags ne sont jamais arrivés, Claude Code consigne dans le log du serveur quel outil serait rejeté mais l'envoie quand même : cette erreur peut donc encore se produire.
L'erreur peut aussi se produire pour un outil dont le schéma déclare dans $schema un dialecte JSON Schema autre que draft 2020-12. Claude Code ne vérifie pas ces schémas par rapport au méta-schéma JSON Schema, mais la vérification des noms de propriétés de premier niveau s'applique toujours.
Avant la v2.1.216, aucun déploiement n'exécutait les vérifications d'exclusion.
Que faire :
- Si votre version de Claude Code est antérieure à la v2.1.300, exécutez
claude updatedans votre shell. Avant la v2.1.300, Claude Code ne réessayait pas la requête sans les paramètres de l'outil rejeté : cette erreur se répétait donc à chaque requête incluant l'outil. - Supprimez ou désactivez le serveur MCP qui déclare le schéma non valide. L'erreur ne nomme l'outil que par sa position. Sur la v2.1.216 ou ultérieure, consultez le log de chaque serveur à la recherche d'une ligne nommant un outil dont le schéma d'entrée serait rejeté. Si aucun log n'en nomme, désactivez les serveurs un par un.
- Si vous maintenez le serveur, corrigez l'
input_schemade l'outil. Le schéma doit être un JSON Schema valide, et les noms de propriétés de premier niveau doivent comporter entre 1 et 64 caractères et n'utiliser que des lettres et chiffres ASCII,_,.et-. Consultez Outils avec des schémas d'entrée non valides.
Nom d'outil MCP de plus de 128 caractères
Un serveur MCP liste un outil dont le nom complet, tel que mcp__<server>__<tool>, dépasse les 128 caractères acceptés par l'API. Claude Code exclut cet outil de ceux qu'il envoie à Claude, et les autres outils du serveur continuent de fonctionner. Dans une session que vous démarrez avec claude --debug depuis votre shell, Claude Code écrit ce message dans le log de débogage à l'emplacement ~/.claude/debug/<session-id>.txt :
Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128
Que faire :
- Si vous maintenez le serveur, raccourcissez le nom de l'outil.
- Si le serveur figure dans votre configuration MCP, donnez-lui un nom plus court à cet endroit, comme
dbau lieu deanalytics-database. Mettez ensuite à jour ce qui fait référence au serveur ou à ses outils par l'ancien nom, comme les règles de permission et les matchers de hooks. - Si un plugin intègre le serveur, le nom complet de l'outil inclut également le nom du plugin. Demandez au mainteneur du plugin de raccourcir le nom du serveur ou de l'outil.
Avant la v2.1.292, Claude Code envoyait quand même l'outil, et l'API rejetait chaque requête qui l'incluait avec API Error: 400 ... tools.N.custom.name: String should have at most 128 characters.
tool_use.name de plus de 200 caractères
Un appel d'outil de l'historique de la conversation porte un nom plus long que les 200 caractères acceptés par l'API dans une requête :
API Error: 400 ... tool_use.name: String should have at most 200 characters
Claude Code tronque un tel nom à 200 caractères lorsque la réponse arrive et lorsqu'il charge une conversation enregistrée : l'appel échoue donc avec une erreur d'outil No such tool available et la conversation continue sans cette erreur d'API.
Que faire :
- Exécutez
claude update, puis reprenez la conversation. La version mise à jour corrige le nom trop long lorsqu'elle charge la transcription, de sorte qu'une conversation bloquée fonctionne à nouveau.
Avant la v2.1.281, le nom trop long restait dans l'historique et l'API rejetait chaque requête qui renvoyait la conversation, y compris /compact et --resume : cette erreur se répétait donc et la conversation restait bloquée.
There's an issue with the selected model
Le nom de modèle configuré n'a pas été reconnu ou votre compte n'y a pas accès. Depuis la v2.1.160, l'indication finale, présentée ici sous sa forme interactive, varie selon la surface.
There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.
Que faire :
- CLI interactive : exécutez
/modelpour choisir parmi les modèles disponibles pour votre compte. - Mode non interactif (
-p) : passez--modelavec un alias ou un identifiant valide, ou définissezANTHROPIC_MODEL. Le texte de l'erreur afficheRun --modelsur cette surface. - Agent SDK : le texte de l'erreur omet l'indication, car le modèle est défini par programmation. Définissez
modelsurOptionsen TypeScript ouClaudeAgentOptions(model=...)en Python, et gérez l'erreur structuréemodel_not_foundpour proposer votre propre nouvelle tentative ou votre propre sélecteur de modèle. - Utilisez un alias comme
sonnetouopusau lieu d'un identifiant versionné complet. Les alias se résolvent vers une valeur par défaut maintenue, ils ne deviennent donc pas obsolètes. Consultez Configuration du modèle. - Si le mauvais modèle revient sans cesse dans la CLI, un identifiant obsolète est défini quelque part. Vérifiez les emplacements où vous pouvez définir un modèle, dans l'ordre de priorité, et supprimez la valeur obsolète.
- Claude Code signale une connexion claude.ai expirée sous la forme Login expired, et non sous la forme de cette erreur. Avant la v2.1.206, une connexion expirée qui ne pouvait plus être actualisée faisait échouer tous les modèles avec cette erreur ; exécutez
/loginsi vous voyez cela sur une ancienne version. - Si
ANTHROPIC_BASE_URLpointe vers une passerelle LLM et que tous les modèles échouent de cette manière, vérifiez si votre passerelle rejette les champs de recherche d'outils que Claude Code envoie par défaut. Pour le vérifier, définissezENABLE_TOOL_SEARCH=falsecomme décrit dans Recherche d'outils via une passerelle LLM, puis réessayez. Avant la v2.1.304, la recherche d'outils était désactivée derrière une passerelle, sauf si vous l'activiez avecENABLE_TOOL_SEARCH. - Pour les déploiements sur l'Agent Platform de Google Cloud, consultez Dépannage de l'Agent Platform de Google Cloud.
Model is not a recognized model id
La chaîne que vous avez passée lors d'un changement de modèle n'est pas une chaîne que Claude Code peut utiliser comme modèle : il a donc refusé le changement sans envoyer de requête, et la session conserve son modèle actuel. Vous pouvez obtenir cette erreur lorsqu'un modèle est défini via la méthode setModel() de l'Agent SDK, par une application qui exécute la CLI Claude Code pour vous, comme l'application Desktop, ou lorsque vous choisissez un modèle depuis un appareil connecté via Remote Control. Avant la v2.1.200, Claude Code enregistrait la chaîne et échouait à la requête suivante avec There's an issue with the selected model.
Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?
Dans cet exemple, une application a envoyé le nom d'affichage Sonnet 5, que le message répète sans son espace. L'indication finale nomme l'alias ou l'identifiant de modèle le plus proche. Lorsque rien n'est suffisamment proche, elle indique plutôt Run /model to see available models. Dans une session que l'application Desktop démarre pour vous, l'indication en l'absence de correspondance est Switch to a different model.
Lorsque vous changez de modèle via l'Agent SDK ou une application sur l'API Anthropic, seule une chaîne qui ne peut pas être un identifiant de modèle reçoit cette erreur, comme un nom d'affichage ou une chaîne vide.
Lorsque vous choisissez un modèle depuis un appareil Remote Control, Claude Code vérifie la chaîne localement. Toute chaîne qui n'est pas un alias de modèle, un modèle listé par Claude Code ou que vous avez configuré, ou un identifiant commençant par claude- reçoit cette erreur, y compris un identifiant mal saisi comme claud-sonnet-5. Avant la v2.1.260, cette vérification ne couvrait pas les choix effectués via Remote Control : une chaîne non reconnue était donc appliquée et échouait à la requête suivante.
Que faire :
- Exécutez
/modelsans argument pour ouvrir le sélecteur et choisir parmi les modèles disponibles pour votre compte, puis passez l'alias ou l'identifiant qui y est affiché - Si vous avez utilisé un alias que seule une version plus récente de Claude Code prend en charge, exécutez
claude update, ou passez plutôt l'identifiant complet du modèle. Le serveur peut toujours exiger une version minimale de Claude Code pour ce modèle ; consultez Claude Code does not support this model. - Un modèle enregistré avant la v2.1.200 n'est pas corrigé par cette vérification. Si une valeur obsolète revient sans cesse, supprimez-la des emplacements listés dans Définir votre modèle.
- Sur tout fournisseur autre que l'API Anthropic, ou derrière une passerelle ou un
ANTHROPIC_BASE_URLpersonnalisé, seule une chaîne vide reçoit cette erreur. Claude Code peut toujours écrire la ligne de diagnostic de modèle non reconnu au moment de la requête, sur tous les fournisseurs.
Model not found
Vous avez changé de modèle par son nom et Claude Code n'a pas pu confirmer qu'un modèle portant ce nom existe. Lorsque le nom n'est pas un alias de modèle ni une autre orthographe que Claude Code accepte localement, Claude Code le vérifie avec une requête API minimale, et cette erreur est généralement la réponse de votre endpoint d'API. Avec /model <name>, un nom qui ne peut pas du tout être un identifiant de modèle, comme un nom contenant des espaces, reçoit le même message.
Model 'claude-opus-9' not found
Sur les fournisseurs ayant des identifiants de modèle propres, le message peut ajouter une suggestion Try '...' instead qui nomme l'identifiant de votre fournisseur pour un modèle de secours.
Que faire :
- Exécutez
/modelsans argument et choisissez parmi les modèles disponibles pour votre compte, ou utilisez un alias de modèle commesonnet, qui se résout vers une valeur par défaut maintenue - Si vous avez saisi un identifiant complet, vérifiez-le dans le catalogue de modèles de votre fournisseur. Un modèle nouvellement lancé peut être disponible sur l'API Anthropic avant que votre fournisseur ou votre région ne le propose.
- Dans l'Agent SDK,
setModel()échoue avec ce message et la session continue de fonctionner sur son modèle précédent. Dans le SDK TypeScript, appelezsupportedModels()pour lister les modèles vers lesquels vous pouvez basculer. - Avant la v2.1.265,
/modelrejetait également l'orthographe d'aliasopusplan[1m]avec cette erreur. Sur ces versions, mettez à jour Claude Code, ou définissez plutôt le modèle dans les paramètres ou avec--model.
Couldn't confirm model with the API
Vous avez changé de modèle via la méthode setModel() de l'Agent SDK ou via une application qui exécute la CLI Claude Code pour vous, comme l'application Desktop, et la requête qui confirme l'identifiant du modèle auprès de votre endpoint d'API n'a reçu aucune réponse dans un délai de 15 secondes. La session conserve son modèle actuel.
Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.
Dans une session que l'application Desktop démarre pour vous, le message se termine à Try again.
Que faire :
- Changez à nouveau de modèle
- Si le changement continue d'échouer, vérifiez que Claude Code peut joindre votre endpoint d'API ; consultez Erreurs de réseau et de connexion
Erreur d'API lors de la vérification du modèle choisi
Vous avez choisi un modèle avec /model <name>, ou une application connectée à la session a demandé le changement. L'API a refusé la requête minimale que Claude Code envoie pour vérifier le modèle, pour une raison qui n'a pas d'entrée dédiée, comme une limite de débit ou une erreur serveur. La session conserve son modèle actuel, et le message se termine en l'indiquant :
API error: 429 <the server's explanation> · model not changed
La partie centrale du message correspond au statut HTTP et à l'explication propre du serveur.
Que faire :
- Agissez selon l'explication du serveur ; pour une limite de débit ou un statut 5xx, patientez puis choisissez à nouveau le modèle
- Les refus ayant leur propre formulation sont couverts par les entrées voisines, comme Model not found et Model is restricted by your organization's settings
Claude Opus is not available with the Claude Pro plan
Votre abonnement actif n'inclut pas le modèle que vous avez sélectionné.
Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.
Dans une session exécutée par l'application Claude Desktop, le message indique sign out and sign in again au lieu de nommer les commandes.
Que faire :
- Exécutez
/modelet sélectionnez un modèle inclus dans votre abonnement - Si vous avez récemment mis à niveau votre abonnement et voyez toujours ce message, exécutez
/logoutpuis/login. Le jeton stocké reflète votre abonnement au moment de votre connexion : une mise à niveau sur claude.ai ne prend donc effet dans une session existante qu'après une nouvelle authentification. - Consultez claude.com/pricing pour savoir quels modèles chaque abonnement inclut
Claude Code does not support this model
L'API a refusé la requête avec une erreur 400, car votre version de Claude Code est inférieure à un minimum requis. Soit le modèle que vous avez sélectionné nécessite une version plus récente, ce que le serveur vérifie pour chaque modèle, soit la politique de votre organisation en exige une. L'erreur 400 porte le code d'erreur claude_code_version_too_old, et le message indique quel minimum s'applique.
API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.
La formulation relative à la politique de l'organisation est la suivante :
API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.
La version que vérifie l'API est celle signalée par le binaire Claude Code qui a effectué la requête.
Que faire :
Mettez à jour ce binaire, puis démarrez une nouvelle session. La méthode dépend de la provenance du binaire, sauf dans un environnement auto-hébergé :
| Le binaire qui a effectué la requête | Comment le mettre à jour |
|---|---|
| Un Claude Code que vous avez installé | Exécutez claude update |
| L'application Claude Desktop | Mettez à jour l'application |
| Le binaire intégré à l'extension VS Code | Mettez à jour l'extension |
| Le binaire intégré à un paquet de l'Agent SDK | Mettez à niveau le paquet du SDK, puis redémarrez votre application. Dans un exécutable compilé en fichier unique, recompilez-le |
- Si vous exécutez
claude updatesur le canal de publication stable, la commande ne vous fait pas dépasser la version stable la plus récente, qui peut encore être inférieure au minimum requis. Passez au canal latest, puis mettez à jour à nouveau. Si votre organisation fixe votre canal ou votre version via les paramètres gérés, demandez à votre administrateur de les modifier - Pour la formulation propre au modèle, vous pouvez continuer à travailler dans la session en cours en basculant vers un autre modèle : exécutez
/modeldans la CLI, appelezsetModel()sur l'objetQuerydu SDK TypeScript en mode d'entrée en streaming, ou appelezset_model()sur leClaudeSDKClientdu SDK Python - Pour la formulation relative à la politique de l'organisation, mettez à jour avant de continuer
Model is restricted by your organization's settings
L'administrateur de votre organisation a désactivé ce modèle dans la console d'administration de claude.ai, ou les paramètres gérés l'excluent via une liste d'autorisation availableModels ou une liste deniedModels. L'avis apparaît au démarrage lorsque --model, ANTHROPIC_MODEL ou le paramètre model a nommé le modèle restreint, et il nomme le modèle que la session utilise à la place. Si les paramètres gérés ne laissent aucun modèle autorisé utilisable par la session, consultez Managed settings block the default model. L'avis de substitution peut aussi apparaître en cours de session après qu'un administrateur a désactivé, dans la console d'administration de claude.ai, le modèle sur lequel tourne une session.
Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.
La saisie de /model <name> pour un modèle restreint est rejetée et la session conserve son modèle actuel. Pour un modèle désactivé dans la console d'administration, le rejet indique Model '<name>' is restricted by your organization's settings. Run /model to choose a different model. Pour un modèle exclu par les paramètres gérés, il indique Model '<name>' is not available. Your organization restricts model selection.
Un avis préfixé par un nom d'agent, de skill ou de commande signifie que la restriction s'est appliquée au modèle demandé par ce sous-agent : le sous-agent tourne sur le modèle de substitution et le modèle de votre session reste inchangé. Avant la v2.1.223, Claude Code n'affichait l'avis que pour les sous-agents lancés avec l'outil Agent.
Claude Code traite un alias de famille de modèles, parmi opus, sonnet, haiku ou fable, comme une demande portant sur cette famille plutôt que sur sa version la plus récente. Sur l'API Anthropic et sur Claude Platform on AWS, un alias de famille restreint se résout vers la version la plus récente de la famille autorisée par les paramètres de votre organisation, et l'avis de substitution nomme cette version. Claude Code ne rejette /model <alias> que lorsque toutes les versions de la famille sont restreintes. Avant la v2.1.205, un alias de famille était substitué ou rejeté en fonction de sa seule version la plus récente, même lorsqu'une version plus ancienne de la même famille était autorisée.
Que faire :
- Exécutez
/modelpour choisir parmi les modèles autorisés par votre organisation. Les modèles restreints sont masqués dans le sélecteur. - Si le modèle restreint a été défini dans
--model,ANTHROPIC_MODEL, le champmodeld'un fichier de paramètres, ou le frontmattermodeld'un sous-agent, d'un skill ou d'une commande, supprimez ou mettez à jour cette valeur pour que l'avis ne se reproduise pas - Si vous avez besoin d'accéder au modèle restreint, demandez à l'administrateur de votre organisation de l'activer. Consultez Restrictions de modèles de l'organisation.
Can't switch to the default model
Vous avez choisi le modèle par défaut, par exemple en sélectionnant la ligne « Default » dans le sélecteur /model ou en saisissant /model default. Claude Code a refusé le changement : la session conserve donc son modèle actuel.
Can't switch to the default model: your organization's managed settings block it (claude-opus-4-6) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".
La formulation après les deux-points indique ce qui a bloqué le changement :
your organization's managed settings block it ... in "deniedModels": une liste de refus gérée bloque le modèle vers lequel se résout l'option par défautyour organization allows only the models listed in "availableModels": une liste d'autorisation géréeavailableModels, avecavailableModelsMatchdéfini sur"exact", exclut le modèle vers lequel se résout l'option par défautClaude Code couldn't read your organization's managed settings to check which models they allow: les paramètres gérés n'ont pas pu être lus, et Claude Code refuse le changement plutôt que de l'appliquer sans vérification
Que faire :
- Pour les formulations
deniedModelsetavailableModels, exécutez/modelet choisissez par son nom un modèle autorisé par votre organisation - Demandez à votre administrateur de mettre à jour le paramètre géré nommé par le message
- Pour la formulation
couldn't read, redémarrez Claude Code ; si le problème persiste, demandez à votre administrateur de vérifier les paramètres gérés
Si une session ne parvient pas à démarrer et affiche plutôt un message Claude Code can't start avec ces paramètres gérés, consultez Managed settings block the default model.
Model switch was blocked by a PreModelSwitch hook
Un hook PreModelSwitch n'a pas approuvé le changement de modèle que vous ou un client avez demandé : la session conserve donc son modèle actuel. Lorsque le changement provient d'un hôte de l'Agent SDK ou de Remote Control plutôt que d'une commande que vous avez saisie, le message indique Model switch blocked by a PreModelSwitch hook sans nommer le modèle cible.
Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: Opus 4.6 is retired for this project. Use a newer model.
La raison après les deux-points indique ce qui a refusé le changement :
- Une raison écrite par un hook : un hook PreModelSwitch a fourni cette raison lorsqu'il a refusé le changement ou demandé une confirmation. Traitez ce qu'il demande, ou choisissez un modèle autorisé par vos hooks.
PreModelSwitch hook <name> did not respond before its timeout: un hook qui ne répond pas avant son délai d'expiration bloque le changement. Corrigez la commande bloquée ou augmentez letimeoutde ce hook, puis changez à nouveau de modèle.confirmation required, and this session cannot ask: un hook a réponduasksans raison, et une requête de contrôle n'a aucun moyen d'afficher la demande de confirmation. Une commande/modeldans une exécution-psignale la même condition avec(run /model interactively to confirm)après la raison. Effectuez le changement depuis une session interactive, ou modifiez la décision du hook pour ce modèle.so organization-managed PreModelSwitch hooks could not be checked: Claude Code n'a pas pu déterminer quels hooks PreModelSwitch fournissent les plugins gérés de votre organisation, par exemple parce qu'un plugin géré n'a pas pu se charger. L'un de ces hooks pourrait bloquer le changement : Claude Code refuse donc plutôt que d'appliquer le changement sans vérification. Le début de la raison nomme ce qui a échoué. Claude Code vérifie à nouveau à chaque tentative de changement : un échec qui a depuis disparu cesse donc de bloquer ; si l'échec persiste, exécutezclaude --debuget changez à nouveau de modèle pour capturer les détails, puis corrigez le plugin ou demandez à votre administrateur de le corriger.a PreModelSwitch hook failed before answeringouPreModelSwitch hooks were cancelled (the control stream closed) before answering: l'exécution du hook s'est terminée sans verdict, et Claude Code ne considère pas cela comme une approbation. Exécutezclaude --debugpour voir ce qui a échoué, puis changez à nouveau de modèle.
Avant la v2.1.260, le refus lié aux plugins gérés indiquait plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log. Claude Code réessayait une fois le chargement des plugins, puis refusait les changements ultérieurs dans la session, même lorsque votre organisation ne gérait aucun plugin. Sur ces versions, redémarrez la session pour relancer le chargement des plugins.
Couldn't save it as your default
Vous avez choisi un modèle à enregistrer comme valeur par défaut, par exemple avec /model <name> ou Enter dans le sélecteur /model, et Claude Code n'a pas pu écrire ce choix dans votre fichier de paramètres utilisateur, ~/.claude/settings.json. Le changement lui-même a été appliqué : la session en cours tourne donc sur le modèle que vous avez choisi, mais votre valeur par défaut est inchangée et la session suivante démarre sur l'ancienne valeur.
Set model to Fable 5.1 for this session only · couldn't save it as your default: ~/.claude/settings.json can't be written (EROFS)
La raison après le chemin du fichier indique ce qui a échoué :
can't be written (<code>): l'écriture a échoué avec le code d'erreur du système d'exploitation indiqué entre parenthèses, commeEROFSlorsque le fichier, ou le fichier vers lequel il pointe, se trouve sur un système de fichiers qui refuse les écritures. Rendez le fichier accessible en écriture et changez à nouveau de modèle. Si un autre outil génère le fichier, définissez plutôt la clémodeldans cet outil ; consultez Une modification effectuée dans Claude Code est perdue dans les nouvelles sessions.isn't valid JSON: le fichier sur le disque ne peut pas être analysé, et Claude Code le laisse intact plutôt que d'écraser un contenu qu'il ne peut pas relire. Corrigez l'erreur de syntaxe, puis changez à nouveau de modèle ; consultez Corriger un fichier de paramètres défectueux.
Un avis se terminant par couldn't confirm it was saved as your default (~/.claude/settings.json is still being written) signifie que l'écriture n'était pas terminée au bout de trois secondes. Elle se poursuit en arrière-plan : la valeur par défaut peut donc encore être enregistrée ; vérifiez sur quel modèle démarre votre prochaine session, ou exécutez à nouveau /model <name>.
Avant la v2.1.265, l'avis indiquait que le modèle était saved as your default for new sessions même lorsque l'écriture échouait.
Advisor is less capable than the current main model
Votre modèle conseiller est classé en dessous du modèle principal de votre session : Claude Code conserve donc la sélection mais n'associe pas le conseiller aux requêtes du modèle principal.
Advisor set to Opus 4.8
Note: Opus 4.8 is less capable than the current main model (Sonnet 5.5), so the advisor will not activate. Choose a more capable advisor, or switch to a smaller main model.
D'autres messages signalent la même condition :
- Dans une session interactive, une notification indique
Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor. - Lorsque vous lancez avec le flag
--advisoren mode non interactif, et que l'exécution n'est pas une session en arrière-plan, un avertissement est envoyé sur stderr et l'exécution démarre quand même. Il indique"<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.Une session interactive n'écrit cet avertissement que dans le log de débogage.
Que faire :
- Choisissez un conseiller mieux classé ou un modèle principal moins bien classé. Choisir un modèle conseiller présente le classement et liste les conseillers acceptés pour chaque modèle principal.
- Conservez le conseiller si vous souhaitez que les sous-agents dont il peut conseiller le modèle continuent de l'utiliser
Avant la v2.1.287, Claude Code classait plusieurs associations différemment. Il affichait cette note pour un conseiller Sonnet 5.5 avec un modèle principal Opus 4.7 ou Opus 4.8, une association qu'il accepte désormais. Il associait aussi certains conseillers qui produisent désormais cette note, comme un conseiller Opus 4.8 avec un modèle principal Sonnet 5.5.
thinking.type.enabled is not supported for this model
Votre version de Claude Code est antérieure au minimum requis pour le modèle sélectionné. La CLI a envoyé une configuration de réflexion que le modèle n'accepte plus.
API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.
Que faire :
- Exécutez
claude updateet redémarrez Claude Code. Opus 4.7 nécessite la v2.1.111 ou ultérieure. Opus 4.8 nécessite la v2.1.154 ou ultérieure. Sonnet 5 nécessite la v2.1.197 ou ultérieure. Opus 5 nécessite la v2.1.219 ou ultérieure. Opus 5.5 nécessite la v2.1.280 ou ultérieure. Sonnet 5.5 nécessite la v2.1.284 ou ultérieure - Sur le canal de publication stable, la mise à jour ne vous fait pas dépasser la version stable la plus récente, qui peut encore être antérieure à ces versions. Passez au canal latest, puis mettez à jour
- Si vous ne pouvez pas effectuer la mise à niveau, exécutez
/modelet sélectionnez plutôt Opus 4.6 ou Sonnet 4.6 - Si vous rencontrez cette erreur dans l'Agent SDK, mettez plutôt à niveau le paquet du SDK. Opus 4.8 nécessite le SDK TypeScript v0.3.154 ou ultérieur et le SDK Python v0.2.88 ou ultérieur. Sonnet 5 nécessite le SDK TypeScript v0.3.197 ou ultérieur. Opus 5 nécessite le SDK TypeScript v0.3.219 ou ultérieur. Opus 5.5 nécessite le SDK TypeScript v0.3.280 ou ultérieur. Sonnet 5.5 nécessite le SDK TypeScript v0.3.284 ou ultérieur
Effort isn't available with thinking turned off
Vous avez désactivé la réflexion étendue et utilisé un niveau d'effort supérieur à high. Le modèle n'accepte pas cette combinaison : l'API a donc rejeté la requête.
API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)
L'indication après le · varie selon la session : dans une session non interactive, elle indique use --effort high (or the effortLevel setting), et dans une session exécutée par l'application Claude Desktop, elle indique you can lower effort to High.
Que faire :
- Abaissez le niveau d'effort à
highou moins. - Réactivez la réflexion, par exemple en supprimant la définition de
MAX_THINKING_TOKENSou en retirant"alwaysThinkingEnabled": falsede vos paramètres.
Avant la v2.1.242, Claude Code affichait le message propre à l'API : API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking. Avant la v2.1.251, Claude Code envoyait la requête au niveau d'effort que vous aviez défini : Opus 5 rejetait donc chaque requête supérieure à high lorsque la réflexion était désactivée. Claude Code envoie désormais plutôt l'effort high aux modèles dont il sait qu'ils rejettent la combinaison, comme Opus 5.
Le budget de réflexion dépasse la limite de sortie
Le budget de réflexion étendue configuré dépasse la longueur maximale de la réponse : il ne reste donc plus de place pour la réponse proprement dite.
API Error: 400 ... max_tokens must be greater than thinking.budget_tokens
Que faire :
- Augmentez
CLAUDE_CODE_MAX_OUTPUT_TOKENSau-delà du budget de réflexion - Consultez Réflexion étendue pour savoir comment le budget interagit avec la longueur de sortie
Response exceeded the output token maximum
La réponse de Claude a atteint le nombre maximal de tokens de sortie autorisé par la requête et a été coupée à cet endroit :
API Error: Claude's response exceeded the ... output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.
API Error: Claude's response exceeded the 64000 output token maximum for a request sent without streaming. The CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable cannot raise this limit.
La forme qui mentionne a request sent without streaming signifie qu'une requête en streaming a échoué et que Claude Code l'a renvoyée sans streaming, ce qui limite la réponse à 64 000 tokens de sortie. Avant la v2.1.299, une réponse coupée sur une telle requête renvoyée terminait le tour sans ce message, comme si la réponse était complète.
Que faire :
- Si Claude a écrit du texte avant que la réponse ne soit coupée, répondez
continuedans une session interactive pour demander la suite. Ce texte reste dans la conversation. - Si le message indique de définir
CLAUDE_CODE_MAX_OUTPUT_TOKENS, consultezCLAUDE_CODE_MAX_OUTPUT_TOKENSpour savoir comment la valeur est plafonnée et Définir des variables d'environnement pour savoir où la définir - Pour que chaque réponse reste sous la limite, demandez à Claude de produire la sortie en morceaux plus petits, comme un fichier ou une section par réponse
Incohérence des blocs d'utilisation d'outil ou de réflexion
L'historique de la conversation a atteint l'API dans un état incohérent.
API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.
API Error: 400 orphaned tool_result in conversation history. Run /rewind to recover the conversation.
API Error: 400 duplicate tool_use ID in conversation history. Run /rewind to recover the conversation.
API Error: 400 ... unexpected `tool_use_id` found in `tool_result` blocks
API Error: 400 ... thinking blocks ... cannot be modified
Toutes les variantes signifient la même chose : la séquence des blocs tool_use, tool_result et thinking dans l'historique ne correspond plus à ce qu'attend l'API.
Que faire :
- Si vous utilisez Opus 4.7 ou Opus 4.8, exécutez d'abord
claude update. Les versions antérieures à la v2.1.156 peuvent déclencher cette erreur lors d'une utilisation normale des outils, et/rewindne la résout pas. - Exécutez
/rewind, ou appuyez deux fois sur Esc, pour revenir à un checkpoint antérieur au tour corrompu et reprendre à partir de là. Consultez Checkpointing pour savoir comment les checkpoints sont créés et restaurés.
Invalid data in redacted_thinking block
L'API a refusé la requête avec une erreur 400, car elle n'a pas pu accepter un bloc redacted_thinking porté par un tour antérieur de l'historique de la conversation.
API Error: 400 ... Invalid `data` in `redacted_thinking` block
Claude Code exclut de la requête la réflexion antérieure de la conversation et réessaie une fois : la session continue donc sans afficher l'erreur. Avant la v2.1.282, Claude Code conservait le bloc refusé, et chaque tour suivant échouait avec la même erreur.
Que faire :
- Si vous utilisez la v2.1.281 ou une version antérieure et que chaque tour échoue avec cette erreur, exécutez
claude updateet reprenez la session - Si l'erreur persiste, exécutez
/clearpour démarrer une conversation qui ne contient pas le bloc
Unsupported tool content removed
Lorsque Claude Code se connecte directement à l'API Anthropic et charge ou prévisualise une session enregistrée, il supprime le contenu d'outil que l'API Anthropic n'accepte pas et laisse cette ligne à l'endroit où le contenu supprimé se trouvait entre deux blocs de réflexion :
[Unsupported tool content removed]
Un tel contenu se retrouve dans un fichier de session lorsque quelque chose d'autre que l'API Anthropic a répondu au format de l'API, généralement un proxy tiers défini via ANTHROPIC_BASE_URL qui traduit les appels d'outils d'un autre fournisseur. Claude Code ne le supprime que lorsque la session se connecte directement à l'API Anthropic, et charge l'historique enregistré tel quel lorsque la session passe par un proxy ou tourne sur un autre fournisseur. Avant la v2.1.246, Claude Code renvoyait l'utilisation d'outil et son résultat à l'API, et chaque tour de la session reprise échouait avec une erreur 400 telle que messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ....
Que faire :
- Aucune action n'est nécessaire lorsque vous voyez la ligne de substitution. La session continue sans le contenu supprimé.
- Si chaque tour d'une session reprise échoue plutôt avec l'erreur 400, exécutez
claude updateet reprenez à nouveau la session. Les versions antérieures à la v2.1.246 ne suppriment pas le contenu.
role 'system' must precede an 'assistant' message
L'API a refusé la requête avec une erreur 400, car un message système se trouve à une position de la conversation qu'elle n'accepte pas :
API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ...
Claude Code envoie une partie de ses textes de rappel et de pièces jointes sous forme de messages système au sein de la conversation. Lorsque l'API refuse la position de l'un d'eux, Claude Code réessaie la requête une fois en envoyant plutôt ce texte sous forme de messages utilisateur ordinaires. Les formulations voisines de l'API concernant le placement, comme use the top-level 'system' parameter for the initial system prompt, bénéficient de la même récupération.
Lorsque l'erreur apparaît malgré tout, le message système refusé n'est pas un message que Claude Code peut supprimer. Cela signifie généralement qu'un proxy ou une passerelle LLM situé entre Claude Code et l'API a ajouté son propre message système.
Que faire :
- Si l'erreur se répète à chaque tour derrière un proxy ou une passerelle configuré via
ANTHROPIC_BASE_URL, connectez-vous sans le proxy pour confirmer la source, et signalez l'erreur à la personne qui l'exploite - Exécutez
/clearpour démarrer une nouvelle conversation. Si l'erreur y revient également, la cause se trouve sur le chemin de la requête, et non dans la conversation enregistrée.
Avant la v2.1.280, Claude Code ne reconnaissait pas cette formulation : l'erreur apparaissait donc aussi lorsque le message système refusé était un message envoyé par Claude Code lui-même, et chaque tour suivant de la conversation échouait de la même manière.
Invalid encrypted_content in search_result block
L'API a refusé la requête avec une erreur 400, car l'historique de la conversation contient du contenu de recherche web hébergée qu'elle ne peut pas déchiffrer. La formulation nomme le champ qu'elle ne peut pas lire :
API Error: 400 ... Invalid `encrypted_content` in `search_result` block
API Error: 400 ... Invalid `encrypted_index` in `text` block
API Error: 400 ... Failed to decrypt web search result content
API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block
Les résultats de l'outil de recherche web hébergé de l'API portent des champs chiffrés que seule l'API peut lire. La formulation encrypted_stdout nomme la sortie d'un programme d'exécution de code hébergé qui a lu de tels résultats, que l'API chiffre également. L'API refuse une requête qui rejoue un contenu qu'elle ne peut pas déchiffrer, comme un contenu produit pour une autre organisation.
L'outil WebSearch propre à Claude Code enregistre les résultats de recherche en texte brut : ces blocs atteignent donc généralement une conversation via un proxy ou une passerelle LLM qui a elle-même exécuté la recherche web hébergée.
Pour les trois formulations relatives à la recherche web, Claude Code exclut de ce qu'il envoie les appels de recherche, les résultats et les citations, et réessaie la requête une fois : la session continue donc sans afficher l'erreur. La formulation encrypted_stdout ne bénéficie pas d'une telle récupération : ce message vous parvient donc toujours. Avant la v2.1.282, Claude Code conservait également les blocs de recherche web refusés, et chaque tour suivant ainsi que /compact échouaient de la même manière.
Que faire :
- Si vous utilisez la v2.1.281 ou une version antérieure et que chaque tour échoue avec l'une des formulations relatives à la recherche web, exécutez
claude updateet reprenez la session - Si l'erreur persiste, ou si le message nomme
encrypted_stdout, exécutez/rewindpour revenir à un checkpoint antérieur au tour qui a ajouté le contenu, ou exécutez/clearpour démarrer une conversation qui ne le contient pas - Si vous exécutez Claude Code derrière un proxy ou une passerelle, signalez l'erreur à la personne qui l'exploite
Usage Policy refusal
L'API a refusé de répondre parce que le contenu de la conversation a déclenché une vérification de la Politique d'utilisation.
Si le message contient la ligne Details: `[reasoning_extraction]`, consultez Les mesures de protection ont signalé une demande portant sur le raisonnement de Claude.
Le message comprend un Request ID et un Message ID que vous pouvez communiquer au support si vous pensez que le refus est erroné.
API Error: Opus 4.6 can't help with this. Start a new session to continue.
Send feedback with /feedback or learn more: https://www.anthropic.com/legal/aup
Le message indique le modèle qui a refusé, ou Claude lorsqu'aucun modèle n'est enregistré.
La vérification évalue l'intégralité de la conversation, et pas uniquement votre dernier prompt. L'envoi d'un nouveau message dans la même session déclenche donc généralement le même refus. Il en va de même après avoir quitté puis rouvert la session avec --continue ou --resume, puisque la transcription sur disque contient toujours le contenu déclencheur. Sur Amazon Bedrock, Agent Platform de Google Cloud et Microsoft Foundry, ce message couvre également les requêtes que les mesures de sécurité du modèle ont signalées comme relevant de la cybersécurité. Consultez Les mesures de sécurité ont signalé un sujet de cybersécurité.
Avant la v2.1.219, le message était Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.
Que faire :
- Appuyez deux fois sur Esc ou exécutez
/rewindpour revenir à un checkpoint antérieur au tour qui a déclenché le refus, puis reformulez ou adoptez une approche différente. Consultez Checkpointing. - Si vous ne parvenez pas à identifier le tour en cause, exécutez
/clearpour démarrer une nouvelle conversation dans le même projet. Votre conversation précédente est conservée sur disque et reste disponible dans/resume. - En mode non interactif (
-p), où le retour en arrière n'est pas disponible, réessayez avec un prompt reformulé dans une nouvelle session, sans--continue. Les vérifications de politique varient selon le modèle ; passer à un autre modèle avec--modelpeut donc aussi résoudre le refus dans certains cas.
Safety measures flagged a cybersecurity topic
Les mesures de sécurité du modèle ont signalé du contenu de la conversation comme relevant de la cybersécurité. Le message indique le modèle qui a signalé la requête :
API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude
Si le message contient la ligne Details: `[reasoning_extraction]`, consultez Les mesures de protection ont signalé une demande portant sur le raisonnement de Claude.
Ce message renvoie vers le Cyber Verification Program, qui accorde un accès pour les travaux de cybersécurité légitimes. Les modèles dotés du basculement automatique vers un modèle de secours affichent un message différent, sans ce lien ; sur Opus 5.5 et Sonnet 5.5, il commence par <model>'s safeguards flagged this session. Cette section explique également quand Claude Code change plutôt de modèle.
Sur Amazon Bedrock, Agent Platform de Google Cloud et Microsoft Foundry, un signalement de cybersécurité produit à la place le message Usage Policy refusal.
Que faire :
- Si votre travail nécessite ce contenu, demandez un accès via le Cyber Verification Program
- Si votre requête ne portait pas sur un sujet de cybersécurité, exécutez
/feedbackpour signaler le faux positif - Pour continuer à travailler dans la même session, appuyez deux fois sur Esc ou exécutez
/rewindpour revenir à un checkpoint antérieur au tour qui a déclenché le signalement, puis adoptez une approche différente. Consultez Checkpointing.
Si le message que vous voyez est plutôt formulé comme l'un des suivants, il s'agit du même signalement dans une version antérieure de Claude Code :
- De la v2.1.219 à la v2.1.296, le message pouvait également inclure
Apply to the Cyber Verification Program to reduce these interruptions.avant sa phrase finale - De la v2.1.203 à la v2.1.218, le message était
<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:suivi du même lien vers le centre d'aide. Dans les sessions interactives, il se poursuivait parIf you were not engaging in a cybersecurity topic, please send feedback via /feedback. - Avant la v2.1.203, il était
<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:suivi d'un lien vers un formulaire de demande d'exemption
Les mesures de protection ont signalé une demande portant sur le raisonnement de Claude
L'API a refusé la requête parce que les mesures de protection l'ont signalée comme demandant au modèle de reproduire son raisonnement interne dans la réponse. L'API nomme cette catégorie de refus reasoning_extraction, et le message de refus contient cette ligne :
Details: `[reasoning_extraction]`
Avant la v2.1.234, les messages de refus n'incluaient pas la ligne Details.
Que faire :
- Supprimez ou reformulez toute instruction demandant à Claude d'écrire sa réflexion ou son raisonnement mot pour mot ou dans un format fixe, comme une section
<thinking>, une section de brouillon ou un champreasoningdans une sortie JSON. L'instruction peut se trouver dans votre prompt ou dans une personnalisation que Claude Code charge avec celui-ci, comme CLAUDE.md, un skill, un prompt de sous-agent, un style de sortie ou une description d'outil MCP. - Pour vérifier si une personnalisation est en cause, exécutez
claude --safe-modedans votre terminal pour démarrer une session avec les personnalisations désactivées, puis envoyez le même prompt - Après avoir modifié une personnalisation, démarrez une nouvelle session
- Pour reformuler un prompt déjà envoyé, consultez Revenir en arrière et résumer
- Vous pouvez toujours demander à Claude d'expliquer sa réponse. Demandez une brève explication, les éléments qui étayent un résultat ou un résumé des actions effectuées. Pour lire des résumés de la réflexion de Claude, consultez
showThinkingSummaries. - Pour plus d'exemples, et pour savoir que faire si une requête reformulée est toujours refusée, consultez Keep reasoning in thinking blocks
Output blocked by content filtering policy
Le filtre de contenu de sortie de l'API a interrompu la réponse que Claude était en train de générer. Le texte du message provient de l'API :
API Error: Output blocked by content filtering policy
Que faire :
- Reformulez votre dernier message ou adoptez une approche différente
- Pour revenir à un checkpoint antérieur au tour qui a déclenché le blocage, appuyez deux fois sur Esc ou exécutez
/rewind. Consultez Checkpointing
Erreurs de ligne de commande
Ces erreurs proviennent de la ligne de commande claude et de ses sous-commandes, d'un nom de commande que vous soumettez dans le prompt, et de commandes telles que /security-review qui rassemblent du contexte en exécutant des commandes shell avant l'exécution de leur prompt. Elles proviennent aussi de /tui, qui relance la CLI.
Conflit entre --bg et --print
Ce message nécessite Claude Code v2.1.198 ou une version ultérieure. Vous avez combiné --bg avec -p ou --print dans la même invocation de claude. --bg démarre une session en arrière-plan à laquelle vous vous rattachez ensuite avec claude agents, tandis que --print s'exécute en mode non interactif et ne démarre jamais la session interactive à laquelle claude agents se rattache. Avant la v2.1.198, cette combinaison créait silencieusement une tâche en arrière-plan à laquelle il était impossible de se rattacher.
--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.
Marche à suivre :
- Supprimez
-pou--print.--bgprend le prompt comme argument positionnel, doncclaude --bg "<task>"constitue la commande complète. Consultez Lancer de nouveaux agents depuis votre shell. - Pour exécuter le prompt en mode non interactif et afficher le résultat au lieu de créer une session en arrière-plan, supprimez
--bget exécutezclaude -p "<task>"
Couldn't tell whether --bg is a flag or text
Vous avez exécuté claude avec --bg ou --background à une position où Claude Code ne pouvait pas déterminer si vous l'entendiez comme le flag d'arrière-plan ou comme du texte. La commande n'a rien démarré, a affiché cette ligne et s'est terminée avec le code 1 :
Couldn't tell whether --bg is a flag or text here, so nothing was started. To start a background session put it first: claude --bg <prompt>
Si vous avez saisi --background, la ligne mentionne --background à la place.
Marche à suivre :
- Pour démarrer une session en arrière-plan, exécutez de nouveau la commande dans votre shell en plaçant le flag en premier :
claude --bg --name nightly-audit "<task>"
Conflit entre un flag de prompt système et sa forme fichier
Vous avez passé --append-subagent-system-prompt avec --append-subagent-system-prompt-file dans une même invocation de claude, donc claude se termine avec le code 1 au lieu de démarrer la session :
Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.
Avant la v2.1.283, claude se terminait de la même manière lorsque vous passiez --system-prompt avec --system-prompt-file, ou --append-system-prompt avec --append-system-prompt-file, car ces paires entraient en conflit au lieu de se combiner. Dans ces versions, le message mentionne la paire que vous avez combinée.
Marche à suivre :
- Conservez une seule forme du flag et supprimez l'autre. Pour combiner un fichier de prompt fixe avec du texte propre à chaque exécution, fusionnez le texte dans le fichier avant le lancement au lieu de passer les deux flags
Invalid --agents configuration
La valeur que vous avez passée à --agents est invalide, donc claude se termine avec le code 1 au lieu de démarrer la session. Lorsque vous passez --safe-mode ou définissez CLAUDE_CODE_SAFE_MODE, Claude Code ignore entièrement --agents. Avec --resume ou --continue, une valeur JSON en ligne n'est pas vérifiée et la session démarre ; une valeur lue depuis un fichier est vérifiée à chaque lancement. Avant la v2.1.242, Claude Code démarrait quand même la session.
Error: Invalid --agents configuration:
<what failed>
Ce qui suit la première ligne dépend de la manière dont la valeur a échoué. Claude Code exécute ces vérifications dans l'ordre et s'arrête à la première qui échoue. Si votre valeur présente deux types de problèmes, vous ne voyez le second qu'après avoir corrigé le premier :
- Lorsque la valeur commence par
{mais ne peut pas être analysée comme du JSON, ou que le contenu d'un fichier--agentsne peut pas être analysé, Claude Code affiche une ligneinvalid JSON:contenant le message propre à l'analyseur JSON - Lorsqu'elle est analysée mais qu'une définition d'agent ne correspond pas au schéma des sous-agents définis via la CLI, Claude Code affiche une ligne par problème
- Lorsqu'un nom d'agent commence par
-, Claude Code affiche<name>: agent names must not start with '-'
Lorsqu'il y a plus de 20 lignes de problèmes, Claude Code affiche les 20 premières et remplace le reste par …and N more.
Avec --print, --agents accepte aussi le chemin d'un fichier JSON à la place de l'objet en ligne. Avant la v2.1.281, --agents n'acceptait que du JSON en ligne et traitait un chemin de fichier comme du JSON invalide. La forme fichier a ses propres refus, affichés à la place de ce message, notamment ceux-ci :
Error: --agents takes a JSON object, or a file path only with --print (-p): Claude Code a lu la valeur comme un chemin de fichier dans une session interactive. Passez les définitions en JSON en ligne, ou ajoutez-ppour les lire depuis un fichier.Error: --agents file not found: <path>: aucun fichier n'existe à ce chemin. Une valeur qui ne commence pas par{et qui n'est pas du JSON valide est lue comme un chemin, donc du JSON en ligne altéré par votre shell peut aussi échouer de cette manière. Vérifiez le chemin ou les guillemets et exécutez de nouveau la commande.
Marche à suivre :
- Corrigez chaque problème listé par le message, puis exécutez de nouveau la commande. Consultez les champs qu'accepte un sous-agent défini via la CLI.
Cloud sessions cannot be created from a --restricted session
Lorsque vous démarrez une session avec --restricted, Claude Code refuse d'y créer des sessions cloud, car la nouvelle session s'exécuterait en dehors du processus restreint et n'appliquerait pas le mode restreint. Claude Code refuse côté client, avant de contacter le serveur, donc aucune session cloud n'est créée :
Cloud sessions cannot be created from a --restricted session: they would not enforce it.
Marche à suivre :
- Exécutez la tâche localement dans la session restreinte
- Si vous contrôlez la manière dont la session a été lancée, démarrez une nouvelle session
claudesans--restrictedet créez la session cloud depuis celle-ci
Avant la v2.1.248, Claude Code n'avait pas de flag --restricted ; les versions antérieures rejettent le flag lui-même avec une erreur d'option inconnue.
Cloud sessions are disabled by your organization's policy
La politique allow_remote_sessions de votre organisation est désactivée, donc les sessions cloud et les commandes qui les utilisent ne sont pas disponibles :
Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.
Le message apparaît lorsque vous créez une session cloud depuis le terminal et lorsque vous soumettez une commande qui nécessite des sessions cloud, comme /teleport, /remote-env ou /web-setup. Avant la v2.1.268, soumettre l'une de ces commandes renvoyait Unknown command à la place.
Si le message mentionne plutôt des identifiants utilisés par cette session et se termine par Cloud sessions use your claude.ai login., consultez Cloud sessions use your claude.ai login. Si Claude Code n'a pas du tout pu charger la politique de votre organisation, vous voyez un message différent à la place.
Marche à suivre :
- Demandez à un Owner de votre organisation d'activer les sessions cloud dans les paramètres d'administration de Claude Code à l'adresse claude.ai/admin-settings/claude-code
Cloud sessions use your claude.ai login
Lorsque le refus de politique mentionne des identifiants utilisés par cette session et se termine par cette phrase, Claude Code a vérifié la politique de sessions cloud de l'organisation qui a émis ces identifiants. Cette organisation peut différer de celle à laquelle appartient votre connexion claude.ai :
Cloud sessions are disabled by your organization's policy. This session is using ANTHROPIC_API_KEY, so Claude Code checked the policy for the organization that key belongs to. Cloud sessions use your claude.ai login.
La dernière phrase signifie que les sessions cloud s'exécutent avec votre connexion claude.ai plutôt qu'avec ces identifiants. Cette forme apparaît lorsque vous démarrez, reprenez ou envoyez un message à une session cloud depuis votre shell, par exemple avec --cloud ou --teleport. Avant la v2.1.296, Claude Code affichait dans ce cas aussi la forme qui vous invite à contacter l'administrateur de votre organisation.
Couldn't verify your organization's policy for cloud sessions
Ces messages signifient que Claude Code n'a pas pu charger la politique de votre organisation, qu'il vérifie avant de créer, reprendre ou envoyer un message à une session cloud. Tant que la requête de politique n'est pas terminée, le message est :
Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.
À l'intérieur d'une session, une commande qui nécessite des sessions cloud, comme /teleport ou /web-setup, affiche aussi ce message. Elle le fait même là où votre shell afficherait une forme Cloud sessions aren't available:, et sa seconde phrase est Check your network connection, then restart Claude Code and try again.
Une fois que la requête de politique a échoué, le message indique ce qui a échoué. Cela s'applique lorsque vous démarrez, reprenez ou envoyez un message à une session cloud depuis votre shell avec un flag tel que --cloud ou --teleport. Sans accès réseau à l'API, il se lit :
Cloud sessions aren't available: couldn't reach api.anthropic.com to load your organization's policy. Check your network or proxy.
Les autres échecs suivent la même ouverture avec leur propre cause, comme un proxy qui a refusé la requête avec HTTP 403, une erreur serveur ou des identifiants que l'API n'a pas acceptés. Lorsque l'API n'a pas accepté des identifiants que cette session utilise à la place de votre connexion claude.ai, comme une variable d'environnement ANTHROPIC_API_KEY, le message peut aussi les mentionner et indiquer de les supprimer :
Cloud sessions aren't available: api.anthropic.com didn't accept this session's credentials when Claude Code asked for your organization's policy. Cloud sessions use your claude.ai login. ANTHROPIC_API_KEY is set, so this session is using API-key auth — unset it (or run in a shell without it) to use cloud sessions.
Avant la v2.1.296, ces échecs affichaient aussi le message Couldn't verify.
Marche à suivre :
- Pour le message
Couldn't verify, vérifiez votre connexion réseau et réessayez. À l'intérieur d'une session, redémarrez d'abord Claude Code - Pour un message
Cloud sessions aren't available:, faites ce que sa cause exige, comme vérifier votre proxy ou supprimer les identifiants qu'il mentionne, puis exécutez de nouveau la commande
Rien n'a été mis dans le stash car un dossier a remplacé un fichier suivi
Ce message signifie qu'un dossier de votre copie de travail se trouve désormais là où se trouvait un fichier ou un lien suivi par git. Il apparaît après que vous avez choisi l'option de stash lors du rapatriement d'une session cloud dans votre terminal, par exemple avec claude --teleport ou /teleport. Mettre cet état dans le stash pourrait supprimer les fichiers contenus dans le dossier, donc Claude Code refuse le stash et laisse votre copie de travail et votre index inchangés :
Error: Nothing was stashed: "f" is now a folder in place of a tracked file or link, and stashing could delete what's in it for good. Commit the change or move the folder somewhere else, then try again.
Marche à suivre :
- Créez un commit pour la modification ou déplacez le dossier ailleurs, comme l'indique le message, puis relancez la téléportation
The --json-schema value is not a valid JSON Schema
Le schéma que vous avez passé à --json-schema en mode non interactif a échoué à la compilation JSON Schema, donc claude se termine avec le code 1 au lieu d'exécuter le prompt. Avant la v2.1.205, un schéma invalide produisait une sortie non structurée sans erreur, et tout schéma utilisant le mot-clé format était traité comme invalide.
Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values
Le texte après le second deux-points est le diagnostic du validateur et mentionne le mot-clé ou l'emplacement qui a échoué. Les schémas qui utilisent le mot-clé format, comme "format": "email", sont valides : Claude Code accepte format comme annotation et ne l'applique pas.
Claude Code effectue deux vérifications avant la compilation du schéma : il rejette une valeur qui n'est pas du JSON analysable avec Error: --json-schema is not valid JSON, et du JSON valide qui n'est pas un objet avec Error: --json-schema must be a JSON object.
Marche à suivre :
- Corrigez la partie du schéma mentionnée par le diagnostic, puis relancez la commande
- Consultez Obtenir une sortie structurée pour un schéma et une commande fonctionnels
Settings file exceeds the 2MiB limit
Le fichier que vous avez passé à --settings dépasse 2 MiB, donc claude se termine avec le code 1 au démarrage au lieu de le charger. Avant la v2.1.214, Claude Code lisait le fichier sans vérifier sa taille, et un fichier de plusieurs gigaoctets ou un fichier de périphérique tel que /dev/zero faisait croître la mémoire sans limite.
Error: Settings file exceeds the 2MiB limit: /path/to/settings.json
Claude Code rejette de la même manière un chemin --settings qui n'est pas un fichier ordinaire : un périphérique, une FIFO ou un socket renvoie Error: Cannot use settings file (Not a regular file (device, FIFO, or socket)) suivi du chemin, et un répertoire renvoie une raison EISDIR.
Marche à suivre :
- Faites pointer
--settingsvers un fichier de paramètres JSON ordinaire de moins de 2 MiB. Consultez Paramètres pour le format.
The current directory no longer exists
Vous avez démarré claude depuis un répertoire qui a été supprimé ou déplacé après que votre shell y est entré, par exemple un worktree ou un répertoire temporaire supprimé par un autre shell. Claude Code ne peut pas lire son répertoire de travail, donc il se termine avec le code 1 avant de démarrer la session, en mode interactif comme en mode non interactif. Avant la v2.1.239, Claude Code plantait en affichant sur stderr le code source minifié du bundle et une pile brute ENOENT ... uv_cwd au lieu de ce message.
The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.
error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.
La cause et la solution sont les mêmes pour les deux formes.
Lorsque Claude Code ne peut pas lire le répertoire de travail pour une autre raison, comme un changement de permissions, le message mentionne plutôt le code d'erreur : Can't read the current directory (EACCES). Start Claude Code from a different directory.
Sur macOS, EPERM pour un répertoire situé dans ~/Desktop, ~/Documents, ~/Downloads ou iCloud Drive signifie généralement que macOS bloque l'accès de votre application de terminal à ce dossier. Les autres commandes qui lisent ce dossier échouent de la même manière : ls y renvoie Operation not permitted, même avec sudo.
Marche à suivre :
- Placez-vous dans un répertoire qui existe, comme votre répertoire personnel ou votre répertoire de projet, puis exécutez de nouveau
claude - Si le répertoire a été recréé au même chemin, votre shell conserve toujours celui qui a été supprimé. Exécutez
cd "$PWD"ou quittez le répertoire puis revenez-y, puis exécutez de nouveauclaude - Pour
EPERMsur macOS, quittez votre application de terminal avec Cmd+Q, rouvrez-la, revenez dans ce dossier et exécutezclaude. Silséchoue toujours dans ce dossier, ouvrez Réglages Système > Confidentialité et sécurité > Fichiers et dossiers, activez le dossier pour votre application de terminal, puis rouvrez le terminal
Répertoire temporaire refusé ou impossible à créer
Sur macOS et Linux, Claude Code crée un répertoire temporaire privé au démarrage, claude-<uid>, sous le répertoire temporaire du système ou sous celui défini par CLAUDE_CODE_TMPDIR. Lorsque le répertoire ne peut pas être créé, ou qu'une entrée déjà présente à ce chemin échoue aux vérifications de sécurité, Claude Code affiche l'échec sur stderr et se termine avec le code 1 au lieu de démarrer la session :
Claude Code's temporary directory /tmp/claude-501 could not be created: the volume holding /tmp is full (ENOSPC). Free space on that volume, or set CLAUDE_CODE_TMPDIR to a directory on another one, then try again.
Temp directory /tmp/claude-501 is not a directory (may be an attacker-planted symlink). Refusing to use it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.
Temp directory /tmp/claude-501 is owned by uid 502, expected 501. Refusing to use it — another user may have pre-created it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.
Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.
Marche à suivre :
- Pour
could not be createdsuivi deis full (ENOSPC), libérez de l'espace disque sur le volume mentionné par le message. Lorsqu'il indique plutôtyour disk quota on the volume holding /tmp is used up (EDQUOT), supprimez vos propres fichiers dont vous n'avez plus besoin sur ce volume - Pour les formes
Refusing to use it, supprimez l'entrée mentionnée elle-même, et non la cible d'un lien, puis redémarrez Claude Code ; pour la formeowned by uid, seul un administrateur ou cet utilisateur peut la supprimer - Pour
is not readable, exécutezchmod 0700sur le répertoire mentionné, ou supprimez-le et redémarrez - Dans tous ces cas, définissez
CLAUDE_CODE_TMPDIRsur un répertoire que vous contrôlez et redémarrez Claude Code, sans toucher au chemin refusé
Avant la v2.1.309, Claude Code n'affichait que le texte d'erreur du système d'exploitation lorsque le volume était plein ou que votre quota était épuisé. Par exemple ENOSPC: no space left on device, mkdir '/tmp/claude-501', et les mêmes étapes s'appliquent.
Directory couldn't be resolved to a real location
Vous avez exécuté /add-dir pour un sous-répertoire de votre répertoire de travail, et Claude Code n'a pas pu résoudre l'emplacement réel du répertoire.
Vous avez déjà accès aux fichiers d'un sous-répertoire du répertoire de travail, donc /add-dir ne charge que ses skills, commandes et agents. Avant de les charger, Claude Code vérifie que l'emplacement réel du répertoire, liens symboliques résolus, se trouve à l'intérieur du répertoire de travail. Lorsque Claude Code ne peut pas résoudre cet emplacement, il ne charge rien et affiche ce message :
packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.
Marche à suivre :
- Vérifiez que le chemin désigne un véritable répertoire à l'intérieur du répertoire de travail, puis exécutez de nouveau
/add-dir - Le message ne modifie pas votre accès aux fichiers ; il signale seulement que le contenu
.claude/du répertoire n'a pas été chargé
Avant la v2.1.261, ce message apparaissait aussi pour chaque /add-dir <subdirectory> lorsque le répertoire de travail se trouvait sur un montage automatique /net/<host>, où Claude Code refuse par conception de résoudre les chemins ; le répertoire était correct et réessayer ne pouvait pas aider.
Workspace not trusted au démarrage de Remote Control
[!NOTE]
Si
claude ultrareviewa affichéError: Workspace not trusted, consultez plutôt Workspace not trusted lors de l'exécution de claude ultrareview.
Vous avez démarré le mode serveur de Remote Control avec claude remote-control ou son alias claude rc dans un répertoire que vous n'avez pas approuvé, et la commande n'a pas pu vous demander si vous lui faites confiance. Par exemple, l'entrée standard ou la sortie standard de la commande n'est pas un terminal parce que l'une d'elles est redirigée ou passée par un pipe. La commande se termine avec le code 1 :
Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.
Deux variantes qui commencent aussi par Error: Workspace not trusted. apparaissent dans un terminal trop petit pour afficher ce qu'active l'approbation du répertoire, ou dans un terminal qui n'a pas indiqué sa taille. Agrandissez la fenêtre ou passez à une fenêtre de terminal normale, puis exécutez de nouveau claude rc.
Dans votre répertoire personnel, le message est différent, car la boîte de dialogue de confiance de l'espace de travail n'enregistre jamais la confiance pour le répertoire personnel, donc l'accepter à cet endroit ne peut pas satisfaire cette vérification. Avant la v2.1.214, le répertoire personnel affichait le message ci-dessus, dont le conseil ne peut pas aboutir à cet endroit.
Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).
Si vous répondez n ou appuyez sur Enter à la question Trust <directory>?, la commande affiche un message Remote Control did not start qui mentionne le répertoire et se termine avec le code 1. Exécutez de nouveau claude rc pour répondre y.
Marche à suivre :
- Approuvez d'abord le répertoire depuis un terminal : exécutez
claude rcà cet endroit et répondezy, ou exécutezclaudeà cet endroit et acceptez la boîte de dialogue de confiance de l'espace de travail, puis exécutez de nouveau votre commande d'origine - Dans votre répertoire personnel, placez-vous dans un répertoire de projet et démarrez Remote Control à cet endroit
Avant la v2.1.284, la commande ne posait jamais la question, même dans un terminal.
Workspace not trusted lors de l'exécution de claude ultrareview
Dans un dossier que vous n'avez pas approuvé, lorsque claude ultrareview ne peut pas vous demander si vous lui faites confiance, l'exécution se termine avec le code 1 avant le début de la revue :
Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog. Or, in a script or CI job, pass `--trust-workspace` to trust the folder for this run only.
Par exemple, la sous-commande ne peut pas poser la question lorsque son entrée standard ou sa sortie standard n'est pas un terminal. Envoyer la sortie vers un fichier, comme dans claude ultrareview --json > findings.json, signifie que la sortie standard n'est pas un terminal.
Marche à suivre :
- Dans un script ou une tâche CI, ajoutez
--trust-workspacepour approuver le dossier pour cette exécution :claude ultrareview --trust-workspace. Ajoutez-le uniquement pour du code auquel vous faites confiance, car git et Claude Code peuvent alors exécuter des programmes mentionnés dans la configuration git et les paramètres de projet du dossier. Pour une pull request dont vous ne faites pas confiance au code, exécutez la revue depuis une branche de confiance. - Sur votre propre machine, exécutez
claudedans ce dossier et acceptez la boîte de dialogue de confiance de l'espace de travail, puis exécutez de nouveau votre commande d'origine
Chacun de ces messages de claude ultrareview signifie qu'aucune revue n'a démarré et que le code de sortie est 1 :
Error: Workspace not trusted. This terminal ...: le terminal n'a indiqué aucun nombre de lignes et de colonnes, ou ne peut pas afficher la question de confiance et ses avertissements. Agrandissez-le ou utilisez un terminal qui indique sa taille, puis exécutez de nouveauclaude ultrareview. En dehors de votre répertoire personnel, vous pouvez aussi exécuterclaudeune fois dans ce dossier et accepter la boîte de dialogue de confiance, afin que les exécutions suivantes à cet endroit ne posent pas la question.Error: Workspace not trusted. <folder> is your home directory: comme la confiance pour votre répertoire personnel n'est jamais enregistrée, exécuter d'abordclaudeà cet endroit ne peut pas aider. Exécutez plutôtclaude ultrareviewdepuis un répertoire de projet, après y avoir exécutéclaudeune fois pour accepter la boîte de dialogue de confiance, ou ajoutez--trust-workspace.No answer in time.suivi deError: Workspace not trusted: la questionTrust <folder>? [y/N]est restée sans réponse pendant 5 minutes. Exécutez de nouveauclaude ultrareviewet répondez-y.Ultrareview did not start: <folder> is not trusted: vous avez refusé à la questionTrust <folder>? [y/N], par exemple en répondantnou en appuyant sur Enter. Pour démarrer la revue, exécutez de nouveauclaude ultrareviewet répondezy.Ultrareview did not start: `--trust-workspace` takes no value: autre chose qu'un flag suit--trust-workspace, comme un numéro de PR oufalse. Si vous ne faites pas confiance au dossier, omettez le flag. Pour lui faire confiance pour cette exécution, placez le numéro de PR ou la branche de base avant le flag :claude ultrareview 1234 --trust-workspace.
Avant la v2.1.309, claude ultrareview n'acceptait pas --trust-workspace.
Not carried over to the sessions Remote Control starts
Vous avez démarré Remote Control avec un flag claude global placé avant le verbe remote-control, un flag qui restreindrait ou configurerait les sessions que Remote Control démarre, comme --settings, --setting-sources, --permission-mode, --disallowed-tools ou --mcp-config. Un flag placé avant le verbe n'atteint jamais ces sessions. Claude Code refuse plutôt de démarrer, en mentionnant le flag :
Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).
Claude Code ne refuse pas les flags globaux qu'il est sans danger d'ignorer, comme --verbose, --model, ou un --session-id ou --plugin-dir injecté par un wrapper : il les ignore et Remote Control démarre.
Claude Code refuse aussi de démarrer pour un flag global qu'il ne reconnaît pas encore comme sans danger, donc un flag ajouté dans une version plus récente peut apparaître dans ce message jusqu'à ce qu'une version ultérieure le marque comme sans danger.
Marche à suivre :
- Retirez le flag placé avant le verbe et passez les options propres à Remote Control après celui-ci ;
claude remote-control --helples liste - Lorsque le flag refusé est
--permission-mode, exécutezclaude remote-control --permission-mode <mode>pour définir le mode de permission des sessions que Remote Control démarre
Avant la v2.1.248, claude remote-control n'acceptait pas ses propres flags lorsqu'un flag global venait en premier, et la commande échouait avec une erreur unknown option.
--sandbox or --no-sandbox is not supported by claude remote-control
Cette erreur signifie que la commande qui démarre votre serveur Remote Control passe --sandbox ou --no-sandbox après remote-control, et claude remote-control n'accepte aucun de ces flags. Le serveur se termine avec le code 1 au lieu de démarrer :
Error: --sandbox is not supported by claude remote-control. The flag had no effect and was removed. To sandbox sessions, set sandbox.enabled to true in settings.
Error: --no-sandbox is not supported by claude remote-control. The flag had no effect and was removed. Remove it from the command.
Marche à suivre :
- Retirez le flag de la commande, y compris dans un script ou une définition de service qui démarre le serveur pour vous, puis exécutez-la de nouveau
- Pour exécuter dans un sandbox les sessions que le serveur démarre, activez le sandboxing en définissant
sandbox.enabledsurtruedans un fichier de paramètres
Les deux flags ont été retirés de claude remote-control dans la v2.1.300, donc une commande écrite pour une version antérieure peut encore en contenir un.
claude import is not yet available in this build
Vous avez exécuté claude import, et Claude Code a constaté que le flux d'import était désactivé, donc la commande se termine avec le code 1 au lieu de démarrer l'import. Avant la v2.1.222, un build dont le flux d'import était désactivé traitait import comme un prompt et démarrait une session interactive au lieu d'afficher ce message.
`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.
Claude Code active claude import via un feature flag qu'il récupère auprès d'Anthropic et met en cache sur le disque. Ce message signifie que la valeur en cache est désactivée. La cause est généralement l'une des suivantes :
- Vous n'avez pas démarré de session depuis l'installation, donc Claude Code n'a pas encore récupéré le flag. Le premier
claude importpeut afficher ce message même lorsque la fonctionnalité vous est disponible. - Vous utilisez Claude Code via Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry ou Claude Platform on AWS, ou via une passerelle Claude apps. Claude Code ne récupère pas les feature flags dans ces sessions, donc
claude importreste indisponible. - Vous avez défini
DISABLE_TELEMETRY,DO_NOT_TRACK,DISABLE_GROWTHBOOKouCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, qui désactivent la récupération des feature flags, doncclaude importreste indisponible.
Marche à suivre :
- Sur une nouvelle installation, démarrez
claude, attendez le chargement de la session, quittez et exécutez de nouveauclaude import - Là où la récupération des feature flags reste désactivée, mettez en place la configuration vous-même : ajoutez des serveurs MCP avec
claude mcp add, et créez les fichiersCLAUDE.md, les skills et commandes et les sous-agents que vous souhaitez reprendre. Le message mentionne aussi~/.claude/settings.json. Parmi la configuration que reprendclaude import, ce fichier ne contient que le mode de permission ; Claude Code n'y lit pas les serveurs MCP.
Could not read Claude Code config
Vous avez exécuté claude import alors que Claude Code ne pouvait pas analyser ~/.claude.json, le fichier où il stocke les détails de votre compte et l'état par projet. La sous-commande lit ce fichier pour vérifier la disponibilité mais n'affiche pas la boîte de dialogue de récupération qu'affiche la session interactive, donc elle se termine avec le code 1. Avant la v2.1.222, claude import avec un fichier de configuration illisible démarrait une session interactive, dont la boîte de dialogue de récupération traitait le fichier.
Could not read Claude Code config — run `claude` with no arguments to recover it.
Marche à suivre :
- Exécutez
claudesans arguments. Claude Code détecte le fichier invalide et propose de le réinitialiser. Exécutez ensuite de nouveauclaude import. - Pour conserver les modifications manuelles que vous avez apportées, corrigez plutôt la syntaxe JSON de
~/.claude.jsondans un éditeur, puis relancezclaude import
Could not import a server from Claude Desktop
Claude Code n'a pas pu ajouter l'un des serveurs que vous avez sélectionnés dans claude mcp add-from-claude-desktop. La commande importe quand même les autres serveurs sélectionnés et affiche une ligne par serveur qu'elle n'a pas pu ajouter. Avant la v2.1.205, le premier serveur en échec arrêtait l'import.
Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.
Le texte après le nom du serveur est la raison. La plus courante est la vérification du nom : Claude Desktop autorise dans les noms de serveurs des caractères, comme les espaces et les points, que claude mcp restreint aux lettres, chiffres, traits d'union et tirets bas. Parmi les autres raisons figurent une configuration de serveur qui échoue à la validation et un serveur bloqué par la politique MCP de votre organisation.
Marche à suivre :
- Renommez le serveur dans
claude_desktop_config.jsonpour n'utiliser que des lettres, chiffres, traits d'union et tirets bas, puis exécutez de nouveauclaude mcp add-from-claude-desktop - Ajoutez ce serveur directement avec
claude mcp addouclaude mcp add-jsonsous un nom valide. Consultez Importer des serveurs MCP depuis Claude Desktop.
Cannot add MCP server to the managed scope
Vous avez exécuté claude mcp add ou claude mcp add-json avec --scope managed. Cette portée contient les serveurs que votre organisation fournit via le paramètre géré managedMcpServers. Claude Code ne les lit que depuis les paramètres gérés, donc la commande ne peut pas écrire de serveur dans cette portée.
Cannot add MCP server to scope: managed
Marche à suivre :
- Ajoutez le serveur à une portée dans laquelle vous pouvez écrire :
local,userouproject. Sans--scope, la commande utiliselocal. Consultez Portées d'installation MCP - Pour fournir le serveur à tous les utilisateurs de votre organisation, ajoutez-le à
managedMcpServersdans les paramètres gérés que vous déployez
Impossible d'ajouter un serveur MCP lorsque les paramètres gérés n'autorisent que les serveurs de plugins
Vous avez exécuté claude mcp add ou claude mcp add-json alors que les paramètres gérés de votre organisation définissent strictPluginOnlyCustomization sur true ou sur une liste qui inclut mcp. Avec ce paramètre, Claude Code ne charge pas les serveurs MCP depuis ~/.claude.json ou .mcp.json, donc la commande se termine avec le code 1 au lieu d'enregistrer un serveur qui ne serait jamais chargé :
Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide. Install a plugin that provides this server, or ask your administrator to make it available.
claude mcp add-from-claude-desktop signale chaque serveur que vous sélectionnez comme non importé, avec ce message comme raison. /import signale ce message pour chaque serveur MCP qu'il tente d'ajouter et importe quand même les autres éléments qu'il a trouvés.
Avant la v2.1.284, ces commandes enregistraient le serveur et signalaient un succès, et le serveur n'était jamais chargé.
Marche à suivre :
- Installez un plugin qui fournit le serveur
- Demandez à votre administrateur de distribuer le serveur dans un plugin, ou de le fournir via
managedMcpServerss'il s'agit d'un serveur HTTP ou SSE distant
Can't read .mcp.json
Une commande qui lit le fichier .mcp.json du projet, comme claude mcp add ou claude mcp add-json avec --scope project, ou claude mcp remove, a constaté que le fichier de votre répertoire courant n'est pas un fichier ordinaire ou dépasse 2 MiB, donc elle se termine avec cette erreur au lieu de lire le fichier.
Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.
Avant la v2.1.257, une FIFO à l'emplacement de .mcp.json laissait la commande en attente indéfiniment sans sortie, et un lien symbolique vers un fichier de périphérique tel que /dev/zero faisait croître la mémoire jusqu'à ce que le processus soit tué.
Marche à suivre :
- Vérifiez ce qui se trouve à l'emplacement
.mcp.jsondans votre répertoire courant. Remplacez-le par un fichier JSON ordinaire au format de la portée projet, ou supprimez-le, puis exécutez de nouveau la commande.
Le serveur MCP n'a pas été enregistré ou supprimé
Vous avez exécuté claude mcp add, claude mcp add-json ou claude mcp remove pour un serveur de portée user ou local. Les deux portées sont stockées dans ~/.claude.json, et la modification ne figure pas dans ce fichier lorsque Claude Code le relit après l'écriture. La commande se termine avec cette erreur au lieu de sa ligne de succès.
MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.
Après une suppression, le message indique was not removed from et se termine par then remove the server again. Pour un serveur de portée local, le chemin est suivi du répertoire de projet auquel appartient l'entrée, sous la forme (local scope for /path/to/project).
Avant la v2.1.283, claude mcp add, claude mcp add-json et claude mcp remove signalaient un succès même lorsque la modification n'atteignait pas le fichier.
Marche à suivre :
- Rendez accessible en écriture le fichier mentionné par le message, ou exécutez la commande en dehors du sandbox, puis exécutez de nouveau la même commande d'ajout ou de suppression.
Le serveur MCP n'a peut-être pas été enregistré ou supprimé
Vous avez exécuté claude mcp add, claude mcp add-json ou claude mcp remove pour un serveur de portée user ou local, et Claude Code n'a pas pu relire ~/.claude.json pour confirmer la modification. La modification peut se trouver ou non sur le disque. Le texte entre parenthèses est l'erreur de cette lecture.
MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.
Après une suppression, le message indique may not have been removed et se termine par then remove the server again if it is still listed.
Avant la v2.1.283, les commandes signalaient un succès même lorsque la modification ne pouvait pas être confirmée.
Marche à suivre :
- Exécutez
claude mcp get <name>pour vérifier si la modification se trouve sur le disque. Pour un serveur de portéelocal, exécutez-la depuis le répertoire de projet auquel appartient le serveur, car la portée locale est propre à chaque projet. - Si le serveur est absent après un ajout, ou toujours listé après une suppression, exécutez de nouveau la même commande d'ajout ou de suppression.
Server is Anthropic-hosted and doesn't support local OAuth
Vous avez lancé une connexion pour un serveur MCP dont l'URL pointe vers un hôte de connecteur hébergé par Anthropic qui s'authentifie via un fournisseur d'identité tiers. Ces hôtes incluent microsoft365.mcp.claude.com, gmail.mcp.claude.com et gcal.mcp.claude.com. Claude Code refuse de démarrer son flux OAuth local pour ces hôtes, aussi bien depuis le panneau /mcp que depuis claude mcp login, car leur connexion ne fonctionne que via claude.ai.
"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.
Marche à suivre :
- Supprimez votre entrée avec
claude mcp remove <name>, afin qu'elle ne puisse pas masquer le connecteur claude.ai à la même URL - Après l'avoir supprimée, connectez le service sur claude.ai/customize/connectors, en étant connecté au compte que vous utilisez dans Claude Code. Une fois connecté, le connecteur apparaît automatiquement dans Claude Code si votre méthode d'authentification active est une connexion avec un abonnement claude.ai
Server rejected the Authorization header minted by the configured headersHelper
Un serveur MCP dont le headersHelper fournit l'en-tête Authorization a répondu à la connexion avec HTTP 401 ou 403, donc Claude Code signale la connexion comme ayant échoué. Comme le helper fournit l'en-tête Authorization, Claude Code ne se rabat pas sur OAuth pour ce serveur :
Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.
Claude Code réexécute le helper à chaque tentative de connexion, donc une nouvelle tentative après un rejet transitoire, comme une situation de concurrence lors de la rotation d'un jeton, peut réussir avec des identifiants frais.
Marche à suivre :
- Exécutez vous-même la commande
headersHelperde la même manière que Claude Code : depuis le répertoire dans lequel Claude Code l'exécute, avec les variables d'environnement que Claude Code définit pour elle, et sans les variables d'identifiants que Claude Code supprime pour un serveur provenant d'un fichier.mcp.jsonde projet, d'un plugin ou d'un fichier d'agent de projet. Vérifiez qu'elle affiche une valeurAuthorizationque l'endpoint du serveur accepte - Après avoir corrigé le helper ou la source de ses identifiants, sélectionnez le serveur dans
/mcpet choisissez Reconnect
Avant la v2.1.248, Claude Code lançait la découverte OAuth pour un serveur dont le helper fournissait l'en-tête Authorization. Cette découverte pouvait échouer avec Incompatible auth server: does not support dynamic client registration au lieu de signaler les identifiants rejetés.
MCP server rejected the elicitation capability
Un serveur MCP construit avec Java MCP SDK 0.11.0 à 0.17.0 a refusé la connexion. Ces versions du SDK ne peuvent pas analyser les modes d'elicitation form et url que Claude Code déclare lors de sa poignée de main. Le message est le suivant :
This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability. Set "bareElicitationCapability": true for it, or upgrade to Java MCP SDK 0.17.1+ (Spring AI 1.0.7+ or 1.1.6+).
Marche à suivre :
- Mettez à niveau le serveur vers Java MCP SDK 0.17.1 ou ultérieur, ou vers l'une des versions de Spring AI mentionnées par le message
- Ou ajoutez
"bareElicitationCapability": trueà l'entrée de ce serveur dans votre configuration MCP, puis redémarrez Claude Code. Le champ est accepté sur les entrées stdio,sse,httpetwset nécessite Claude Code v2.1.281 ou ultérieur
Cette entrée .mcp.json définit le champ pour un serveur HTTP :
{
"mcpServers": {
"inventory": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"bareElicitationCapability": true
}
}
}
Après le redémarrage, /mcp affiche le serveur comme connecté. Claude Code ne déclare le mode form qu'à ce serveur, donc supprimez le champ une fois le serveur mis à niveau.
Un serveur peut aussi échouer avec son propre texte d'erreur, par exemple un texte contenant Unrecognized field "form". Les mêmes corrections s'appliquent.
MCP permission prompt tool not found
L'outil que vous avez passé à --permission-prompt-tool ne figurait pas parmi les outils MCP connectés lorsque l'exécution a eu besoin pour la première fois d'une décision de permission, soit parce que son serveur ne s'est jamais connecté, soit parce qu'aucun serveur connecté n'expose d'outil portant ce nom. Claude Code envoie quand même votre prompt : l'exécution en mode non interactif se termine avec cette erreur, et le code de sortie 1, au premier appel d'outil, donc elle ne produit aucune réponse bien que la requête ait été effectuée. Avant le premier prompt, Claude Code attend que ce serveur se connecte, jusqu'au délai d'expiration de connexion par serveur de 30 secondes défini par MCP_TIMEOUT. Avant la v2.1.206, le démarrage n'attendait pas que le serveur ait fini de se connecter, donc un serveur sain mais lent à démarrer produisait aussi cette erreur.
Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none
La liste après Available MCP tools: mentionne les outils MCP qui étaient connectés.
Marche à suivre :
- Vérifiez que le serveur démarre et reste connecté : exécutez
claude mcp listdans le même répertoire et confirmez que le serveur est listé comme connecté - Confirmez que le nom de l'outil correspond au nom
mcp__<server>__<tool>exposé par le serveur - Si le serveur a besoin de plus de 30 secondes pour démarrer, augmentez
MCP_TIMEOUT
OAuth callback port is already in use
Lorsque vous vous connectez à un serveur MCP distant avec OAuth, Claude Code démarre un listener local pour recevoir le callback de connexion. Si le port dont ce listener a besoin est occupé par un autre processus, la connexion échoue avec ce message. Cela se produit surtout avec un port de callback fixe défini via la variable MCP_OAUTH_CALLBACK_PORT ou --callback-port, car sans celui-ci Claude Code choisit un port disponible.
OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.
Sur Windows, la commande suggérée est plutôt netstat -ano | findstr :<port>.
Marche à suivre :
- Exécutez la commande indiquée dans le message pour trouver le processus qui occupe le port, puis arrêtez-le ou attendez qu'il se termine
- Si un autre programme a besoin de ce port en permanence, enregistrez une URI de redirection différente auprès du serveur et définissez son port avec
MCP_OAUTH_CALLBACK_PORTou--callback-port, selon celui que vous utilisez - Relancez ensuite la connexion, par exemple en sélectionnant le serveur dans
/mcp
No available ports for OAuth redirect
Lorsque vous vous connectez à un serveur MCP distant avec OAuth, Claude Code démarre un listener local pour recevoir le callback de connexion. La connexion échoue avec ce message lorsque Claude Code ne peut pas lier de port local pour celui-ci. Quelque chose sur la machine l'empêche d'écouter sur 127.0.0.1, par exemple un logiciel de sécurité ou une politique de sandbox qui interdit les listeners locaux.
No available ports for OAuth redirect
Avant la v2.1.268, Claude Code ne se rabattait pas sur un port attribué par le système d'exploitation, donc le message apparaissait aussi lorsque seuls les ports qu'il choisissait lui-même ne pouvaient pas être liés. Cela peut se produire sur des hôtes Windows où Hyper-V réserve des plages de ports qui couvrent les ports parmi lesquels Claude Code choisit.
Marche à suivre :
- Vérifiez si un logiciel de sécurité ou une politique de sandbox empêche les processus d'écouter sur
127.0.0.1, et autorisez Claude Code à lier un port local - Relancez ensuite la connexion, par exemple en sélectionnant le serveur dans
/mcp
/security-review échoue sans origin/HEAD
/security-review construit son contexte de revue en calculant le diff entre votre branche et origin/HEAD, la référence locale qui enregistre quelle branche est la branche par défaut de votre remote origin. Lorsque cette référence n'existe pas, les commandes git qui rassemblent le diff échouent et la revue s'arrête avant de commencer.
Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]
fatal: ambiguous argument 'origin/HEAD...': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Le message peut citer git log ou une autre commande git diff à la place. Git ne crée origin/HEAD que lorsque le remote annonce une branche par défaut et que votre refspec de fetch la couvre, ce que fait un git clone complet d'un remote comportant des commits. La référence est absente dans ces configurations :
- Une copie de travail mono-branche ou de CI, qui récupère un refspec trop étroit
- Un remote dont le HEAD côté serveur pointe vers une branche que personne n'a poussée
- Un dépôt sans remote
origin, ou un remote que vous n'avez jamais récupéré
Claude Code affiche la même erreur pour tout skill qui injecte du contexte dynamique, et une commande injectée en échec interrompt l'invocation de ce skill.
Des messages apparentés surviennent avant même l'exécution de la commande :
Shell command permission check failed for pattern "...": la vérification de permission de la commande ne l'a pas autorisée. Vérifications de permission sur les commandes injectées décrit quels résultats provoquent l'interruption dans chaque mode de permission et comment pré-approuver une commande avecallowed-toolsSkill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found: le frontmatter du skill exige bash sur une machine qui ne l'a pas. Installez Git for Windows ou modifiez le frontmatter enshell: powershell. Consultez Comment s'exécutent les commandes injectées
Marche à suivre :
- Créez la référence en indiquant la branche par défaut de votre remote :
git remote set-head origin <default-branch>. Cela fonctionne dès lors que la référence de suivi localeorigin/<default-branch>existe. Si elle n'existe pas, comme dans les clones mono-branche, récupérez d'abord la branche : exécutezgit remote set-branches --add origin <branch>, puisgit fetch origin, puis relancez la commande set-head. Relancez/security-review. - Si vous préférez ne pas indiquer la branche, exécutez
git fetch originpuisgit remote set-head origin --auto, qui demande au remote quelle est sa branche par défaut. Cela échoue avecerror: Cannot determine remote HEADlorsque le remote n'annonce aucune branche par défaut, parce qu'il est vide ou que son HEAD pointe vers une branche que personne n'a poussée ; indiquez alors explicitement la branche. Cela échoue avecerror: Not a valid reflorsque votre clone ne récupère pas cette branche ; élargissez d'abord le refspec comme indiqué ci-dessus. - Si le dépôt n'a pas de remote, ajoutez-en un avec
git remote add origin <url>et effectuez un fetch avant de créer la référence. Si le remote est vide, poussez d'abord votre branche avecgit push -u origin HEADet indiquez cette branche dans la commande set-head ;origin/HEADpointe alors vers la branche que vous venez de pousser, donc/security-reviewvoit un diff vide jusqu'à ce que la branche diverge de celle-ci.
Aucune commande shell d'un skill ou d'une commande n'a été exécutée
No shell command in <name> was run signifie qu'une commande de contexte dynamique !`<command>` dans ce fichier de skill ou de commande contient un caractère que l'outil Bash ou PowerShell refuse :
- L'un ou l'autre outil : un caractère de contrôle brut autre qu'une tabulation ou un saut de ligne
- Outil PowerShell : également U+FEFF ou U+180E
Le message se termine par la commande refusée, en affichant chaque caractère refusé sous la forme �, comme dans cet exemple avec l'outil Bash :
No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.
build.sh --target�dist
Marche à suivre :
- Repérez chaque
�dans la commande citée à la fin du message. Supprimez le caractère qu'il représente du fichier de skill ou de commande, ou des arguments ou options substitués dans le fichier.
Input must be provided when using --print
claude sans argument a besoin que stdout soit un terminal pour démarrer l'interface interactive. Lorsque stdout est redirigé, ou que la console n'est pas un véritable terminal, comme PowerShell ISE et certains volets de sortie d'IDE, claude s'exécute plutôt en mode non interactif. C'est le même mode que claude -p, qui exige un prompt, donc le message mentionne --print même si vous n'avez pas passé le flag. Passer -p/--print sans prompt et sans rien envoyer par pipe sur stdin produit la même erreur partout.
Error: Input must be provided either through stdin or as a prompt argument when using --print
Marche à suivre :
- Pour un usage interactif, exécutez
claudedans un véritable terminal : Windows Terminal ou la console PowerShell plutôt qu'ISE, et le terminal intégré de votre IDE plutôt qu'un volet de sortie - Pour un usage ponctuel, passez le prompt :
claude -p "your question", ou envoyez-le par pipe avececho "your question" | claude -p
Claude Code can't read the keyboard here
Vous avez exécuté claude sans -p, ce qui démarre une session interactive, mais son entrée standard n'est pas un terminal. Quelque chose l'a redirigée ou passée par un pipe, ou le programme qui a lancé claude a fourni son propre flux d'entrée.
Une session interactive a besoin d'un terminal pour lire vos frappes au clavier, et ce que fait Claude Code sans terminal dépend de votre plateforme :
- Windows : Claude Code affiche le message sur stderr et se termine avec le code 1 au lieu de démarrer l'interface
- macOS et Linux : Claude Code lit vos frappes au clavier depuis
/dev/ttyet démarre la session, avec le texte éventuellement reçu par pipe comme premier prompt. Vous voyez le message lorsque/dev/ttyne peut pas être ouvert, et sa première ligne mentionne/dev/ttyà la place de la formulation Windows.
Sur Windows, le message est le suivant :
Claude Code can't read the keyboard here: stdin is not a terminal (it is piped, redirected, or supplied by the program that launched claude), and on Windows it can't fall back to the console for input yet.
Run claude directly in Windows Terminal, PowerShell, or Command Prompt, without piping or redirecting its input.
To send text as a prompt and print the reply instead, add -p; it also works with --continue and --resume <session-id> (for example: type notes.md | claude -p --continue).
Marche à suivre :
- Pour travailler en mode interactif, exécutez
claudedirectement dans un terminal, sans pipe ni redirection de son entrée - Pour obtenir une réponse sans l'interface interactive, par exemple depuis un script, ajoutez
-pet fournissez le prompt en argument ou sur stdin, comme dansclaude -p "your question"ouecho "your question" | claude -p. Cela fonctionne aussi avec--continueet--resume <session-id>.
Avant la v2.1.287, Claude Code démarrait l'interface au lieu d'afficher ce message, puis soit n'affichait rien à l'écran, soit échouait avec une erreur contenant Raw mode is not supported.
Si vous voyez plutôt Raw mode is not supported pendant claude install, consultez Raw mode is not supported pendant l'installation.
Input contained only whitespace
En mode non interactif, Claude Code refuse un prompt composé entièrement d'espaces, de tabulations ou de sauts de ligne au lieu de l'envoyer, car l'API rejette les messages sans texte visible. Le message que vous voyez dépend de la provenance du prompt vide :
- Argument de prompt ou stdin reçu par pipe pour
claude -p:claudese termine avecError: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print - Message soumis à une session
--input-format stream-jsonou Agent SDK en cours : Claude Code termine le tour sans appeler le modèle et la session reste utilisable. Le refus arrive sous forme de message informatif et comme texte de résultat du tour :Blank prompt — the message was only whitespace, so nothing was sent to the model.
Avant la v2.1.229, Claude Code envoyait le message composé uniquement d'espaces à l'API, qui rejetait la requête avec une erreur 400.
Marche à suivre :
- Incluez du texte visible dans le prompt. Si un script construit le prompt à partir d'une variable ou d'un fichier, vérifiez que la source n'est pas vide avant d'appeler Claude Code.
stream-json input carried over 256M characters with no newline
Votre programme a envoyé plus de 268 435 456 caractères sur stdin sans saut de ligne à une exécution claude -p --input-format stream-json, donc Claude Code affiche cette erreur sur stderr et se termine avec le code 1 au lieu de mettre davantage d'entrée en tampon. Le message exprime cette limite sous la forme 256M. Avant la v2.1.257, Claude Code mettait une telle entrée en tampon sans limite, faisant croître la mémoire jusqu'à ce que le processus plante ou soit tué.
Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.
Une entrée aussi longue sans saut de ligne signifie généralement que le producteur n'est pas du tout un producteur stream-json, comme un fichier binaire ou une sortie de log en texte brut envoyée par pipe par erreur. Un message unique dépassant la limite échoue à la même vérification.
Marche à suivre :
- Vérifiez ce qui est envoyé par pipe sur stdin. Avec
--input-format stream-json, chaque message doit être une ligne JSON unique terminée par un saut de ligne - Pour envoyer plutôt du texte brut, supprimez
--input-format stream-json;claude -plit par défaut un prompt en texte brut depuis stdin
Unknown command
Dans une session de terminal interactive, vous avez soumis un nom commençant par / qui ne correspond à aucune commande de cette session, donc Claude Code signale le nom au lieu d'exécuter quoi que ce soit :
Unknown command: /hepl. Did you mean /help?
Claude Code suggère le nom de commande ou l'alias le plus proche parmi ceux que liste le menu dans cette session. Lorsque rien n'est proche, le message s'arrête après le nom. La cause est généralement l'une des suivantes :
- Une faute de frappe, comme
/heplpour/help. Comment le menu des commandes fait correspondre ce que vous saisissez explique comment choisir une correspondance proche avant de soumettre - Une commande qui existe mais n'est pas disponible dans cette session parce qu'une condition n'est pas remplie, comme votre plateforme, votre offre ou votre méthode d'authentification. Consultez l'entrée pour
/web-setup,/scheduleou/auto-mode-setup. Certaines commandes répondent avec leur propre message lorsque la politique de votre organisation les désactive, commeCloud sessions are disabled by your organization's policy - Une commande provenant d'un plugin ou d'un serveur MCP qui n'est pas installé ou connecté dans cette session
Claude Code ne répond de cette manière à un nom / sans correspondance que dans une session de terminal interactive. Dans toutes les autres sessions, il envoie plutôt le prompt à Claude comme un message normal, accompagné d'une note indiquant que la commande ne s'est pas exécutée et d'une liste des commandes que Claude peut exécuter dans la session. Ces sessions incluent :
- Les exécutions
-p - Les applications Agent SDK
- L'onglet Code de l'application Desktop
- Le panneau de chat de l'extension VS Code
- Les sessions cloud et les tâches planifiées cloud
Pour une commande intégrée qui ne peut pas s'exécuter dans l'une de ces sessions, Claude Code répond quand même que la commande n'est pas disponible au lieu de l'envoyer à Claude. Avant la v2.1.274, seules les sessions cloud et les tâches planifiées cloud envoyaient un nom sans correspondance à Claude. Avant la v2.1.273, elles répondaient aussi Unknown command.
Claude Code ne traite pas comme une commande chaque prompt qui commence par /. Il envoie le prompt à Claude comme un message normal lorsque le premier mot après le / commence par un signe de ponctuation, comme le /-- qui ouvre un commentaire de documentation Lean, ou est un chemin tel que /var/log/syslog.
Avant la v2.1.236, si vous appuyiez sur Enter alors que le menu des commandes listait une correspondance proche du nom saisi, Claude Code exécutait cette correspondance, donc une faute de frappe telle que /hepl exécutait /help au lieu de produire ce message.
Marche à suivre :
- Exécutez le nom suggéré, ou saisissez
/suivi d'une partie du nom pour voir ce qui est disponible dans cette session - Si Claude Code signale comme inconnue une commande documentée, consultez sa ligne dans la référence des commandes pour connaître la condition qu'elle mentionne
Diff is too large for ultrareview
Le diff entre votre branche et la branche de base, modifications non commitées et indexées comprises, dépasse les limites de taille d'un ultrareview, si bien que /code-review ultra et la sous-commande claude ultrareview refusent la revue avant le démarrage de la session cloud. Une revue refusée ne consomme pas d'exécution gratuite et ne facture pas de crédits d'utilisation. Le message indique les limites en vigueur, la taille de votre diff et les fichiers qui contribuent le plus aux lignes modifiées. Avant la v2.1.216, le message n'affichait que les statistiques brutes du diff.
Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.
La revue d'une pull request applique les mêmes limites ; cette forme du message commence par PR #<N> is too large for ultrareview et indique le nombre de fichiers et de lignes de la PR.
Que faire :
- Passez une branche de base plus proche de votre travail, par exemple
/code-review ultra develop, afin que la revue ne couvre que le diff par rapport à cette branche - Divisez la modification en branches plus petites et lancez une revue pour chacune. Les fichiers indiqués dans le message contribuent le plus aux lignes modifiées : commencez donc par les déplacer dans leur propre branche.
Could not find merge-base with the base branch
/code-review ultra et la sous-commande claude ultrareview examinent le diff entre votre branche et une branche de base, ce qui nécessite un commit commun aux deux. Lorsque git merge-base n'en trouve aucun, Claude Code refuse la revue avant le démarrage de la session cloud. Sur un clone dont Claude Code peut vérifier qu'il est complet, avec au moins une branche, il se rabat sur la revue de tous les fichiers suivis au lieu de refuser. Vous voyez ce refus lorsque la branche de base est introuvable, lorsque Claude Code ne peut pas vérifier que votre clone est complet, ou dans le rare dépôt où le diff de l'arborescence entière n'est pas possible, comme avec le format d'objet SHA-256.
Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.
L'indication qui suit la première phrase dépend de ce que Claude Code a observé :
- Vous n'avez pas passé de branche de base : Claude Code a effectué la comparaison avec la branche par défaut du dépôt et suggère de passer explicitement votre branche de base, comme dans l'exemple ci-dessus
- Vous avez passé une branche de base déjà présente dans votre clone : l'indication est
Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`) - Vous avez passé une branche de base absente de votre clone : Claude Code l'a récupérée depuis origin avant la comparaison. L'indication est
<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`); lorsque Claude Code ne peut pas déterminer si votre clone est superficiel (shallow), il suggère plutôtgit fetch --unshallow origin. Avant la v2.1.221, l'indication suggéraitgit fetch --unshallow originpour chaque branche de base récupérée, et sur un clone complet cette commande échoue avecfatal: --unshallow on a complete repository does not make sense.
Que faire :
- Si une autre branche est votre véritable base, passez-la explicitement :
/code-review ultra <branch> - Si votre clone n'a peut-être pas l'historique complet, exécutez
git fetch --unshallow originet relancez la revue
Your checkout has no branches
Un checkout peut contenir des commits mais aucune branche : si vous exécutez git init suivi de git fetch <url> et git checkout FETCH_HEAD, vous obtenez un HEAD détaché sans aucune référence. Claude Code empaquette votre dépôt sous forme de bundle git pour le téléverser lors d'un ultrareview, et il ne peut pas créer de bundle d'un dépôt sans branche ni autre référence : /code-review ultra et la sous-commande claude ultrareview refusent donc la revue avant le démarrage de la session cloud.
Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.
Avant la v2.1.221, Claude Code tentait d'examiner tous les fichiers suivis de ce checkout, et le téléversement échouait.
Que faire :
- Créez une branche sur votre commit actuel avec
git checkout -b <name>, puis relancez la revue
No GitHub account is connected to your Claude account
Vous avez exécuté /code-review ultra <PR#> ou claude ultrareview <PR#>, et avant de créer la session cloud, Claude Code demande au serveur si le compte GitHub connecté à votre compte Claude peut accéder au dépôt de la PR. Aucun compte n'est connecté, ou la connexion a expiré : le clonage dans le cloud échouerait, et Claude Code refuse donc le lancement. Claude Code ne consomme pas d'exécution gratuite et ne facture pas de crédits d'utilisation pour un lancement refusé.
Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).
Lorsque /web-setup n'est pas disponible dans votre session, le message n'indique que le lien claude.ai.
Que faire :
- Exécutez
/web-setuppour connecter votre identifiant GitHub CLI à votre compte Claude, ou connectez un compte sur claude.ai/connect-github - Relancez la revue une minute après la connexion
Avant la v2.1.248, Claude Code n'effectuait pas cette vérification avant le lancement.
Your connected GitHub account can't see the repository
Vous avez exécuté /code-review ultra <PR#> ou claude ultrareview <PR#>, et le compte GitHub connecté à votre compte Claude ne peut pas lire le dépôt de la PR : le clonage dans le cloud échouerait, et Claude Code refuse donc le lancement. Claude Code ne consomme pas d'exécution gratuite et ne facture pas de crédits d'utilisation pour un lancement refusé.
Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.
Lorsque /web-setup n'est pas disponible dans votre session, le message n'indique que l'installation de l'application.
Que faire :
- Si votre CLI
ghlocale peut lire le dépôt, exécutez/web-setuppour connecter cet identifiant à votre compte Claude - Relancez la revue après la modification
Avant la v2.1.248, Claude Code n'effectuait pas cette vérification avant le lancement.
The GitHub App preflight failed transiently
Vous avez démarré une session cloud depuis un dépôt local, et deux étapes ont échoué ensemble. Claude Code n'a pas pu créer ni téléverser le bundle de votre dépôt. Avant le téléversement, il a vérifié si le service cloud peut cloner le dépôt depuis GitHub, et au lieu d'une réponse définitive, cette vérification s'est terminée par une erreur qu'une nouvelle tentative pourrait résoudre, comme une erreur réseau, un délai d'expiration dépassé ou une erreur serveur temporaire. Le message complet commence par ce qui a bloqué le bundle, par exemple Could not upload repo bundle (<error>), et se termine par la phrase sur la vérification préalable :
Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead
Que faire :
- Relancez la commande après un moment. Lorsque la vérification GitHub réussit, Claude Code peut démarrer la session à partir d'un clone GitHub, de sorte que l'échec du téléversement ne bloque plus le lancement
- Si les nouvelles tentatives continuent d'échouer, le début du message indique ce qui a bloqué le téléversement. Si vous pouvez corriger cette cause, corrigez-la afin que la session puisse plutôt démarrer depuis votre dépôt local
Avant la v2.1.251, Claude Code terminait le message par Please set up GitHub on https://claude.ai/code même lorsque la vérification GitHub n'avait échoué que de manière transitoire, et un conseil de configuration ne peut pas résoudre un échec transitoire.
Le téléversement du dépôt ne peut pas suivre un paramètre git
Vous avez démarré une session cloud qui téléverse votre dépôt local, ou un ultrareview d'une branche, et le téléversement ne peut pas suivre l'un des paramètres git qui déterminent quelles règles d'attributs s'appliquent à vos fichiers. Si le téléversement se poursuivait en ignorant une règle, un fichier que git transforme avant de le stocker, comme un fichier chiffré par un filtre clean, pourrait arriver dans le cloud tel qu'il est sur le disque. Claude Code refuse donc le téléversement, et rien n'est téléversé :
Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository’s .git/config or directly into your ~/.gitconfig, then retry.
Le message indique le paramètre et l'endroit où il est défini, et se termine par la correction correspondant à votre cas. Le même refus apparaît pour core.attributesFile et attr.tree, chacun avec sa propre correction.
Le message peut indiquer un fichier de configuration que votre configuration git inclut via une directive include ou includeIf, même lorsque la condition de cette directive ne s'applique pas à ce dépôt.
Que faire :
- Appliquez la correction indiquée dans la dernière phrase du message
GitHub isn't connected to your Claude account
Vous avez démarré une session cloud depuis votre dépôt local, par exemple avec /autofix-pr. Aucun compte GitHub n'est connecté à votre compte Claude, ou la connexion a expiré, et Claude Code refuse donc le lancement :
GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github
Lorsque vous créez une tâche planifiée cloud avec /schedule, le même message apparaît sous forme de note de configuration indiquant le dépôt ; cette note n'empêche pas la création de la tâche.
Que faire :
- Exécutez
/web-setuppour connecter votre identifiant GitHub CLI à votre compte Claude, ou connectez un compte sur claude.ai/connect-github. Consultez les options d'authentification GitHub pour connaître les différences entre les deux. - Relancez la commande une minute après la connexion
Avant la v2.1.268, Claude Code signalait cette situation comme un échec temporaire de la vérification de la Claude GitHub App et suggérait de réessayer ou d'installer l'application ; aucune de ces deux actions ne connecte un compte GitHub.
Une politique d'organisation GitHub bloque Claude
Vous avez exécuté dans le prompt de Claude Code une commande qui démarre une session cloud, comme /autofix-pr. Avant de créer la session, Claude Code vérifie l'accès de Claude au dépôt sur GitHub, et GitHub a refusé parce que votre organisation GitHub applique une politique qui bloque Claude. Claude Code s'arrête là et affiche un message indiquant la politique en cause.
Lorsque c'est une liste d'autorisation d'adresses IP qui bloque l'accès, le message est le suivant :
Your GitHub organization has an IP allowlist that is blocking Claude. Add Claude's IP ranges to your GitHub allowlist.
Lorsque c'est l'authentification unique (SSO) qui le bloque, le message est le suivant :
Your GitHub organization requires single sign-on. Disconnect and reconnect GitHub on the Connectors page in Claude on the web, click Authorize next to your organization when GitHub asks, then try again.
Lorsque c'est une politique d'accès conditionnel Microsoft Entra ID qui le bloque, le message est le suivant :
Your GitHub organization's identity provider (Microsoft Entra ID) has a Conditional Access policy that is blocking Claude. Ask your GitHub Enterprise or Entra ID admin to allow Claude in that policy.
Que faire :
- Liste d'autorisation d'adresses IP : demandez à un propriétaire de votre organisation ou entreprise GitHub d'autoriser les adresses IP sortantes d'Anthropic. Consultez Listes d'autorisation et pare-feu GitHub pour connaître les adresses et les paramètres GitHub à modifier.
- Authentification unique : déconnectez GitHub sur claude.ai/customize/connectors, puis reconnectez-le. Lorsque GitHub vous le demande, cliquez sur Authorize à côté de votre organisation afin que la nouvelle connexion soit autorisée pour son authentification unique.
- Politique d'accès conditionnel : demandez à votre administrateur GitHub Enterprise ou Microsoft Entra ID d'autoriser Claude dans cette politique
- Après la modification, exécutez à nouveau la commande
Single sign-on authorization needed
Vous avez exécuté /install-github-app et choisi un dépôt dont l'organisation impose l'authentification unique SAML. Avant la configuration, Claude Code vérifie votre accès au dépôt avec la CLI GitHub, et GitHub a refusé cette vérification parce que votre jeton gh n'est pas encore autorisé pour l'organisation. L'assistant affiche l'avertissement avec les étapes pour l'autoriser :
Single sign-on authorization needed
<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.
Que faire :
- Réautorisez votre identifiant GitHub CLI avec les scopes
repoetworkflowen exécutantgh auth refresh -h github.com -s repo,workflow, et autorisez l'organisation lorsque GitHub vous le demande pour l'authentification unique - Si vous vous authentifiez avec un jeton d'accès personnel dans
GH_TOKEN, ouvrez github.com/settings/tokens, sélectionnez Configure SSO sur le jeton et autorisez l'organisation - Exécutez à nouveau
/install-github-app
Avant la v2.1.273, Claude Code affichait à la place l'avertissement Admin permissions required dans cette situation.
Failed to resume the conversation
Claude Code n'a pas pu lire ni traiter la transcription enregistrée de la session que vous avez sélectionnée dans le sélecteur claude --resume ; il met donc fin au processus plutôt que de continuer dans un état partiellement chargé. Le message inclut la commande pour réessayer :
Failed to resume the conversation.
Run claude --resume <session-id> to retry, or claude to start a new session.
Claude Code se termine avec le code 1 après avoir affiché le message. Le sélecteur /resume au sein d'une session en cours signale plutôt Failed to resume conversation dans la conversation, et votre session actuelle continue de s'exécuter. Avant la v2.1.216, une reprise échouée depuis le sélecteur claude --resume restait indéfiniment sur l'indicateur Resuming conversation… au lieu d'afficher ce message.
Que faire :
- Exécutez
claude --resume <session-id>avec l'ID de session indiqué dans le message pour réessayer - Sur une version antérieure à la v2.1.285, si la nouvelle tentative échoue de la même manière, exécutez
claude updateet reprenez à nouveau la session. Ces versions font échouer la reprise lorsque la transcription enregistrée contient une entrée qu'elles ne peuvent pas lire. - Si la nouvelle tentative échoue encore, exécutez
claudepour démarrer une nouvelle session
No conversation found with the session ID
Vous avez passé un ID de session à claude --resume <session-id> et aucune transcription enregistrée ne lui correspond :
No conversation found with session ID: <session-id>
Claude Code se termine avec le code 1 après avoir affiché le message. Claude Code recherche l'ID d'abord dans le projet actuel, puis dans tous les autres projets de cette machine. Avant la v2.1.223, la recherche s'arrêtait au répertoire du projet actuel et à ses worktrees git : reprenez donc la session depuis le répertoire dans lequel elle a travaillé en dernier.
Causes courantes :
- ID mal saisi : pour une exécution non interactive, l'ID correspond au champ
session_idde la sortie--output-format json - Transcription supprimée : Claude Code supprime les transcriptions après la période de conservation, 30 jours par défaut, selon les règles de nettoyage de conservation
- Machine différente : Claude Code stocke les transcriptions localement ; reprenez donc la session sur la machine où elle s'est exécutée
- Copies en double : si vous avez copié un répertoire de projet sous
~/.claude/projectsde sorte que deux transcriptions portent le même ID, Claude Code affiche ce message plutôt que de reprendre arbitrairement l'une des copies
Que faire :
- Pour une session interactive, ouvrez le sélecteur de sessions avec
claude --resumeet appuyez surCtrl+Apour l'élargir à tous les projets de cette machine, puis sélectionnez la session - Les sessions créées avec
claude -pou l'Agent SDK n'apparaissent pas dans le sélecteur ; vérifiez donc à nouveau l'ID par rapport ausession_idaffiché par votre exécution d'origine
Windows reported an error (EBADF) when Claude Code read this session's transcript file
Vous avez repris une session sous Windows, son fichier de transcription enregistré s'est ouvert normalement, puis sa lecture a échoué avec l'erreur système EBADF. L'erreur système n'indique pas pourquoi la lecture a échoué ; le message suggère donc des causes probables et des solutions à essayer :
Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.
Le message suit la ligne d'échec propre à la commande, comme Failed to resume session <session-id>. Une commande claude --resume ou claude -p se termine avec le code 1 après l'avoir affiché. Après /resume au sein d'une session, votre session actuelle continue de s'exécuter.
Que faire :
- Excluez le dossier contenant vos transcriptions de session des logiciels qui analysent ou interceptent les lectures de fichiers, comme les outils de sécurité, de chiffrement ou de gestion des terminaux. Les transcriptions se trouvent par défaut sous
%USERPROFILE%\.claude\projects, ou sous le répertoire indiqué parCLAUDE_CONFIG_DIR - Si vous ne pouvez pas ajouter d'exclusion, ajoutez plutôt Claude Code aux applications autorisées de ce logiciel
- Reprenez à nouveau la session
Avant la v2.1.282, l'échec ne s'accompagnait d'aucune explication : claude --resume <session-id> s'arrêtait sur Failed to resume session <session-id>, et une exécution -p n'affichait que le texte de l'erreur système, comme Failed to resume session: EBADF: bad file descriptor, read.
Cannot switch renderers in this session
Lorsque vous changez de moteur de rendu, Claude Code redémarre son processus. Vous avez exécuté /tui dans une session que Claude Code refuse de redémarrer : il ne change donc pas de moteur de rendu et n'enregistre rien. Le message que vous voyez vous indique la cause :
Cannot switch renderers while work is running in the background: un travail en arrière-plan qu'un redémarrage abandonnerait est en cours d'exécution, comme un shell en arrière-plan ou un sous-agent. Attendez la fin du travail ou arrêtez-le avec/tasks, puis exécutez à nouveau/tui fullscreenou/tui defaultCannot switch renderers in this session: la session comporte des restrictions que Claude Code ne peut pas transmettre au processus redémarré. Avant la v2.1.234, Claude Code redémarrait quand même et la session relancée s'exécutait sans elles
Dans le message relatif aux restrictions, la partie entre parenthèses indique les restrictions détectées par Claude Code :
Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.
Chaque raison que le message peut afficher entre parenthèses :
launch flags: a custom system prompt, a tool allowlist, or restricted settings: vous avez démarré la session avec un flag que Claude Code ne retransmet pas au processus redémarré. Ces flags incluent--system-prompt,--system-prompt-file,--append-system-prompt-file, une liste d'autorisation--tools,--setting-sourceset--permission-prompt-toolpermission rules set for this session only: une mise à jour de permissions provenant d'un hook ou d'un appelant SDK a ajouté des règles deny ou ask avec la destinationsession. Les règles allow limitées à la session ne déclenchent pas le refus. Un redémarrage les supprime, et Claude Code vous demande à nouveau la permission à la placeask-before-running rules with no command-line form: une mise à jour de permissions provenant d'un hook ou d'un appelant SDK a ajouté des règles ask en plus des règles que Claude Code retransmet sous forme de--allowed-toolset--disallowed-tools. Aucun flag n'existe pour les règles askpermission rules a command line cannot carry intactetadded directories a command line cannot carry intact: une mise à jour de permissions a ajouté une règle ou un chemin de répertoire en cours de session. La ligne de commande du processus redémarré ne peut pas transporter son texte sous la même valeur
Que faire :
- Dans une session démarrée sans ces restrictions, exécutez
/tui fullscreen, ou/tui defaultpour revenir en arrière. Claude Code y enregistre le paramètretui
Claude Code couldn't restart
Lorsque ce message indique que votre conversation est enregistrée, la conversation se trouve sur le disque et vous pouvez la reprendre là où elle s'est arrêtée. Claude Code était en train de redémarrer, par exemple pour activer ou désactiver le rendu plein écran après que vous avez exécuté /tui, et n'a pas pu démarrer le nouveau processus ; il s'est donc terminé avec le statut 1 :
Claude Code couldn't restart. Your conversation is saved. Start Claude Code again and run /resume to pick it up.
Lorsque le redémarrage n'avait aucune conversation à rouvrir, par exemple parce que /tui était votre première saisie dans une nouvelle session, le message est Claude Code couldn't restart. Start Claude Code again.
Que faire :
- Exécutez à nouveau
claudedans votre shell. Si le message indiquait que votre conversation est enregistrée, exécutez/resumedans la nouvelle session et sélectionnez la conversation. Si elle ne figure pas dans la liste, élargissez le sélecteur de sessions - Si les redémarrages continuent d'échouer, démarrez Claude Code depuis votre shell avec
claude --debug-file claude-debug.log. Si un redémarrage depuis cette session échoue, le fichierclaude-debug.logsitué dans le répertoire de démarrage enregistre une ligneFailed to relaunch:contenant l'erreur du système d'exploitation. Incluez cette ligne lorsque vous signalez le problème
Couldn't open Claude Desktop
Vous avez exécuté /desktop ou son alias /app dans une session, ou claude --desktop dans votre shell, et la commande système que Claude Code utilise pour ouvrir Claude Desktop a échoué. Après /desktop, la session reste dans le terminal ; claude --desktop affiche le message sans le préfixe Error: et se termine avec le statut 1.
Le texte entre parenthèses indique la commande qui a échoué, avec son statut de sortie et la première ligne de sa sortie d'erreur lorsqu'elle les a produits. Sous macOS, cette commande est open, comme dans cet exemple ; sous Windows, il s'agit de rundll32 :
Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.
Que faire :
- Ouvrez vous-même Claude Desktop, puis exécutez à nouveau
/desktopouclaude --desktop - Pour lire la sortie d'erreur complète de la commande qui a échoué, activez les logs de débogage avec
/debuget exécutez à nouveau/desktop, ou exécutezclaude --desktop --debug-file <path>, puis consultez le log de débogage
Avant la v2.1.285, le message se terminait par Open Claude Desktop and run /desktop again. Avant la v2.1.275, il était Failed to open Claude Desktop. Please try opening it manually. et n'indiquait pas ce qui avait échoué.
/terminal-setup n'a pas modifié votre keymap Zed
Vous avez exécuté /terminal-setup dans Zed, et Claude Code n'a pas pu terminer la mise à jour de votre fichier keymap.json de Zed ; il a donc laissé le fichier tel quel.
Chaque message indique le chemin de votre keymap et se termine par le bloc de raccourci clavier à ajouter vous-même :
Couldn't update your Zed keymap, so it was left unchanged.
To add the binding yourself, add this block to the keymap array in <path to keymap.json>:
{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }
La première ligne du message indique la cause :
Couldn't read your Zed keymap, so it was left unchanged.: Claude Code n'a pas pu lire le fichier, par exemple en raison des permissions du fichierYour Zed keymap isn't a readable list of keybindings, so it was left unchanged.: le fichier a bien été lu, mais il ne s'analyse pas comme un tableau de blocs de raccourcis clavier, même en autorisant les commentaires//et les virgules finalesCouldn't back up your Zed keymap; not modifying it.: Claude Code n'a pas pu copier le fichier vers une sauvegarde.bakà côté de celui-ci ; il n'a donc rien modifiéCouldn't update your Zed keymap, so it was left unchanged.: le résultat fusionné n'a pas pu être validé comme une keymap valide contenant le raccourci ; Claude Code l'a donc abandonné au lieu de l'écrire. Un bloc de raccourci clavier contenant une clé en double peut en être la cause
Que faire :
- Copiez le bloc du message dans le tableau de premier niveau de votre
keymap.json, au chemin indiqué par le message - Pour
isn't a readable list of keybindings, corrigez l'erreur de syntaxe, ou faites de la valeur de premier niveau du fichier un tableau, puis exécutez à nouveau/terminal-setup
Avant la v2.1.247, /terminal-setup ne pouvait pas analyser une keymap Zed utilisant des commentaires // ou des virgules finales, et il remplaçait le fichier entier par son seul raccourci tout en signalant le raccourci comme installé. Pour restaurer une keymap remplacée par une version antérieure, utilisez le fichier de sauvegarde .bak décrit dans Saisir des prompts multilignes.
Skill usage reports are not available on this connection
Vous avez exécuté /skill-doctor via Remote Control, depuis votre téléphone ou votre navigateur. Claude Code n'envoie pas le rapport d'utilisation des skills via Remote Control et répond plutôt avec ce message :
Skill usage reports are not available on this connection.
Que faire :
- Exécutez
/skill-doctordans le terminal de la machine sur laquelle la session s'exécute, ou exécutez-yclaude -p "/skill-doctor"
Custom output styles can't be selected over Remote Control
Vous avez exécuté /output-style depuis l'application mobile ou le web via Remote Control, ou la commande est arrivée dans un message relayé dans la session. Comme un tel tour peut ne pas provenir du propriétaire du compte, Claude Code n'y liste et n'y sélectionne que les styles intégrés, et ajoute cet avis chaque fois que la commande liste les styles ou ne reconnaît pas le nom que vous avez indiqué. Un nom de style personnalisé reçoit la même réponse qu'un nom inexistant :
Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.
Que faire :
- Choisissez un style intégré, par exemple
/output-style concise - Pour utiliser un style personnalisé, définissez
outputStyledans le fichier.claude/settings.local.jsondu projet, ou exécutez/output-style <style>dans le terminal propre à la session, s'il en existe un
Output styles are saved to local settings which this session doesn't load
Vous avez tenté de changer de style de sortie avec /output-style <style> ou /config outputStyle=<style> dans une session dont les sources de paramètres excluent local. Par exemple, une session Agent SDK dont le settingSources omet "local", ou une session CLI démarrée avec une valeur --setting-sources qui omet local. Les deux commandes enregistrent le style dans .claude/settings.local.json, un fichier qu'une telle session ne relit jamais ; Claude Code refuse donc plutôt que d'écrire un paramètre qui n'aurait aucun effet :
Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.
Que faire :
- Ajoutez
localaux sources de paramètres de la session et changez à nouveau de style - Définissez la clé
outputStyledans un fichier de paramètres que la session charge, comme.claude/settings.jsondans le projet ou~/.claude/settings.json. Dans le SDK TypeScript, définissez plutôtoutputStyledans l'objetsettingsen ligne ; consultez Activer un style de sortie
/recap only runs when you ask for it yourself
La demande /recap ne provient pas de votre propre saisie. Elle est arrivée dans un message relayé dans la session depuis un fil Slack, Teams ou de projet, ou dans un prompt envoyé par une tâche planifiée cloud ou un autre programme.
Un message relayé reçoit cet avis même si vous l'avez rédigé vous-même. Claude Code ne peut pas savoir qu'un message relayé ou automatisé provient de la personne dont le compte exécute la session ; il répond donc par cet avis plutôt que par un résumé :
/recap only runs when you ask for it yourself in this session: from the terminal, the Claude app or claude.ai/code, or over Remote Control. A message relayed from Slack, Teams or a project thread, or sent by a routine or another program, can't request it.
Un /recap que vous passez à claude -p, ou que votre propre application Agent SDK envoie à une session qu'elle a lancée, compte comme votre propre saisie.
Que faire :
- Ouvrez vous-même la session et exécutez-y
/recap: dans son terminal, dans l'application Desktop ou l'application mobile, sur claude.ai/code, ou via Remote Control - Si une tâche planifiée cloud ou un autre programme l'a envoyé, supprimez
/recapde ce prompt
/feedback is disabled by your organization's policy
Ce message signifie que la politique de votre organisation n'autorise pas les retours sur le produit depuis Claude Code ; /feedback, /bug et /share n'ouvrent donc pas la boîte de dialogue de retour. Le message indique la commande que vous avez saisie dans le prompt de Claude Code :
/feedback is disabled by your organization's policy. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.
Le message peut également se limiter à sa première phrase.
Que faire :
- Pour signaler un bug, ouvrez une issue sur github.com/anthropics/claude-code/issues. Tout le monde peut y lire les issues : n'y incluez donc ni code, ni transcriptions, ni aucune autre information confidentielle.
Avant la v2.1.302, le message complet était /feedback is disabled by your organization's policy. Contact your organization admin to enable it.
Erreurs de plugin
Ces erreurs proviennent de la configuration des plugins et des marketplaces. Pour les problèmes de plugin qui ne produisent pas l'un des messages de cette page, comme une URL de marketplace qui ne se charge pas ou un plugin qui s'installe mais n'apparaît pas, consultez Dépannage des plugins.
plugin eval is currently in early access
Vous avez exécuté claude plugin eval ou claude plugin eval init et il a quitté avec le code 1 avec l'un de ces messages avant de faire quoi que ce soit :
`plugin eval` is currently in early access
`plugin eval` is currently unavailable
Le premier message signifie que votre build est plus ancien que v2.1.269, la première version où la commande est généralement disponible. Le second signifie qu'Anthropic a désactivé la commande côté serveur ; rien sur votre machine ne la réactive.
Que faire :
- Exécutez
claude --version, puisclaude update, et exécutez la commande à nouveau dans une nouvelle session. Consultez les exigences pour les évaluations de plugins - Si vous voyez le second message sur une build actuelle, réessayez plus tard après un autre
claude update
Marketplace is registered from an untrusted source
La marketplace est enregistrée sous un nom qui est réservé aux marketplaces officielles d'Anthropic, mais sa source enregistrée n'est pas un référentiel GitHub anthropics. Claude Code revérifie les noms réservés chaque fois qu'il charge ou actualise une marketplace, donc la marketplace et les plugins installés à partir de celle-ci cessent de se charger. Avant v2.1.205, une entrée enregistrée avant que son nom ne soit réservé continuait à se charger.
Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.
Pour une marketplace dont la source n'est pas un référentiel GitHub ou une URL Git, comme un répertoire local, la phrase du milieu se lit can only be used with GitHub sources from the 'anthropics' organization à la place. claude plugin marketplace add exécute la même vérification et refuse un nom réservé avec Failed to add marketplace: suivi de la même phrase de nom réservé.
Que faire :
- Si la marketplace est déjà enregistrée, exécutez
claude plugin marketplace remove <name>, puis ajoutez-la à nouveau à partir du référentiel officielgithub.com/anthropics - Si vous publiez une marketplace tierce qui utilisait le nom avant qu'il ne soit réservé, renommez-la et demandez aux utilisateurs de la rajouter à partir de votre source
- Consultez la liste des noms réservés sous Marketplace schema
Marketplace name is another spelling of a reserved name
Le nom de la marketplace n'est pas lui-même un nom réservé, mais Claude Code le traite comme une autre orthographe d'un nom réservé. Noms réservés énumère les orthographes qui comptent comme un nom réservé. Claude Code refuse un tel nom quand vous ajoutez la marketplace :
Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.
Quand une marketplace est déjà enregistrée sous un tel nom, son entrée cesse de se charger, et /plugin, claude plugin install, et claude plugin update avertissent :
known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins
Quand le nom aurait besoin de guillemets shell, le refus au moment de l'ajout se lit This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.
Que faire :
- Renommez la marketplace en un nom qui n'orthographie pas un nom réservé et ajoutez-la à nouveau
- Pour l'avertissement d'entrée ignorée, exécutez la commande
claude plugin marketplace removequ'il donne, ou supprimez l'entrée de~/.claude/plugins/known_marketplaces.json
Claude Code refuses the marketplace name
Le nom d'une marketplace enregistrée usurpe l'identité d'une marketplace officielle d'Anthropic selon les règles que cette section énumère.
Si une marketplace a été enregistrée sous un tel nom avant que la vérification ne la bloque, la marketplace et les plugins installés à partir de celle-ci cessent de se charger, car Claude Code vérifie le nom chaque fois qu'il lit le catalogue de la marketplace. Quand le nom imite un nom officiel, claude plugin list et l'onglet Errors de /plugin rapportent chaque plugin affecté avec un message qui commence :
Claude Code refuses the marketplace name "anthropic-plugins-v2"
Pour un nom qui imite, l'erreur de la marketplace elle-même se lit Claude Code refuses this marketplace's name: it looks like one of Anthropic's own à la place. claude plugin marketplace add refuse tout nom qui usurpe l'identité avec Marketplace name impersonates an official Anthropic/Claude marketplace.
Avant v2.1.282, claude plugin list et /plugin rapportaient les plugins d'un nom qui imite comme échoués à charger aussi, sans nommer le nom de la marketplace comme la cause.
Que faire :
- Pour conserver une marketplace qu'un fichier de paramètres déclare en ligne avec
"source": "settings", renommez-la avant de supprimer l'ancien nom, car supprimer la marketplace supprime aussi son entrée de vos fichiers de paramètres. Claude Code v2.1.292 ou ultérieur énumère ces étapes dans le message :- Dans chaque fichier de paramètres qui liste la marketplace sous
extraKnownMarketplaces, donnez à la clé de l'entrée et à sonsource.nameun même nouveau nom en ASCII simple qui ne ressemble pas à un nom officiel. Si un administrateur ajoute la marketplace via les paramètres gérés de votre organisation, c'est l'administrateur qui effectue cette étape - Exécutez
claude plugin marketplace remove <old-name>, ou supprimez l'ancien nom dans l'onglet Marketplaces de/plugin. Cela désinstalle aussi ses plugins et supprime leurs données, options et secrets - Redémarrez Claude Code, dans le dossier du projet si le fichier est un fichier de paramètres de projet. Installez ensuite les plugins à partir de la marketplace renommée
- Dans chaque fichier de paramètres qui liste la marketplace sous
- Pour conserver toute autre marketplace, attendez que son responsable la renomme, puis exécutez
claude plugin marketplace update <name> - Pour supprimer la marketplace, exécutez
claude plugin marketplace remove <name>. Cela désinstalle aussi les plugins installés à partir de la marketplace et supprime leurs données, options et secrets - Si vous publiez la marketplace, renommez-la dans votre
marketplace.json; les utilisateurs mettent alors à jour la marketplace au lieu de la supprimer
Marketplace is already added from a different source
Vous avez indiqué une nouvelle source de marketplace avec --marketplace <source> sur la commande d'installation, dans une session ou depuis votre shell. Le catalogue que Claude Code a récupéré à partir de cette source porte le même nom qu'une marketplace que vous avez déjà ajoutée à partir d'une source différente. Claude Code conserve la marketplace existante au lieu de la remplacer, et le plugin n'est pas installé.
Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.
Que faire :
- Si la marketplace que vous avez déjà ajoutée est celle que vous voulez, installez à partir de celle-ci par nom :
/plugin install <plugin>@<name> - Pour basculer vers la nouvelle source, exécutez
/plugin marketplace remove <name>, puis réessayez l'installation
Plugin command references user_config in a shell command
Un hook de plugin, un monitor, ou une commande MCP headersHelper référence une option de plugin ${user_config.KEY}, et la chaîne substituée serait passée à un shell. Une valeur configurée contenant $(...), des backticks, ou ; s'exécuterait comme du code là-bas, donc Claude Code refuse de démarrer le composant au lieu de substituer la valeur. La vérification s'exécute sur le modèle de commande, donc l'erreur apparaît même quand aucune valeur n'est encore configurée. Avant v2.1.207, la valeur était substituée dans la commande shell.
La formulation dépend de quelle surface a référencé l'option. Un hook de forme shell rapporte :
Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}
Un monitor rapporte :
Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.
Un MCP headersHelper rapporte :
headersHelper for MCP server 'internal-api' references ${user_config.*}. The substituted value would be passed to a shell; read the value inside the helper script instead (e.g. from an env var set in the server's "env" block).
Que faire :
- Pour un hook, ajoutez un tableau
argspour qu'il s'exécute en forme exec, où chaque${user_config.KEY}devient un argument sans shell entre les deux. Ou supprimez la référence et lisez la variable d'environnement$CLAUDE_PLUGIN_OPTION_<KEY>à l'intérieur du script - Pour un monitor, supprimez la référence et faites en sorte que le script monitor lise la valeur à partir d'un fichier de configuration
- Pour un
headersHelper, déplacez${user_config.KEY}dans le champheadersdu serveur, qui n'est pas analysé par shell, ou lisez la valeur à l'intérieur du script helper
Plugin archive integrity check failed
L'entrée de marketplace du plugin utilise une source archive avec une épingle sha256, et le digest du fichier téléchargé ne correspond pas à l'épingle. Claude Code refuse l'installation, donc rien ne change dans le cache du plugin. L'inadéquation a trois causes possibles :
- Le fichier à l'URL a changé après que l'auteur ait calculé l'épingle
- L'auteur a entré le mauvais digest dans l'entrée de marketplace
- L'URL sert un fichier différent de celui que l'auteur a épinglé
Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.
Que faire :
- Si vous publiez le plugin, recalculez le digest du fichier exact que l'URL sert, par exemple avec
shasum -a 256 my-plugin.zip, ouGet-FileHash -Algorithm SHA256 my-plugin.zipdans PowerShell, et mettez à jour lesha256dans l'entrée de marketplace - Si vous installez le plugin, exécutez
/plugin marketplace update <name>pour actualiser le catalogue au cas où l'entrée aurait été corrigée, puis réessayez l'installation - Si les digests ne correspondent toujours pas après une actualisation, demandez au propriétaire de la marketplace quel fichier il a épinglé avant d'installer
Path escapes plugin directory
L'un des chemins de composant du plugin mène en dehors du répertoire du plugin ou n'a pas pu être confirmé à l'intérieur de celui-ci, donc Claude Code supprime ce chemin et charge le reste du plugin. Pour un chemin que le plugin déclare dans plugin.json ou dans son entrée de marketplace, le nom du composant dans le message, comme commands ou hooks, nomme le champ qui a déclaré le chemin.
commands path escapes plugin directory: ./../shared.md
Dans la sortie de la commande claude plugin, la même erreur se lit Path escapes plugin directory: ./../shared.md (commands).
Claude Code rejette à la fois un chemin qui pointe en dehors du plugin tel qu'écrit, comme ../shared-utils, et un lien symbolique qui mène en dehors du plugin et n'en est pas un que les règles de lien symbolique de marketplace permettent. Pour un lien symbolique, le message indique également où le chemin se résout :
commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory
Un message qui donne le chemin complet de l'un des propres fichiers d'un plugin de marketplace, comme hooks/hooks.json, signifie que Claude Code a ignoré ce fichier. Cela se produit quand Claude Code ne peut pas confirmer que le fichier se trouve à l'intérieur du plugin ou, pour un plugin dans une marketplace locale, à l'intérieur de cette marketplace. Le message rapporte chacun de ces fichiers sous le nom de composant indiqué :
hooks/hooks.json:hooksmonitors/monitors.json:monitorssettings.json:settingsSKILL.mdà la racine du plugin :skills
Par exemple, ce message concerne un hooks/hooks.json qui se résout en dehors à la fois du plugin et de sa marketplace locale :
hooks path escapes plugin directory: /home/user/my-marketplace/my-plugin/hooks/hooks.json — it resolves to /home/user/dotfiles/hooks.json, outside the plugin directory and its marketplace directory
Sur macOS et Linux, Claude Code rejette également un chemin de composant qui contient une barre oblique inverse n'importe où dedans, même quand le chemin reste à l'intérieur du plugin. Un plugin dont les chemins de composant utilisent des séparateurs de style Windows se charge sur Windows et déclenche ce rejet sur les autres plates-formes :
commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform
Avant v2.1.251, Claude Code chargeait un chemin commands déclaré dans une entrée de marketplace même quand il pointait en dehors du répertoire du plugin.
Avant v2.1.257, la vérification des chemins que le plugin déclare ne regardait que l'orthographe du chemin, pas où un lien symbolique mène.
Que faire :
- Si vous avez installé le plugin et ne le maintenez pas, signalez le message à son auteur
- Pour un chemin que le plugin déclare, déplacez le fichier référencé à l'intérieur du répertoire du plugin et pointez le chemin vers lui avec un chemin relatif
./ - Si le chemin, ou un dossier au-dessus de lui à l'intérieur du plugin, est un lien symbolique menant en dehors du plugin, remplacez le lien symbolique par une copie de ce vers quoi il pointe
- Si le message dit qu'un chemin que le plugin déclare contient une barre oblique inverse, écrivez le chemin avec des barres obliques avant, par exemple
./commands/deploy.md - Si le message se termine par
EACCES, restaurez votre permission d'exécution sur chaque répertoire menant au fichier ou au dossier que le chemin nomme. Vérifiez les répertoires au-dessus du chemin, puis suivez chaque lien symbolique que vous rencontrez et vérifiez les répertoires menant à l'endroit où il pointe. Pour tout autre code d'erreur, recherchez-le dans les causes et étapes pour un chemin qui n'a pas pu être vérifié. - Pour partager des fichiers avec d'autres plugins dans la même marketplace, liez-les avec un lien symbolique à l'intérieur du répertoire du plugin, en suivant les règles de lien symbolique
Plugin not loaded: its manifest was not read
Claude Code n'a pas pu confirmer que le manifeste d'un plugin de marketplace à .claude-plugin/plugin.json se trouve à l'intérieur du plugin, donc il ne charge rien de ce plugin. Pour un plugin dans une marketplace locale, Claude Code n'a pas non plus pu confirmer que le manifeste se trouve à l'intérieur de cette marketplace. Le message apparaît dans l'onglet Errors de /plugin, et la raison à sa fin indique ce que Claude Code a trouvé.
Par exemple, ce message concerne un plugin dans une marketplace locale dont le dossier .claude-plugin est un lien symbolique menant en dehors de la marketplace :
Plugin not loaded: its manifest /home/user/my-marketplace/my-plugin/.claude-plugin/plugin.json was not read, because it resolves to /home/user/dotfiles/my-plugin/.claude-plugin/plugin.json, outside the plugin directory and its marketplace directory
Que faire :
- Si la raison se termine par
EACCES, restaurez votre permission d'exécution sur chaque répertoire menant au manifeste. Vérifiez les répertoires au-dessus du manifeste, puis suivez chaque lien symbolique que vous rencontrez et vérifiez les répertoires menant à l'endroit où il pointe. Pour tout autre code d'erreur, recherchez-le dans les causes et étapes pour un chemin qui n'a pas pu être vérifié. - Si vous maintenez le plugin et que la raison indique où le manifeste se résout, le dossier
.claude-pluginouplugin.jsonlui-même est un lien symbolique qui mène là. Remplacez ce lien par une copie de ce vers quoi il pointe. - Si vous avez installé le plugin et ne le maintenez pas, signalez le message à son auteur
Path could not be checked
Claude Code a demandé au système d'exploitation si un chemin de plugin existe et a reçu une erreur autre que « non trouvé », donc il ne charge pas ce que le chemin nomme. La quantité du plugin qui se charge dépend du chemin qui a échoué :
- L'un des emplacements de composant par défaut d'un plugin, comme le dossier
skills/, le fichiermonitors/monitors.json, ou unSKILL.mdà la racine du plugin : les autres composants du plugin se chargent toujours - Le répertoire du plugin lui-même : rien de ce plugin ne se charge
Vous ne voyez pas cette erreur pour un chemin qui n'existe pas du tout. Dans /plugin, l'erreur apparaît sous le plugin et nomme le chemin et le code que le système d'exploitation a retourné :
skills path could not be checked: /home/user/my-plugin/skills (ELOOP)
Dans claude plugin list, la même erreur se lit Path not found: /home/user/my-plugin/skills (skills, ELOOP).
Les causes qui produisent cette erreur incluent :
ELOOP: un lien symbolique dans le chemin pointe sur lui-même ou forme une boucleEIOouESTALE: le chemin est sur un montage réseau qui est cassé ou obsolèteEACCES: l'un des répertoires au-dessus du chemin vous refuse la permission de le traverser
Que faire :
- Remplacez un lien symbolique qui pointe sur lui-même par un vrai dossier, ou supprimez-le
- Si le chemin est sur un montage réseau, remontez le partage
- Si le code est
EACCES, restaurez votre permission d'exécution sur les répertoires au-dessus du chemin - Exécutez
/reload-pluginsaprès avoir corrigé le chemin, ou redémarrez Claude Code, pour charger le plugin ou le composant
Avant v2.1.265, Claude Code traitait un dossier de composant par défaut qu'il ne pouvait pas vérifier comme absent et chargeait le plugin sans ce composant, sans erreur.
Marketplace entry path does not stay inside the marketplace directory
L'entrée de marketplace du plugin déclare un chemin source que Claude Code ne peut pas résoudre à un emplacement à l'intérieur du répertoire de la marketplace elle-même, donc le plugin ne s'installe pas ou ne se charge pas. Le refus couvre :
- Un chemin d'entrée qui est absolu, grimpe en dehors de la marketplace avec
.., ou est orthographié comme un chemin réseau - Sur macOS et Linux, un chemin d'entrée qui contient une barre oblique inverse n'importe où après le
./initial - Une entrée dans une marketplace récupérée à partir d'une source distante, comme git ou une URL, qui atteint sa cible via un lien symbolique se résolvant en dehors du répertoire de la marketplace
- Une entrée relative dans une marketplace ajoutée à partir d'une URL directe vers son
marketplace.json: Claude Code télécharge uniquement ce fichier, donc il n'existe aucun fichier de plugin local que le chemin puisse désigner. Consultez Les plugins avec des chemins relatifs échouent dans les marketplaces basées sur URL
claude plugin install rapporte le refus comme ceci :
Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)
Quand une entrée d'un plugin déjà installé échoue la même vérification, claude plugin list affiche le plugin comme failed to load avec :
Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.
Que faire :
- Si vous maintenez la marketplace, écrivez la
sourcede l'entrée comme un chemin relatif simple avec des barres obliques avant, comme./plugins/my-plugin, et gardez tout lien symbolique qu'il traverse pointé à l'intérieur du répertoire de la marketplace - Si vous avez ajouté la marketplace à partir d'une URL directe, les entrées relatives ne peuvent pas se résoudre. Demandez à l'auteur de la marketplace d'utiliser une autre source de plugin, ou ajoutez la marketplace à partir de son référentiel git à la place
Failed to load marketplace configuration
Claude Code garde les marketplaces de plugins que vous avez ajoutées dans un fichier de registre à ~/.claude/plugins/known_marketplaces.json. Une commande de plugin qui a besoin du registre, comme claude plugin install, échoue avec l'un de deux messages quand Claude Code ne peut pas utiliser le fichier :
Failed to load marketplace configuration: le fichier n'est pas un JSON valide, ou ne peut pas être lu. Un fichier vide échoue de cette façon aussi.Marketplace configuration file is corrupted: le fichier est un JSON valide mais son contenu ne correspond pas au schéma du registre.
Avec un fichier vide, claude plugin install rapporte :
✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF
Avant v2.1.246, claude plugin install ne rapportait pas cet échec.
Que faire :
- Ouvrez
~/.claude/plugins/known_marketplaces.jsonet réparez le JSON, ou corrigez les entrées que le message nomme comme ne correspondant pas au schéma du registre - Si vous ne pouvez pas le réparer, supprimez le fichier ou remplacez son contenu par
{}, puis rajoutez chaque marketplace avecclaude plugin marketplace add <source>. Claude Code réenregistre les marketplaces que vos paramètres utilisateur ou gérés déclarent dansextraKnownMarketplacesla prochaine fois que vous le démarrez dans un dossier que vous avez approuvé.
Plugin is required by your organization
Vous avez exécuté claude plugin disable, ou utilisé l'onglet Installed de /plugin, pour désactiver un plugin synchronisé à partir de claude.ai que votre organisation marque comme requis :
Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.
Claude Code ne sauvegarde rien et le plugin reste activé.
Quand vous essayez de désactiver un plugin dont un plugin requis dépend, Claude Code refuse de la même façon, avec un message nommant le plugin requis qui en a besoin.
Que faire :
- Demandez à un administrateur de votre organisation claude.ai de modifier le statut requis du plugin sur claude.ai
Plugin was not uninstalled
Vous avez exécuté claude plugin uninstall, ou choisi Uninstall dans l'onglet Installed de /plugin, et la désinstallation s'est arrêtée avec un message commençant par "<plugin>" was not uninstalled:. Si le texte après ce deux-points commence par installed_plugins.json au lieu de nommer un fichier de paramètres, la cause est du contenu dans installed_plugins.json que cette version de Claude Code ne peut pas lire. Pour cette forme, consultez installed_plugins.json holds a record this version can't read.
Quand Claude Code a supprimé l'entrée du plugin de enabledPlugins et a relancé les fichiers de paramètres de cette portée, soit le plugin était toujours activé là, soit un fichier qui pourrait l'activer ne pouvait pas être lu ou vérifié. Supprimer les options sauvegardées du plugin, les secrets et les données tandis qu'une entrée de paramètres pourrait le réactiver les perdrait, donc la désinstallation s'arrête à la place : le plugin reste installé et rien qu'il a sauvegardé n'est supprimé.
✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.
Le milieu du message nomme le fichier et la cause :
it is still switched on in <file>, although the settings change reported no error: l'écriture des paramètres a rapporté le succès mais l'entrée est toujours là quand le fichier est relancéit is still switched on in <file>, and the settings change failed (<error>): le fichier ne pouvait pas être sauvegardé, pour la raison entre parenthèses<file> is there and could not be read: le fichier existe mais ne pouvait pas être lu comme paramètres, par exemple parce qu'il n'est pas un JSON valide, donc il peut toujours activer le plugin<file> (not read: it is on a network path or is a link to one, or could not be checked): Claude Code n'a pas lu le fichier de paramètres du projet ou local parce que le fichier, ou le dossier.claudequi le contient, est un lien qui mène à un emplacement réseau, ou parce qu'il ne pouvait pas examiner ce chemin
claude plugin uninstall quitte avec le code 1, et avec --json le résultat porte failureCode: "settings_still_on". /plugin affiche le même message.
Que faire :
- Suivez la dernière phrase du message : réparez ou remplacez le fichier de paramètres qu'il nomme, ou supprimez l'entrée du plugin de
enabledPluginsdans ce fichier vous-même, puis exécutez la désinstallation à nouveau
Skipping connection (recent failure cached; retries automatically in 15 min, or edit the plugin config to retry now)
Ce message signifie que Claude Code n'a pas démarré un serveur MCP fourni par un plugin de type stdio, car une connexion à ce serveur a échoué moins de 15 minutes auparavant :
Skipping connection (recent failure cached; retries automatically in 15 min, or edit the plugin config to retry now)
La session continue sans les outils du serveur, et Claude Code ne réessaie pas le serveur dans cette session à la fin des 15 minutes. Lorsque vous démarrez une nouvelle session ou une exécution claude -p au moins 15 minutes après la connexion échouée la plus récente, Claude Code réessaie le serveur.
Que faire :
Pour que Claude Code réessaie le serveur sans attendre :
- Dans une session interactive : exécutez
/mcp, sélectionnez le serveur, puis sélectionnez Reconnect - Dans une application Agent SDK : appelez
reconnectMcpServer()en TypeScript ouClaudeSDKClient.reconnect_mcp_server()en Python avec le nom du serveur - Dans
claude -p: démarrez une session interactive qui charge le même plugin, sur la même machine et avec le même compte de système d'exploitation et la même valeur deCLAUDE_CONFIG_DIRque vos exécutions. Reconnectez-y le serveur depuis/mcp. Une fois la connexion établie, Claude Code tente la connexion lors de votre prochaine exécution. - Si vous développez le plugin : modifiez le
command, lesargsou l'envdu serveur dans le.mcp.jsonou leplugin.jsondu plugin. Claude Code tente la connexion lors de la prochaine session ou exécutionclaude -pqui charge l'entrée modifiée.
Ce message remplace l'erreur de la connexion échouée. Si la nouvelle tentative échoue également, Claude Code signale l'erreur de cette tentative au lieu de ce message.
Erreurs d'outils
Ces erreurs proviennent des appels d'outils de Claude. Claude corrige la plupart des erreurs d'outils de lui-même. Quand l'une d'elles nécessite une modification de votre part, la liste Que faire de cette erreur indique ce qu'il faut modifier.
No such tool available
Claude a appelé un outil par un nom qui ne figure pas dans la liste d'outils de la session. Claude Code renvoie l'erreur à Claude comme résultat de l'appel d'outil, et le tour continue. Quand Claude Code peut déterminer pourquoi l'outil est manquant, il ajoute après le nom de l'outil une phrase qui donne la raison ou nomme l'outil à appeler à la place, comme dans la deuxième ligne :
Error: No such tool available: <tool name>
Error: No such tool available: read. Tool names are case-sensitive: call Read instead.
Juste après la reprise d'une session, un serveur MCP peut encore en être à sa première tentative de connexion quand Claude appelle l'un de ses outils. Claude Code attend alors le serveur et renvoie cette erreur si l'outil n'est toujours pas disponible à la fin de l'attente. Avant la v2.1.284, un tel appel échouait immédiatement au lieu d'attendre.
Un appel dont Claude Code a tronqué le nom d'outil à 200 caractères échoue également avec cette erreur.
Que faire :
- Si cela se produit une seule fois, vous n'avez rien à faire. Claude lit l'erreur et le tour continue.
- Si les appels aux outils d'un serveur MCP continuent d'échouer avec cette erreur, exécutez
/mcpdans la session ouclaude mcp listdans votre shell pour vérifier le statut du serveur, et reconnectez un serveur en échec depuis/mcp. Dans l'Agent SDK, consultez Gestion des erreurs.
MCP server connection closed before the tool call was answered
Un appel d'outil vers un serveur MCP HTTP ou un connecteur claude.ai a perdu sa connexion avant que le serveur ne réponde, donc Claude Code ne peut pas déterminer si l'outil s'est exécuté :
MCP server "<name>" connection closed before the tool call was answered. The tool may have run: check whether it did before running it again.
Répéter l'appel pourrait répéter l'action de l'outil, comme la création d'un second ticket. C'est pourquoi Claude Code ne répète l'appel de lui-même, une seule fois, que lorsque le serveur marque l'outil comme pouvant être répété sans risque.
Que faire :
- Vérifiez dans le service sur lequel agit l'outil si l'action a eu lieu, par exemple si le ticket ou l'enregistrement qu'il devait créer existe
- Si l'action a eu lieu, n'exécutez pas l'outil à nouveau. Claude a reçu ce message à la place du résultat de l'outil, donc indiquez le résultat à Claude.
- Si l'action n'a pas eu lieu, demandez à Claude d'exécuter l'outil à nouveau. Vous n'avez pas besoin de reconnecter le serveur au préalable, car Claude Code s'y reconnecte lors du prochain appel à l'un de ses outils. Si cette connexion échoue également, consultez Coupures d'un serveur distant en cours de session.
- Si vous développez le serveur et que l'outil peut être appelé deux fois sans risque, marquez-le comme pouvant être répété sans risque afin que Claude Code puisse répéter un appel perdu
MCP server is disabled
Ce message dans un résultat d'outil signifie que Claude a appelé un outil d'un serveur MCP qui est désactivé. Claude Code ne s'est pas connecté au serveur, donc l'outil ne s'est pas exécuté, et Claude a reçu ce texte à la place d'un résultat :
MCP server "<name>" is disabled — re-enable it via /mcp to use its tools
Que faire :
- Si vous aviez l'intention de désactiver le serveur, vous n'avez rien à faire
- Si Claude a besoin des outils du serveur, réactivez-le depuis
/mcpà l'invite de Claude Code - Dans une application Agent SDK, réactivez le serveur en appelant
toggleMcpServer()en TypeScript avecenableddéfini surtrue, outoggle_mcp_server()en Python avecenableddéfini surTrue
MCP tool call timed out with the server's question unanswered
En mode non interactif, un serveur MCP a demandé une saisie via l'élicitation pendant un appel d'outil, et le délai de l'appel a expiré avant qu'une réponse n'arrive :
MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit. Do not call this tool again in this turn. Tell the user that the server's question got no answer, and wait for their reply.
Avant la v2.1.310, le résultat se terminait par timed out after <N>s et ne mentionnait pas la question.
Que faire :
- Configurez un hook
Elicitationqui répond aux requêtes du serveur - Dans une application Agent SDK TypeScript, faites en sorte que votre callback
onElicitationrenvoie sa réponse avant l'expiration du délai - Pour laisser plus de temps à une réponse, définissez un
timeoutplus long en millisecondes dans l'entrée de configuration du serveur, par exemple"timeout": 600000pour 10 minutes - Exécutez plutôt la tâche dans une session interactive et répondez vous-même à la boîte de dialogue du serveur
Agent would be spawned with zero tools
Chaque entrée de la liste tools du sous-agent n'a pas correspondu à un outil utilisable, donc Claude Code a refusé de lancer le sous-agent : sans outils, il ne pouvait pas agir. Le message regroupe vos entrées par ce qui s'est mal passé :
- Unrecognized : l'entrée ne correspond à aucun nom d'outil, généralement une faute de frappe comme
GrpepourGrep. - Not available to subagents : l'entrée nomme un outil réel que les sous-agents ne peuvent pas utiliser. Les sous-agents en arrière-plan conservent un ensemble d'outils intégrés plus petit, donc une entrée qui ne peut être utilisée que par un sous-agent au premier plan se retrouve ici quand le sous-agent s'exécuterait en arrière-plan, ce qui est le comportement par défaut. Si vous listez
Agent, le message le signale dans le groupe suivant à la place. - Matched no tools in this session : l'entrée est valide mais aucun outil de la session actuelle ne correspond actuellement, comme
mcp__github__*sans serveur MCP GitHub connecté, ouAgentpour un sous-agent à la limite de profondeur.
Omettre le champ tools ne déclenche jamais ce refus. Si vous laissez la liste tools vide, ou si disallowedTools supprime chaque entrée, Claude Code ignore également le refus et lance le sous-agent sans outils.
Avant la v2.1.208, le sous-agent était lancé sans outils et pouvait retourner un résultat vide ou confus.
Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.
Que faire :
- Corrigez chaque entrée que l'erreur nomme par rapport aux outils disponibles pour les sous-agents
- Supprimez les entrées pour les outils que la session n'a pas, comme les outils MCP d'un serveur qui n'est pas connecté
- Si l'entrée nomme un serveur MCP connecté, comparez l'entrée avec le nom de ce serveur tel que l'écrivent les noms d'outils du serveur, comme
reports__v2dansmcp__reports__v2__get_totals. Pour ce serveur, écrivezmcp__reports__v2__*, soitmcp__suivi du nom complet et de__*. Avec la forme plus courtemcp__reports, qui nomme un serveur appeléreports, le sous-agent n'obtient aucun des outilsreports__v2 - Pour un outil que les sous-agents en arrière-plan abandonnent, comme
CronCreate, supprimez l'entrée - Pour plutôt conserver un outil tel que
CronCreate, laissez Claude attendre le sous-agent, car un sous-agent que Claude attend s'exécute au premier plan et conserve l'outil. Si la définition contientbackground: true, supprimez d'abord ce champ, car il maintient le sous-agent en arrière-plan - Supprimez le champ
toolsau lieu de lister les outils pour donner au sous-agent chaque outil disponible pour les sous-agents - Pour une liste
toolsqui contient uniquementAgent, augmentez la limite de profondeur ou donnez à l'agent au moins un autre outil : Claude Code retientAgentà cette limite, donc une liste avec rien d'autre dedans se résout à aucun outil
File is covered by a Read deny rule
L'outil Edit ou Write a été appelé sur un chemin correspondant à une règle de refus Read, y compris la création d'un nouveau fichier à ce chemin. Les deux outils modifient le contenu que Claude doit pouvoir relire, donc Claude Code refuse l'appel avant tout accès au fichier. NotebookEdit n'est pas couvert par les règles de refus Read. Avant la v2.1.228, la règle bloquait uniquement l'outil Edit, et avant la v2.1.208, seule une règle de refus Edit bloquait les modifications.
File is covered by a Read deny rule in your permission settings and cannot be edited.
Quand Claude Code refuse l'outil Write, le message se termine par and cannot be written à la place.
Que faire :
- Si Claude doit pouvoir modifier le fichier, supprimez ou réduisez la règle de refus
Readdans/permissionsou dans les paramètres - Si le fichier doit rester inchangé, conservez la règle et ajoutez une règle de refus
Editpour le même chemin pour bloquer également l'outil NotebookEdit
Path cannot contain null bytes
Un appel d'outil de fichier avait un argument de chemin ou de motif contenant un octet nul, que les systèmes de fichiers et les outils de recherche ne peuvent pas accepter. Read, Write, Edit, NotebookEdit, Glob, et Grep vérifient cela, et le message nomme l'outil et l'argument :
Read file_path cannot contain null bytes (\0). Remove the null byte and try again.
L'appel d'outil échoue, Claude voit l'erreur, et le tour continue.
Que faire :
- Rien de votre côté : l'erreur est retournée à Claude comme le résultat de l'outil, et le message lui-même indique à Claude de supprimer l'octet nul et de réessayer
Avant la v2.1.281, un octet nul dans un chemin Read, Write, Edit, ou NotebookEdit terminait tout le tour avec une erreur nommant Path contains null bytes, et l'outil ne s'exécutait jamais.
Command contains an invisible character
L'outil PowerShell a refusé d'exécuter une commande qui contient U+FEFF ou U+180E :
Error: command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run. Remove the character, keep the text that needs it in a file that the command reads, or write it as $([char]0xFEFF) or $([char]0x180E) inside a double-quoted string
Que faire :
- Pour une commande écrite par Claude : vous n'avez rien à corriger. Le message indique à Claude comment réécrire la commande.
- Pour un skill ou un fichier de commande : le message suit
No shell command in <name> was run. Consultez où trouver le caractère et le supprimer.
File is too large to read as an image
Claude a essayé de lire un fichier comme une image avec l'outil Read, et le fichier dépasse 128 Mo, le maximum que Read charge depuis un fichier image. Rien n'a été lu, et Claude reçoit cette erreur comme résultat de l'outil :
File is too large to read as an image (the limit is 128MB): <path>. If it is an image, resize it or export a smaller copy, then read that.
Quand le chemin est un pipe ou un périphérique plutôt qu'un fichier ordinaire, Read s'arrête dès que plus de 128 Mo sont arrivés et renvoie cette erreur à la place :
Cannot read this as an image: <path> is a pipe or a device, not a regular file, and it sent more than 128MB without ending.
Que faire :
- Si Claude a suivi le message
File is too largeet a ensuite redimensionné l'image ou lu une copie plus petite, ne faites rien - Si Claude s'est arrêté à l'erreur, exportez vous-même une copie de moins de 128 Mo, par exemple à une résolution inférieure, et indiquez ce fichier à Claude
- Si le chemin était un pipe ou un périphérique, indiquez plutôt à Claude un fichier image ordinaire
subagent_type is required
subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...
Claude a appelé l'outil Agent sans subagent_type, et cette session n'a pas de sous-agent polyvalent sur lequel se replier. C'est le cas dans deux configurations :
CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1est défini en mode non interactif, ce qui supprime chaque sous-agent intégré- L'agent du thread principal de la session a une liste d'autorisation
tools: Agent(...)qui exclutgeneral-purpose
Que faire :
- Généralement rien : le message liste les sous-agents que la session a, donc Claude peut réessayer avec l'un d'eux
- Si Claude continue d'échouer, ajoutez
general-purposeà la liste d'autorisationtools: Agent(...), ou supprimezCLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS
Avant la v2.1.235, le même appel échouait avec Agent type 'general-purpose' not found.
Memory index is over its read limit
Claude a écrit dans l'index de mémoire automatique MEMORY.md et l'a laissé au-delà de l'une de ses limites de lecture : 200 lignes ou 25 Ko. L'écriture a réussi, mais seules les 200 premières lignes ou 25 Ko, selon ce qui vient en premier, se chargent au début d'une session, donc tout ce qui dépasse la limite est supprimé à chaque fois que l'index est lu. Avant la v2.1.210, un index dépassant la limite était silencieusement tronqué au prochain chargement sans signal au moment de l'écriture.
Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.
Seul le contenu qui se charge compte pour les limites. Le frontmatter YAML et les commentaires HTML au niveau des blocs sont supprimés avant le chargement de l'index, donc ils sont exclus de la mesure. Avant la v2.1.211, Claude Code mesurait le fichier brut, et le frontmatter ou les commentaires pouvaient déclencher cette erreur même quand le contenu chargé s'adaptait.
Claude Code remet l'erreur à Claude après l'écriture plutôt que de l'imprimer comme une bannière dans votre terminal, donc vous ne la remarquerez peut-être que dans la transcription.
Quand l'écriture de Claude rapproche le fichier d'une limite sans la dépasser, Claude Code retourne un rappel plus doux pour compacter l'index au lieu de cette erreur.
Que faire :
- Laissez Claude réécrire
MEMORY.md, ou demandez-lui : gardez une ligne par entrée, déplacez les détails dans les fichiers de sujet, et fusionnez ou supprimez les entrées obsolètes - Pour réduire l'index vous-même, voir Auditer et modifier votre mémoire
pkill pattern matches the Claude Code process
Une commande pkill dans un appel d'outil Bash a utilisé un motif, généralement avec -f, qui correspond au processus Claude Code lui-même, donc Claude Code refuse la commande au lieu de laisser la session se terminer. Claude Code teste le motif avec pgrep avant d'exécuter pkill et refuse quand son propre ID de processus est dans le résultat. La vérification s'exécute uniquement sur Linux ; sur macOS, pkill s'exécute sans modification. Avant la v2.1.214, la commande s'exécutait, et un motif correspondant tuait la session Claude Code en cours de tour.
pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.
Le refus apparaît dans le résultat de l'outil Bash plutôt que comme une bannière dans votre terminal, et Claude ajuste généralement la commande de lui-même.
Que faire :
- Réduisez le motif pour qu'il ne corresponde qu'au processus prévu, par exemple le chemin complet du binaire cible plutôt qu'une courte sous-chaîne
- Pour arrêter les processus démarrés par le shell actuel, utilisez
pkill -P $$avec le motif, ce qui limite la correspondance aux processus enfants du shell
Failed to write to a teammate's inbox
Claude Code n'a pas pu écrire un message dans la boîte aux lettres d'un coéquipier sous ~/.claude/teams/{team-name}/inboxes/, donc le destinataire n'a rien reçu. L'écriture échoue quand Claude Code ne peut pas créer ou mettre à jour le fichier, par exemple parce que le disque est plein, le répertoire n'est pas accessible en écriture, ou un autre agent détient le verrou de la boîte aux lettres trop longtemps. Avant la v2.1.224, Claude Code signalait le message comme envoyé même quand l'écriture échouait.
L'erreur apparaît dans le résultat de l'outil de l'agent d'envoi plutôt que comme une bannière dans votre terminal, et son texte indique à Claude de réessayer :
Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.
Les messages de protocole structurés de l'équipe d'agents échouent de la même manière, et l'erreur nomme le message non livré : quand Claude Code ne peut pas écrire une approbation de plan, un rejet de plan, une demande d'arrêt, ou un rejet d'arrêt, l'erreur se lit Failed to write the <message> to <name>'s inbox — nothing was sent. L'plan approval dans cette liste est la décision du responsable approuvant le plan d'un coéquipier ; la soumission du plan du coéquipier est le message séparé plan approval request. Ce message et deux autres messages de protocole portent leur propre texte de message et conséquence :
Failed to write the plan approval request to the lead's inbox — plan not submitted; try again: le plan du coéquipier n'a jamais atteint le responsable, et le coéquipier reste en mode plan jusqu'à ce qu'une resoumission réussisseThe permission request could not be delivered to the team lead (mailbox write failed): la demande de permission du coéquipier n'a jamais atteint le responsable, donc personne n'a approuvé l'appel d'outilThe confirmation could not be written to team-lead's inbox.: l'approbation d'arrêt elle-même a pris effet et le coéquipier sort ; seule la confirmation au responsable manque
Quand vous messagez vous-même un coéquipier, en tapant @name suivi du message dans la session du responsable, le même échec apparaît comme une notification, Couldn't write to @name's inbox — message not sent. Try again., et Claude Code garde votre texte dans la boîte de saisie pour que vous puissiez l'envoyer à nouveau.
Que faire :
- Demandez à l'expéditeur de renvoyer le message ; la contention pour le verrou de la boîte aux lettres est transitoire et s'efface à la nouvelle tentative
- Vérifiez l'espace disque libre, et vérifiez que
~/.claude/teamset les fichiers sous celui-ci sont accessibles en écriture par votre utilisateur
Teammate's agent definition was not restored
Claude a messagé un coéquipier d'équipe d'agents arrêté, et Claude Code l'a ramené sans réappliquer la définition du sous-agent à partir de laquelle il a été généré. L'avis suit le rapport de reprise dans le résultat de l'outil de l'agent d'envoi et nomme la raison. Quand le fichier de définition provenait d'un dossier sans confiance enregistrée, il se lit :
Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.
La vérification s'applique à une définition dans le répertoire .claude/agents/ du projet ou d'un répertoire --add-dir, et accepter le dialogue de confiance pour un dossier parent ne le satisfait pas.
Que faire :
- Exécutez
claudedans le dossier que le journal de débogage nomme et acceptez le dialogue de confiance. La définition est réappliquée la prochaine fois que Claude Code ramène le coéquipier ; vous n'avez pas besoin de redémarrer la session du responsable - Ou définissez l'entrée
hasTrustDialogAcceptedàtruedans~/.claude.json, en utilisant la clé exacteprojects["<path>"]que le journal de débogage imprime
Only a teammate can approve a shutdown request
Claude Code a refusé une approbation d'arrêt d'équipe d'agents parce que la session qui l'a envoyée ne s'exécute pas en tant que coéquipier. Rien n'a été envoyé et rien ne s'est arrêté. Le refus apparaît dans le résultat de l'outil de la session d'envoi :
Only a teammate can approve a shutdown request, and this session is not running as one. Nothing was sent. To shut down a teammate, send that teammate a shutdown_request message. The teammate is the one that approves it.
Que faire :
- Si le refus est apparu dans votre session du responsable, vérifiez d'abord si le coéquipier s'est arrêté entre-temps. Le refus est renvoyé à Claude avec l'instruction d'envoyer plutôt un
shutdown_request, et le tour continue. Dans une session de responsable interactive,<name> has shut down.apparaît quand le coéquipier approuve une demande d'arrêt. - Si le coéquipier est toujours en cours d'exécution, demandez au responsable, à son invite, d'arrêter le coéquipier, par exemple
Ask the researcher teammate to shut down. Consultez Arrêter les coéquipiers. - Si un ancien coéquipier que vous avez vous-même repris avec
claude --resumea reçu ce refus, rien n'a été envoyé. Pour terminer cette session, exécutez/exità son invite.
A command-line deny rule cannot be handed to a teammate intact
Ce message signifie que Claude Code n'a pas démarré de coéquipier en volet divisé dans votre équipe d'agents. Claude Code transmet les règles de refus de ligne de commande du responsable à un coéquipier en volet divisé via la propre ligne de commande du coéquipier, et s'arrête lorsque le coéquipier interpréterait l'une d'elles différemment :
A command-line deny rule cannot be handed to a teammate intact, so the teammate would not enforce it — spawn aborted
Que faire :
- Exécutez
/configdans la session du responsable et définissez Teammate mode surin-process, puis demandez à Claude de démarrer à nouveau le coéquipier. Vous n'avez pas besoin de trouver la règle ni de redémarrer le responsable. Un coéquipier in-process s'exécute sous les règles de refus actives du responsable. - Les sessions ultérieures qui tirent
teammateModede vos paramètres utilisateur démarrent également les coéquipiers in-process, car/configy enregistre ce choix. Pour revenir aux volets divisés dans une session ultérieure, définissez Teammate mode surauto,tmuxouiterm2, selon ce que vous utilisiez auparavant.
Message too large for cross-session delivery
Le message inter-sessions de Claude à une autre de vos sessions sur cette machine était trop long à envoyer. Claude Code l'a refusé, et la session de réception n'a rien reçu. Le refus apparaît dans le résultat de l'outil de la session d'envoi, pas comme une bannière dans votre terminal. Il nomme les deux tailles et comment faire tenir le message :
Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.
Renvoyer le même texte échoue de la même manière.
Que faire :
- Demandez à Claude de résumer le message, ou de mettre le contenu en masse dans un fichier et d'envoyer le chemin du fichier
- Demandez à Claude de diviser le contenu sur plusieurs messages plus courts
Avant la v2.1.235, Claude Code signalait un message surdimensionné comme envoyé. La session de réception l'a supprimé sans le lire.
Too many messages to this session just now
Claude a envoyé une rafale rapide de messages inter-sessions à l'une de vos sessions sur cette machine, et la rafale a atteint ce que la boîte aux lettres de cette session accepte. Claude Code a refusé l'envoi suivant, et la session de réception n'a rien reçu de celui-ci. Le refus apparaît dans le résultat de l'outil de la session d'envoi, pas comme une bannière dans votre terminal :
Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.
Que faire :
- Généralement rien : Claude regroupe le contenu restant en un seul message, ou attend avant d'envoyer plus
- Si vous avez vous-même déclenché la rafale, demandez à Claude de combiner ce qui reste en un seul message
Avant la v2.1.236, Claude Code signalait ces envois comme envoyés. La session de réception les a supprimés sans les lire.
Cross-session message was dropped at the recipient session's inbox
Claude a envoyé un message inter-sessions à une autre de vos sessions sur cette machine, et la boîte aux lettres de cette session l'a rejeté avant que Claude dans cette session le lise. La ligne nomme le destinataire et, quand le destinataire a donné une raison, ajoute la raison après un tiret :
Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.
Une ligne peut couvrir plusieurs messages rejetés. Elle commence alors au pluriel, par exemple Cross-session messages (12) were dropped. Pour trouver à quelle session appartient une adresse, comparez-la avec la ligne Peer address que /status affiche dans chaque session.
Après le tiret, la ligne donne une ou plusieurs de ces raisons :
its queue of undelivered peer messages was full: le destinataire tenait déjà autant de messages non livrés d'autres sessions que sa file d'attente le permetyou sent faster than that session accepts: les messages de la session d'envoi sont arrivés plus vite que le destinataire n'accepte d'un expéditeurit repeated your previous message: le message était identique à celui que la session d'envoi a envoyé à ce destinataire peu de temps avanta relay loop between sessions was cut: le message continuait une chaîne de sessions se messagant les unes les autres, et la chaîne avait traversé le destinataire trop de fois ou s'était allongée trop
Que faire :
- Supposez que le destinataire n'a jamais vu les messages rejetés. Claude Code dit la même chose à Claude, et lui dit d'inclure tout ce qui compte toujours dans un message ultérieur au lieu de renvoyer immédiatement
- Si vos sessions s'envoient des mises à jour fréquentes, demandez à Claude d'envoyer moins de messages, plus volumineux, comme un rapport quand une session termine son travail
- Pour
a relay loop between sessions was cut, tapez l'instruction suivante dans l'une des sessions vous-même. Un message que Claude envoie en réponse à votre propre prompt commence une nouvelle chaîne
Avant la v2.1.238, la session d'envoi n'a reçu aucun rapport quand la boîte aux lettres du destinataire a rejeté un message.
Refusing to send a cross-session message
Avant que Claude Code écrive un message inter-sessions à une autre de vos sessions sur cette machine, il vérifie que la socket de la boîte aux lettres de la session cible est l'endpoint auquel le message a été adressé. Quand une vérification échoue, Claude Code refuse l'envoi dans la session d'envoi, et la session cible ne reçoit rien. Pour un message que Claude envoie, le refus apparaît dans le résultat de l'outil de la session d'envoi :
Failed to send to api-worker: Refusing to send: reply target is a symlink
Le texte après Refusing to send: nomme la vérification qui a échoué :
reply target is a symlink: un lien symbolique se trouve au chemin de la socket de la session cible. Claude Code ne livre pas à travers, parce qu'un lien là-bas pourrait rediriger le message vers un endpoint que la session cible n'a pas créé.cannot vet reply target: Claude Code n'a pas pu inspecter le chemin cible du tout, par exemple parce que la lecture a échoué avec une erreur de permission.
Que faire :
- Généralement rien : les vérifications empêchent un message d'atteindre un endpoint autre que la session à laquelle il a été adressé, et rien n'a été envoyé
- Si
reply target is a symlinkse répète pour une session, vérifiez ce qui a créé un lien à ce chemin de socket de session, montré dans son/statussousPeer address
Refusing to read, write, or search a path
Claude Code vérifie les règles de permission du chemin d'un fichier, puis confirme cette résolution à nouveau quand l'outil ouvre le fichier ou démarre la recherche. Quand il ne peut pas confirmer que le chemin mène toujours à l'emplacement que la vérification a approuvé, Claude Code refuse l'opération au lieu de la suivre. Le refus apparaît dans le résultat de l'outil :
Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.
Chaque refus nomme sa raison :
its symlink resolution changed after permission was checked: un lien symbolique le long du chemin, ou à une racine de recherche Grep ou Glob, a été remplacé entre la vérification de permission et l'opération. Dans un refus de lecture, la phrase entre parenthèses nomme quelle comparaison a échoué.its parent-directory symlink resolution changed after permission was checked: un répertoire par lequel le chemin d'écriture passe ne se résout plus à l'emplacement approuvéwhere it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve): Claude Code n'a pas pu suivre le chemin à un emplacement final sur le disque, par exemple parce que les liens symboliques sur celui-ci forment une boucleit is a symbolic link. Write to the link's target path instead: un lien symbolique se trouve à l'emplacement d'écriture demandé lui-même, par exemple unCLAUDE.mdqui est un lien symbolique versAGENTS.md; le message dirige Claude vers la cible du lienRefusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.: la même condition attrapée quand un autre écrivain ouvre le fichier, comme une écriture vers un.mcp.jsonsymlinkéRefusing to write into symlinked directory: <path>: le répertoire qui contient le fichier est lui-même un lien symbolique, par exemple le répertoire.claude/d'un projet lié à un autre emplacementa path one of its Read deny rules is written through changed while the search was being prepared. Retry.: une règle de refusReadpour la recherche nomme un chemin qui passe par un lien symbolique, et ce lien a changé pendant que Claude Code préparait la rechercheit could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.: la racine de recherche existe mais n'a pas pu être ouverte ; le code entre parenthèses est l'erreur du système d'exploitationits permission check expired before it ran (too many concurrent file operations). Retry.: Claude Code a évincé l'enregistrement d'approbation sous de nombreuses opérations de fichiers simultanées avant que l'outil l'utilise ; réessayer exécute une vérification de permission fraîcheripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration: Claude Code n'a pas pu résoudre le binairergà un chemin absolu, donc il refuse les recherches en dehors du répertoire de travail plutôt que d'en exécuter une que vos règles de refus ne couvrent pas
Que faire :
- Généralement rien : le refus atteint Claude comme le résultat de l'outil, et l'opération refusée ne s'exécute pas
- Si un refus de lien symbolique se répète sur un chemin, trouvez ce qui continue de réécrire un lien là-bas, comme un outil de build ou un observateur de fichiers, ou demandez à Claude d'utiliser le chemin résolu du fichier au lieu du lien
- Si ce refus apparaît pour chaque fichier pendant que Claude Code s'exécute sur Windows à l'intérieur d'un AppContainer ou d'un sandbox à jeton restreint, mettez à niveau vers la v2.1.265 ou ultérieure
- Si un refus de lecture apparaît sur macOS pour un fichier que rien ne réécrit, comme une capture d'écran glissée dans le prompt, mettez à niveau vers la v2.1.273 ou ultérieure
- Pour le refus ripgrep, installez ripgrep avec votre gestionnaire de paquets pour que
rgse résout à un chemin absolu surPATH, ou gardez les recherches sous le répertoire de travail
Avant la v2.1.251, Claude Code ne revérifiait la résolution d'un chemin que pour les écritures de fichiers, donc un lien remplacé après la vérification de permission pouvait rediriger une lecture ou une recherche vers un emplacement différent sans message. Parmi ceux-ci, seuls les refus d'écriture du répertoire parent, à travers le lien symbolique, et du répertoire symlinké apparaissent sur les versions antérieures.
Avant la v2.1.280, le refus where it leads on disk could not be determined n'apparaissait pas.
Task output swap refused
Claude Code enregistre la sortie de chaque commande Bash dans un fichier sous son répertoire temporaire. Chaque fois qu'il ouvre l'un de ces fichiers, il vérifie que le chemin mène toujours au fichier qu'il a créé, sans lien symbolique, lien physique supplémentaire, ou répertoire déplacé le redirigeant. Ce message signifie que cette vérification a échoué, donc Claude Code a refusé l'opération plutôt que d'écrire ou de lire la sortie à travers ce chemin. Le message apparaît dans le résultat de l'outil Bash :
task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.
Le texte entre parenthèses nomme la vérification qui a échoué. Les raisons telles que output symlink was re-pointed, output file identity changed, et not a regular file signalent toutes la même condition : quelque chose au chemin de sortie ou le long de celui-ci n'est plus le fichier que Claude Code a créé. Seules certaines raisons portent une phrase To recover:.
Si la vérification échoue pendant qu'une commande s'exécute toujours, Claude Code arrête la commande, et son résultat signale :
Command killed: its output file was replaced or could no longer be verified
Que faire :
- Mettez à niveau vers la v2.1.260 ou ultérieure. Les versions antérieures affichaient parfois ce message quand aucun lien ou répertoire déplacé n'était présent
- Redémarrez Claude Code avec
CLAUDE_CODE_TMPDIRdéfini sur un répertoire frais - Ou vérifiez le répertoire de votre projet sous le répertoire temporaire de Claude Code,
/private/tmp/claude-501/-Users-you-my-projectdans le message d'exemple. Si ce chemin est un lien symbolique, ou un répertoire qui ne devrait pas être là, supprimez le lien ou le répertoire lui-même plutôt que la cible du lien, et redémarrez Claude Code - Si le refus se répète, un processus remplace, lie, ou supprime des entrées sous le répertoire temporaire de Claude Code pendant que la session s'exécute. Définissez
CLAUDE_CODE_TMPDIRsur un répertoire que rien d'autre ne gère et redémarrez
Disk full or disk quota used up
Libérez de l'espace, des inodes ou du quota disque sur le volume qui contient le répertoire temporaire de Claude Code. Une ligne du résultat d'une commande commençant par Disk full:, Disk quota used up: ou Nearly out of inodes: nomme ce répertoire.
Claude Code enregistre la sortie de chaque commande Bash et PowerShell dans un fichier sous ce répertoire. S'il ne peut pas créer ce fichier parce que le volume ou votre quota sur celui-ci est plein, votre commande ne démarre pas, et le résultat que Claude lit est :
The command was not started: this computer's disk is full (ENOSPC) on the volume holding /tmp/claude-501 (Claude Code's temporary directory), so the file that captures command output could not be created there and nothing ran. Free space on that volume, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another one, then retry. If this is the user's own computer, tell them before deleting anything to make room.
Les messages Disk full:, Disk quota used up: et Nearly out of inodes: suivent une commande qui s'est exécutée et s'est terminée avec un code non nul. Par exemple :
Disk full: this computer's volume holding /tmp/claude-501 (Claude Code's temporary directory) has 3 MB free, so whatever this command printed was lost and its own writes may have failed with "No space left on device". Free space on that volume, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another one, then retry. If this is the user's own computer, tell them before deleting anything to make room.
Que faire :
- Sur macOS et Linux, exécutez
df -h <dir>dans votre shell pour voir quel volume contient le répertoire et à quel point il est plein.df -i <dir>indique combien d'inodes sont libres.<dir>est le répertoire que nomme votre message, comme dansdf -i /tmp/claude-501 Disk full: this computer's volumeoudisk is full (ENOSPC): n'importe où sur ce volume, supprimez les fichiers dont vous n'avez pas besoinDisk quota used up:,disk quota is used up (EDQUOT)ouDisk full: a test write: supprimez vos propres fichiers sur ce volume, même s'il affiche encore de l'espace libreNearly out of inodes:: supprimez de nombreux fichiers sur ce volume. Chacun occupe un inode quelle que soit sa taille, donc c'est leur nombre qui compte, pas leur taille- Ou redémarrez Claude Code avec
CLAUDE_CODE_TMPDIRdéfini sur un répertoire situé sur un volume disposant de place - Puis demandez à Claude d'exécuter la commande à nouveau
Avant la v2.1.309, les messages se lisaient comme suit, et les mêmes étapes s'appliquent :
Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)Command output was lost: the temp filesystem at <dir> is fullou... is out of inodesThe command was not started: this computer's disk is full (ENOSPC), so the file that captures command output could not be created. Nothing ran., ou la même chose avec(EDQUOT). Cette forme ne nomme aucun répertoire : cherchez sur le volume qui contient le répertoire temporaire de votre système, tel que/tmp, ou le répertoire défini dansCLAUDE_CODE_TMPDIR
Avant la v2.1.305, une commande que Claude Code ne pouvait pas démarrer parce que le disque était plein ne renvoyait que le texte d'erreur du système d'exploitation. Ce texte se lisait, par exemple, ENOSPC: no space left on device, open <path>.output.
git is not installed on this Mac
Ce message signifie qu'une étape de Claude Code avait besoin de git, et que le git trouvé est le substitut d'Apple situé à /usr/bin/git. Les outils de développement qui fournissent git ne sont pas installés.
Claude Code ne lance pas le substitut et affiche ce texte à la place, par exemple au sein d'un message plus long :
git is not installed on this Mac. To install it, run xcode-select --install, then try again.
Que faire :
- Dans Terminal, exécutez
xcode-select --install, terminez l'installation qu'il lance, puis réessayez ce que vous faisiez dans Claude Code
File is not valid UTF-8
Claude a utilisé l'outil Edit ou NotebookEdit sur un fichier dont les octets ne se décodent pas en UTF-8, et Claude Code a refusé la modification. Rien n'a été écrit, donc le fichier est resté tel quel. Ces outils enregistrent l'intégralité du fichier en UTF-8, ce qui aurait transformé chaque octet qu'ils ne pouvaient pas décoder en caractère de remplacement U+FFFD. Le message apparaît dans le résultat de l'outil :
File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary. This tool saves the whole file as UTF-8, which would replace every byte it cannot decode with U+FFFD. Nothing was written. Make the change with a shell command that reads and writes the file in its own encoding, or ask the user whether to convert the file to UTF-8 first.
Un fichier censé être en UTF-8 reçoit également ce message dès qu'il contient ne serait-ce qu'une seule séquence d'octets invalide, car la vérification porte sur l'ensemble des octets du fichier.
Que faire :
- Pour conserver le fichier dans son encodage actuel, laissez Claude effectuer la modification avec une commande shell qui lit et écrit le fichier dans cet encodage, comme le message le lui indique
- Pour continuer à modifier le fichier avec l'outil Edit, convertissez-le en UTF-8, ou corrigez les octets invalides dans un fichier censé être en UTF-8, puis demandez à Claude d'effectuer à nouveau la modification
Avant la v2.1.296, Edit et NotebookEdit appliquaient une telle modification et enregistraient chaque octet qu'ils ne pouvaient pas décoder sous la forme U+FFFD. Sur ces versions, mettez à jour Claude Code.
The source file is not valid UTF-8 text
Claude a essayé de publier un artefact à partir d'un fichier dont les octets ne se décodent pas en texte, ou dont le texte contient déjà le caractère de remplacement U+FFFD, donc Claude Code a refusé la publication avant de télécharger quoi que ce soit. Le message apparaît dans le résultat de l'outil Artifact et nomme la première position à corriger :
file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.
file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as �), then publish again. Nothing was published.
Claude Code décode le fichier en UTF-8, ou en UTF-16 quand il commence par une marque d'ordre des octets UTF-16 little-endian. Quand un tel fichier UTF-16 ne se décode pas, le premier message nomme UTF-16 et vous dit toujours de réécrire le fichier en UTF-8. Quand plus de positions suivent celle nommée, le message ajoute un compte tel que (+2 more) après la position.
Que faire :
- Généralement rien : Claude réécrit le fichier et publie à nouveau
- Si le fichier est un que vous avez écrit ou exporté, enregistrez-le à nouveau en UTF-8, et remplacez chaque
U+FFFDpar le caractère qu'une édition, un collage, ou une conversion antérieure a perdu - Pour afficher un
U+FFFDintentionnel sur la page, écrivez-le comme�dans le HTML au lieu du caractère littéral
Avant la v2.1.267, Claude Code téléchargeait un tel fichier sans le vérifier, et le serveur refusait la publication à la place.
Not published: that file is on a network share
Claude a essayé de publier un artefact à partir d'un fichier situé à un chemin qui nomme un hôte réseau :
- Sur Windows, un chemin
\\server\sharequi ne se trouve pas sous un lecteur réseau mappé que vous avez passé au lancement avec--add-dir - Sur macOS ou Linux, un chemin de montage automatique tel que
/net/<host>/page.html
La résolution d'un tel chemin contacte l'hôte qu'il nomme, et sur Windows ce contact peut envoyer vos identifiants à l'hôte. Claude Code refuse de publier le fichier et ne le lit pas. Le refus apparaît dans le résultat de l'outil Artifact :
Not published: that file is on a network share. Publish a file from this session's folders instead.
Que faire :
- Rien, si vous n'avez pas besoin de ce fichier précis : le message indique à Claude de publier plutôt un fichier provenant des propres dossiers de la session
- Pour publier ce fichier précis, copiez-le dans un dossier sur un disque local et demandez à nouveau
- Sur Windows, pour permettre à Claude de publier directement depuis le partage, mappez-le à une lettre de lecteur et passez le lecteur au démarrage de Claude Code. Dans PowerShell, par exemple, exécutez
net use Z: \\server\sharepuisclaude --add-dir Z:\. Claude peut alors publier des fichiers depuis ce lecteur. Ajouter le lecteur en cours de session avec/add-dirne suffit pas. - Sur macOS ou Linux, montez le partage dans un répertoire tel qu'un sous-répertoire de
/mntou/Volumes, et publiez depuis ce chemin au lieu du chemin de montage automatique
Not published: Claude sent the same content again after a newer version of the artifact turned it away
Cette ligne rouge sous un appel Artifact signifie que Claude Code a arrêté une publication répétée : l'artefact n'a pas été mis à jour, et rien n'a été écrit dans le fichier à partir duquel Claude publie. Vous n'avez rien à faire, sauf si Claude s'arrête sans publier.
Plus tôt dans la session, Claude Code a refusé une publication parce que l'artefact avait une version plus récente, par exemple une version publiée par un éditeur ou par une autre de vos sessions. La fin de la ligne indique ce que Claude doit faire ensuite :
Not published: Claude sent the same content again after a newer version of the artifact turned it away. Claude needs to work from that newer version first.
Not published: Claude sent the same content again after a newer version of the artifact turned it away. The artifact hasn't changed since, so publishing it once more should go through.
Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away. Claude needs to work from that newer version first.
Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away. The artifact hasn't changed since, so publishing once more should go through.
Que faire :
- Se termine par
Claude needs to work from that newer version first: si Claude s'est arrêté là, demandez-lui de récupérer la version actuelle de l'artefact, d'y fusionner ses modifications, puis de publier à nouveau - Se termine par
should go through: si Claude s'est arrêté là, demandez-lui de publier à nouveau
Reading a local file from outside the connected folders in a Cowork session
Dans une session Cowork s'exécutant sur votre machine dans l'application Claude Desktop, Claude a nommé un fichier local pour un artefact. Claude Code n'a pas pu confirmer que le fichier est un fichier ordinaire à l'intérieur des dossiers connectés de la session : le chemin se trouve en dehors de ces dossiers, passe par un lien symbolique, ou est orthographié d'une manière qui peut nommer un fichier différent de celui qu'il semble être. Lire un tel fichier nécessite votre approbation, et dans une session qui ne peut pas vous montrer la carte d'approbation, comme une définie pour ignorer toutes les approbations, Claude Code refuse la lecture.
Le refus apparaît dans le résultat de l'outil Artifact ; quand le fichier n'a pas pu être examiné du tout, il nomme cet échec à la place :
Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.
cannot read file_path (ENOENT) — the file could not be examined, and no one can answer the approval card in this Cowork session. Check that the file exists as a plain file inside the connected folders, then retry with that path.
Que faire :
- Généralement rien : le message indique à Claude d'utiliser un fichier ordinaire à l'intérieur des dossiers connectés à la place
- Pour mettre ce fichier exact dans l'artefact, copiez-le dans l'un des dossiers connectés de la session en tant que fichier régulier, pas un lien symbolique, et demandez à nouveau
WebFetch cannot fetch localhost
Claude a appelé WebFetch avec une URL dont le nom d'hôte n'a pas de point, comme http://localhost:3000 ou un nom intranet nu comme http://wiki/. WebFetch refuse ces URL avant d'effectuer une requête :
WebFetch cannot fetch localhost or other hostnames without a dot. To reach a local server, use Bash with curl instead.
Que faire :
- Généralement rien : le message pointe Claude vers
curlà travers l'outil Bash, qui peut atteindre les serveurs locaux et intranet
Avant la v2.1.268, WebFetch signalait ces URL avec une erreur générique Invalid URL.
WebFetch domain safety check failed
Avant de récupérer une URL, WebFetch envoie le nom d'hôte de l'URL à api.anthropic.com pour le vérifier par rapport à la liste de blocage de sécurité de domaine d'Anthropic. Si la vérification ne peut pas se terminer, WebFetch ne peut pas confirmer que le domaine est sûr, donc il ne récupère pas la page et le résultat de l'outil porte l'un de ces messages à la place :
The safety check for domain example.com is rate-limited (too many domain checks from this network; the limit is shared and can stay exhausted for minutes). Do not retry WebFetch in a loop or sleep to wait it out; continue without this page and report that its safety check was rate-limited. A single later attempt is fine; if that is rate-limited too, stop.
Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.
rate-limited: l'endpoint de vérification a répondu avec HTTP429. Le message indique à Claude de continuer sans la page et de réessayer au maximum une fois plus tard. Claude Code ne met pas en cache une vérification échouée, donc une récupération ultérieure de ce domaine exécute la vérification à nouveau. Si les sessions sur votre réseau rencontrent souvent ce cas, vous pouvez ignorer la vérification avecskipWebFetchPreflight: truedans les paramètres.Unable to verify: la requête de vérification a échoué, a expiré, ou a obtenu un autre statut d'erreur. Si votre réseau bloqueapi.anthropic.com, ajoutez ce domaine à la liste d'autorisation, ou ignorez la vérification avecskipWebFetchPreflight: truedans les paramètres.
Avant la v2.1.286, le message de limite de débit se lisait The safety check for domain example.com is temporarily rate-limited (too many domain checks from this network). Retry after about a minute; retrying sooner will fail the same way..
Avant la v2.1.285, une vérification soumise à la limite de débit était signalée avec le message Unable to verify à la place.
Erreurs des sessions en arrière-plan
Les sessions en arrière-plan s'exécutent sans terminal interactif qui leur soit propre. Les commandes qui en ont besoin s'y comportent donc différemment. Ces messages apparaissent dans la transcription d'une session en arrière-plan, dans le terminal qui s'y attache, dans la session ou le shell depuis lequel vous la lancez, ou, pour les entrées du garde-fou de worktree ci-dessous, dans toute session isolée dans un worktree ou exécutant un sous-agent isolé dans un worktree. Lorsqu'un message est propre à une seule surface, son entrée le précise.
Commandes refusées dans une session en arrière-plan
Les commandes qui ouvrent une boîte de dialogue interactive ne peuvent pas le faire lorsqu'aucun terminal n'est attaché à une session en arrière-plan. /install-github-app, la liste des paramètres /mcp et les actions d'authentification du menu des serveurs MCP répondent par un message. Pour /install-github-app et la liste des paramètres /mcp, la session apparaît également sous Needs input dans l'agent view afin que vous puissiez la retrouver, vous y attacher et exécuter à nouveau la commande. Lorsqu'un terminal est attaché, ces commandes fonctionnent normalement.
Avant la v2.1.216, la session n'apparaissait pas sous Needs input après le refus de /install-github-app ou de la liste des paramètres /mcp. De la v2.1.213 à la v2.1.215, les commandes fonctionnaient toujours lorsqu'un terminal était attaché, et le message de refus vous demandait de vous attacher et d'exécuter à nouveau la commande. De la v2.1.208 à la v2.1.212, Claude Code les refusait même lorsqu'un terminal était attaché, avec un message tel que Can't open MCP settings in a background session. Sur ces versions, exécutez plutôt la commande depuis une session claude classique, ou effectuez une mise à jour. Avant la v2.1.208, elles ouvraient leur boîte de dialogue dans la session en arrière-plan. Dans la v2.1.208 uniquement, Claude Code refusait également le sélecteur /model dans une session en arrière-plan, et /upgrade affichait l'URL de mise à jour au lieu d'ouvrir un navigateur.
Le libellé nomme la commande. La liste des paramètres /mcp indique :
Can't open MCP settings while no terminal is attached to this background session. This session now shows "needs input" in agent view — open it and run /mcp to manage servers, or use `/mcp enable|disable|reconnect <server>` to steer without the panel.
Que faire :
- Attachez-vous à la session depuis l'agent view et exécutez à nouveau la commande
- Ou utilisez la forme indiquée par le message, comme
/mcp reconnect <server>,/mcp enableou/mcp disable, qui fonctionnent sans vous attacher
Écriture ou commande bloquée car le chemin ne peut pas être résolu de manière sûre
Claude a désigné un fichier ou un répertoire de travail au moyen d'une écriture que le garde-fou d'isolation par worktree ne peut pas résoudre en un emplacement unique et vérifiable. Le garde-fou contrôle les écritures et les répertoires de travail des commandes dans toute session isolée dans un worktree, interactive ou en arrière-plan, ainsi que dans les sous-agents isolés dans un worktree. Il résout les liens symboliques avant de vérifier que l'opération n'atteint pas le checkout partagé et, lorsque la résolution échoue, il bloque l'opération plutôt que de la laisser y aboutir. Le message nomme les formes de chemin qu'il refuse et indique comment réessayer :
This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.
Une commande bloquée signale la même cause pour son répertoire de travail et se termine par re-run the command from its direct symlink-free path. Avant la v2.1.217, le garde-fou comparait l'écriture des chemins sans résoudre les liens symboliques : ces écritures n'étaient donc pas bloquées, et une écriture passant par un lien symbolique pouvait aboutir dans le checkout partagé.
Que faire :
- En général, rien : le message complet est transmis à Claude sous forme d'erreur d'outil, et Claude réessaie avec le chemin direct qu'il indique. Pour une modification de fichier bloquée, la vue de conversation n'affiche qu'une courte ligne
Error editing file; le message complet apparaît dans la vue de transcription, que vous ouvrez avecCtrl+O. Une commande bloquée l'affiche dans sa sortie. - Si le blocage se répète sur le même fichier, le chemin passe probablement par un lien symbolique commité dont la cible contient
.., commedocs/current -> ../README.md; demandez à Claude de modifier le fichier cible par son chemin réel plutôt qu'à travers le lien
Écriture ou commande bloquée car le chemin désigne un emplacement réseau
Claude a désigné un fichier ou un répertoire de travail au moyen d'un chemin qui nomme un lecteur absent de votre machine, un partage UNC tel que \\server\share\file ou un chemin de montage automatique /net, alors que le checkout de la session se trouve sur un disque local. Le même garde-fou d'isolation par worktree ne peut pas vérifier qu'un tel chemin reste en dehors du checkout partagé ; il bloque donc l'opération. Isoler la session dans un worktree ne lève pas le blocage. Le message indique la forme de chemin à utiliser à la place :
This write was blocked because the path is network-shaped (a UNC share or /net automount spelling) while this session's checkout is local. Isolating cannot unblock it. If the file is genuinely inside the worktree /path/to/worktree, address it by its local, plainly-spelled path instead.
Une commande bloquée signale la même cause pour son répertoire de travail et se termine par re-run the command from its local, plainly-spelled path. Avant la v2.1.217, le garde-fou ne comparait que le texte des chemins : désigner un fichier du checkout au moyen d'un chemin UNC ou /net n'était donc pas bloqué.
Que faire :
- En général, rien : Claude réessaie avec l'écriture locale demandée par le message
Commande bloquée par les vérifications d'isolation par worktree
Claude a exécuté une commande Bash, PowerShell ou Monitor dans une session isolée dans un worktree, et Claude Code l'a refusée pour l'une des raisons suivantes :
- La commande s'exécuterait dans le checkout principal ou dans un autre worktree. Le message indique que son répertoire de travail
resolved to the shared checkoutouis in a different worktree. - Une commande Bash ou Monitor fait pointer git vers le checkout principal.
- Claude Code ne peut pas vérifier, à partir du texte d'une commande Bash ou Monitor, que tout git exécuté par la commande reste à l'intérieur du worktree. Une commande qui ne nomme jamais git peut tout de même être refusée pour cette raison, car l'expansion d'une indirection de variable comme
${!name}ou l'exécution d'une substitution de fonction Bash comme${ command; }produit à l'exécution une valeur qui peut elle-même être une commande.
Le message indique is isolated in the worktree <path>, but this command, suivi de la raison, par exemple une commande dont Claude Code n'a pas pu vérifier le texte :
This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.
Que faire :
- Git pointé vers le checkout principal, ou texte de commande impossible à vérifier : rien. Claude lit le message et réécrit la commande comme le demande sa dernière phrase. Si une commande que vous avez demandée continue d'être refusée à cause d'une expansion dans son texte, écrivez littéralement la valeur signalée et exécutez git comme une commande simple et distincte depuis l'intérieur du worktree
- Pour agir volontairement sur le checkout principal, exécutez vous-même la commande dans un terminal en dehors de la session
This session has no saved transcript
Vous vous êtes attaché à une session que vous avez placée en arrière-plan avec ← ou /background et qui s'est arrêtée avant d'exécuter un tour qui lui soit propre. Claude Code n'a pas trouvé la conversation d'où vous l'avez déplacée : la session n'a donc rien à reprendre. Le message se termine par la commande claude respawn correspondant à cette session :
This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.
Ouvrir la ligne de cette même session dans l'agent view affiche plutôt Press enter again to restart this session fresh sous la liste, et un second Enter sur la ligne redémarre la session avec une conversation vide.
Que faire :
- Pour redémarrer de zéro la session arrêtée, exécutez
claude respawn <id>avec l'ID indiqué dans le message, ou appuyez deux fois surEntersur sa ligne dans l'agent view - Si la session a bien terminé une réponse et que vous voyez tout de même ce refus sur une version antérieure à la v2.1.214, un dossier illisible dans
~/.claude/projectsa pu empêcher l'analyse des transcriptions de trouver la conversation enregistrée ; effectuez une mise à jour vers la v2.1.214 ou ultérieure, qui tolère les dossiers illisibles pendant l'analyse
This session is running in another terminal
Vous avez ouvert la ligne d'une session arrêtée dans l'agent view, et sa conversation enregistrée est déjà ouverte dans un autre processus Claude Code actif sur cette machine : Claude Code refuse donc de lancer un second processus qui écrirait dans la même transcription. Le message affiché dépend de ce qui détient la conversation :
Can't open — this session is running in another terminal
This conversation is already open in another running Claude session — use that one, or close it and try again
running in another terminal: un terminal détient la conversation, par exemple un terminal dans lequel vous l'avez reprise avecclaude --resumeou/resume. La ligne affiche égalementOpen in a terminal.already open in another running Claude session: un autre processus Claude Code non interactif la détient, par exemple un processus de session en arrière-plan pour la même conversation qui ne s'est pas encore terminé.
Que faire :
- Poursuivez la conversation dans le processus qui l'a ouverte, ou quittez ce processus et ouvrez à nouveau la ligne
Avant la v2.1.248, seul le refus already open in another running Claude session existait : une conversation reprise dans un terminal n'était pas considérée comme ouverte, et ouvrir la ligne lançait un second processus Claude Code écrivant dans la même conversation.
This session's saved conversation is no longer on disk
Vous avez ouvert une session en arrière-plan qui s'est terminée alors que le service d'arrière-plan était arrêté, et le nettoyage des transcriptions a depuis supprimé sa conversation enregistrée, par exemple après que la machine est restée éteinte pendant des semaines. Ouvrir une telle ligne reprend normalement sa conversation enregistrée. Comme il ne reste rien à reprendre, Claude Code refuse plutôt que de réexécuter le prompt d'origine de la session sans vous le demander :
This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.
claude attach <id> affiche ce texte. Dans l'agent view, le pied de page est plus court et se termine par ctrl+x deletes the row.
Que faire :
- Exécutez
claude rm <id>pour supprimer la ligne. Lorsque l'un des cas de conservation s'applique,claude rmconserve à la place la ligne et le worktree, et en indique la raison - Pour réexécuter le prompt d'origine de la session dans une nouvelle conversation, exécutez
claude respawn <id>
Avant la v2.1.248, ouvrir une telle ligne réexécutait le prompt d'origine de la session au lieu de refuser, ramenant au premier plan une tâche vieille de plusieurs semaines.
Worktree has commits that are not pushed anywhere
Vous avez tenté de supprimer une session en arrière-plan dont le worktree contient des commits dont Claude Code ne peut pas confirmer qu'ils sont enregistrés ailleurs. Claude Code conserve le worktree et la ligne de la session plutôt que de détruire les commits à votre insu. claude rm nomme la branche et les commits non poussés, et indique comment procéder :
kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”
2 unpushed commits on “claude/fix-login”: a1b2c3d “Fix login flow” and 1 more. They exist on no remote, so deleting the worktree would lose them.
push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef
Lorsque Claude Code ne peut pas résumer les commits, la ligne de détail indique plutôt The worktree has unpushed commits. Dans l'agent view, la ligne de la session affiche not deleted avec la même raison.
Les commits présents sur un dépôt distant ne bloquent pas la suppression. Les commits présents sur la copie locale de la branche par défaut de votre dépôt distant origin non plus, à condition que cette branche soit extraite dans votre checkout principal, c'est-à-dire le répertoire du dépôt lui-même et non un worktree.
Que faire :
- Pour conserver les commits, poussez la branche du worktree, ou fusionnez-la dans la branche par défaut extraite dans votre checkout principal, puis supprimez à nouveau la session
- Pour abandonner les commits, exécutez la commande
claude rm <id> --discard-unpushedaffichée par le message, ou appuyez de nouveau deux fois surCtrl+Xsur la ligne de la session dans l'agent view. Cela supprime la session et le worktree, ainsi que sa branche, les commits non poussés et toute modification non commitée. Si la suppression est de nouveau refusée, suivez le nouveau message. - Lorsque le message indique que le worktree est également enregistré par une autre session terminée, une nouvelle suppression ne l'abandonne pas : poussez les commits, puis supprimez à nouveau la session
Avant la v2.1.268, claude rm plaçait le résumé des commits sur la ligne kept elle-même. Lorsque claude rm ne pouvait pas résumer les commits, la ligne kept indiquait worktree has commits that are not pushed anywhere à la place du résumé.
Avant la v2.1.260, le message ne nommait ni la branche ni les commits, et il n'existait aucun moyen de les abandonner. Vous pouvez tout de même supprimer la session, en perdant les modifications non commitées mais en conservant la branche et les commits. Exécutez git worktree remove --force --force <path> avec le chemin affiché par le refus, puis claude rm <id>. Git exige --force deux fois pour un worktree verrouillé.
Avant la v2.1.248, la branche par défaut extraite dans votre checkout principal n'était pas prise en compte : une branche que vous y aviez déjà fusionnée déclenchait encore ce refus jusqu'à ce que ses commits atteignent un dépôt distant.
Terminal host process died
Le terminal de chaque session en arrière-plan s'exécute dans un processus hôte rattaché au service d'arrière-plan, et ce processus s'est arrêté alors que le service détenait encore sa connexion : la session est donc devenue injoignable.
Sous Linux et WSL, le service d'arrière-plan vérifie chaque processus hôte toutes les quelques secondes, marque la session comme en échec lorsque le processus s'est terminé sans que sa connexion au service ne se soit fermée, et affiche la raison sur sa ligne dans l'agent view :
terminal host process died — press Enter to restart
Depuis le shell, claude attach <id> redémarre une session déjà marquée en échec pour cause d'hôte arrêté, et sinon affiche la cause puis se termine :
Couldn't attach to <id> — This session's terminal host process died (the conversation is saved) — run `claude attach <id>` again to restart it on a fresh host.
Dans les deux cas, la conversation est enregistrée.
Une ligne qui exécute une commande shell affiche plutôt terminal host process died — its output is gone; the command was not run again, et claude attach affiche This command's terminal host process died — its output is gone and the command was not run again. Claude Code ne réexécute jamais la commande à votre place.
Que faire :
- Dans l'agent view, appuyez sur
Entersur la ligne en échec ; la session redémarre sur un nouveau processus hôte et la conversation reprend - Depuis le shell, exécutez à nouveau
claude attach <id>. Claude Code afficheSession <id>'s terminal host died — restarting it on a fresh one…et rouvre la session - Vous ne pouvez pas redémarrer ainsi une ligne de commande shell ; relancez la commande pour la réexécuter
Avant la v2.1.247, un processus hôte arrêté pouvait passer toutes les vérifications d'activité effectuées par le service d'arrière-plan : ouvrir la session affichait alors opening… · esc to cancel indéfiniment, et claude attach <id> attendait sans signaler d'erreur.
Session isn't responding
Vous avez ouvert une session en arrière-plan et le service d'arrière-plan a accepté l'ouverture, mais aucune sortie n'est arrivée pendant environ dix secondes. Claude Code en conclut que le processus qui relaie le terminal de la session ne peut pas transmettre de sortie, et met fin à la tentative au lieu d'attendre.
Dans l'agent view, Claude Code propose un redémarrage dans le pied de page :
Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).
Depuis le shell, claude attach <id> affiche la cause puis se termine :
Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).
Claude Code ne redémarre jamais à votre place une ligne qui exécute une commande shell, car un redémarrage réexécuterait la commande.
Que faire :
- Dans l'agent view, appuyez de nouveau sur
Entersur la même ligne. Claude Code arrête le processus qui ne répond pas et redémarre la session, et la conversation reprend. Rien n'est arrêté sans ce second appui - Depuis le shell, exécutez
claude stop <id>, puisclaude attach <id> - Pour une ligne de commande shell, appuyez sur
Ctrl+Xdans l'agent view ou exécutezclaude stop <id>pour l'arrêter ; relancez la commande pour la réexécuter
Session was stopped while the respawn was in flight
Vous avez ouvert une session en arrière-plan dont le processus ne s'exécutait pas et, pendant que Claude Code la redémarrait, un autre processus Claude Code l'a arrêtée, par exemple claude stop dans un autre terminal. Claude Code maintient la session arrêtée :
Session <id> was stopped while the respawn was in flight
Ouvrir une session que vous venez de lancer, pendant que son processus démarre encore, attend désormais le processus. Avant la v2.1.246, l'ouvrir à ce moment-là pouvait l'arrêter et afficher ce message.
Que faire :
- Si vous n'avez pas arrêté la session, ouvrez à nouveau sa ligne dans l'agent view ou exécutez
claude respawn <id>pour la redémarrer - Si vous l'avez arrêtée vous-même, il n'y a rien d'autre à faire : la session reste arrêtée
Agent de la session qui n'est plus disponible
Vous avez repris une session qui exécutait un agent personnalisé, lancé avec --agent ou le paramètre agent, et Claude Code n'a trouvé aucun agent portant ce nom. Il cherche d'abord dans le répertoire d'origine de la session, si vous avez approuvé cet espace de travail, puis dans le répertoire depuis lequel vous reprenez la session. La session reprend tout de même, mais avec les outils par défaut : les restrictions d'outils de l'agent ne s'appliquent donc plus :
This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.
L'avertissement ne nomme que les répertoires dans lesquels Claude Code a cherché, et il apparaît dans la conversation reprise, que vous réveilliez une session en arrière-plan, exécutiez /resume ou claude --resume, ou repreniez la session en mode non interactif, où il est également envoyé sur stderr. Les sessions utilisant --input-format stream-json ne l'affichent pas, car l'Agent SDK fournit les agents après le démarrage.
Claude Code n'enregistre pas la solution de repli dans la session : l'avertissement se répète donc à chaque reprise tant que vous n'agissez pas. L'agent intégré claude ne déclenche pas l'avertissement, puisque se rabattre sur l'ensemble d'outils par défaut ne change rien pour lui. Avant la v2.1.216, Claude Code poursuivait silencieusement avec l'agent par défaut, et la recherche ne couvrait que le répertoire depuis lequel vous repreniez la session : un agent limité au projet était donc perdu à toute reprise depuis un autre répertoire.
Que faire :
- Recréez le fichier de l'agent dans
.claude/agents/<name>.mdau sein du projet de la session, ou dans~/.claude/agents/<name>.mdpour un agent personnel, puis reprenez à nouveau la session - Ou reprenez la session avec
--agent <name>en nommant un agent qui existe, pour exécuter la session en tant que cet agent - Si l'agent est limité au projet et que vous n'avez pas approuvé le répertoire d'origine de la session, exécutez Claude Code une fois dans ce répertoire, acceptez la boîte de dialogue d'approbation, puis reprenez à nouveau la session
This session restarted after its next /loop wakeup was due
Un /loop à rythme autonome dans une session en arrière-plan s'est arrêté. Le processus de la session s'est terminé pendant que la boucle attendait son prochain réveil, et ce réveil est arrivé à échéance avant le démarrage du processus suivant de la session. Le réveil manqué ne se déclenche pas en retard. La notification indique le retard du réveil au moment où la session a redémarré :
This session restarted 12m after its next /loop wakeup was due, so that wakeup will not fire. The loop stays stopped until Claude schedules it again: reply to continue it.
Avant la v2.1.295, la boucle s'arrêtait dans cette situation sans notification.
Que faire :
- Pour poursuivre la boucle, répondez à la session en le demandant, par exemple
keep the loop running. Claude lit la notification avec votre réponse et peut planifier le prochain réveil - Si vous en avez terminé avec la boucle, ne faites rien. Elle est déjà arrêtée
No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder
La session en arrière-plan qui affiche ce message n'utilise pas votre passerelle LLM : elle n'a pas reçu l'adresse de la passerelle, et ses requêtes échouent donc. Le message apparaît dans la conversation à la place de la réponse de Claude, avec l'ID et le dossier de votre session renseignés :
No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder. To fix, run `claude respawn abc12345` from ~/project in another terminal where your gateway is set, or set ANTHROPIC_BASE_URL and its API key or token in a settings file's env block.
Lorsque vous êtes attaché à la session, la notification sous son prompt affiche la forme courte No LLM gateway: opened from another folder · respawn from ~/project.
Vous avez lancé, réveillé ou redémarré la session depuis un dossier autre que celui nommé par le message, alors que ANTHROPIC_BASE_URL était défini sur votre passerelle. Pour les cas où une passerelle exportée dans le shell atteint bien une session en arrière-plan, consultez Passerelle LLM.
Que faire :
- Vous avez utilisé l'agent view dans un projet dont les paramètres définissent la passerelle : placez
ANTHROPIC_BASE_URLet sa clé API ou son jeton dans le blocenvd'un fichier de paramètres. Utilisez~/.claude/settings.json, ou.claude/settings.local.jsondans le projet propre à la session, deux fichiers que lit une session relancée. Exécutez ensuiteclaude respawn <id>dans votre shell depuis n'importe quel dossier. - Vous avez exporté la passerelle dans votre terminal : dans un terminal où vous avez exporté les variables de la passerelle, faites
cdvers le dossier nommé par le message et exécutez la commandeclaude respawn <id>indiquée par le message. La session redémarre à partir de sa conversation enregistrée.- La passerelle n'atteint la session que si le superviseur a lui-même été démarré depuis un shell ayant exporté la même passerelle. Si ce n'est pas le cas, redémarrez-le depuis ce terminal comme l'explique Dispatch fails with
Could not resolve authentication method, puis exécutez à nouveau la commande respawn.
- La passerelle n'atteint la session que si le superviseur a lui-même été démarré depuis un shell ayant exporté la même passerelle. Si ce n'est pas le cas, redémarrez-le depuis ce terminal comme l'explique Dispatch fails with
Avant la v2.1.302, une session en arrière-plan dans cette situation affichait plutôt une erreur de connexion telle que Not logged in · Please run /login, sans nommer le dossier.
Erreurs du lanceur CLAUDE_CODE_PROCESS_WRAPPER
CLAUDE_CODE_PROCESS_WRAPPER est défini, mais sa valeur est inutilisable : Claude Code refuse donc de démarrer le processus concerné plutôt que de l'exécuter sans le lanceur. Les problèmes de configuration sont signalés par un message qui commence par le nom de la variable et indique la raison, par exemple :
CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file
Un lanceur qui démarre mais se termine sans se remplacer par Claude Code fait échouer la session qu'il démarrait, et la ligne de la session dans l'agent view indique que le lanceur must exec, not daemonize, suivi de tout ce que le lanceur a affiché. Une session qui ne peut pas démarrer ou atteindre le service d'arrière-plan à cause du lanceur signale le problème du lanceur comme raison dans Couldn't reach the background service (...).
Que faire :
- Définissez la variable sur le chemin absolu d'un exécutable qui se termine en appelant
exec "$@". Consultez le contrat du lanceur pour le contrat complet - Vérifiez
/status, qui affiche la commande de lancement résolue dans son entrée Self-exec et vous avertit lorsque le service d'arrière-plan en cours d'exécution ne lui correspond pas, ou exécutezclaude daemon statusdepuis un shell - Après avoir corrigé la valeur dans le bloc
envdes paramètres, redémarrez le service d'arrière-plan avecclaude daemon stop --anyafin que le prochain lancement démarre un service encapsulé
EUNKNOWN au démarrage d'une session en arrière-plan
Windows a refusé de démarrer un programme avec un code d'erreur qui n'a pas de nom standard : l'échec apparaît donc sous la forme EUNKNOWN. Le déclencheur habituel est une stratégie de restriction logicielle, comme une stratégie de groupe ou AppLocker, qui bloque le programme en cours de démarrage. L'erreur apparaît lorsque vous démarrez une session en arrière-plan avec /background ou claude --bg :
Couldn't reach the background service (spawn background service: EUNKNOWN: unknown error, uv_spawn) — run 'claude daemon status'
Sur certains comptes, le message indique daemon à la place de background service.
Sur une installation npm, une erreur EUNKNOWN qui apparaît pendant que npm install -g @anthropic-ai/claude-code remplace le binaire a la même cause que EACCES lors d'une réinstallation et disparaît lorsque vous réessayez une fois l'installation terminée.
Claude Code démarre le service d'arrière-plan via PowerShell afin que le service survive à la fermeture du terminal, en utilisant PowerShell 7 s'il est installé et Windows PowerShell 5.1 dans le cas contraire. Lorsqu'aucune des deux versions de PowerShell ne peut s'exécuter, Claude Code démarre directement le service : une stratégie qui bloque uniquement PowerShell ne provoque donc pas cette erreur.
Avant la v2.1.212, Claude Code utilisait uniquement Windows PowerShell 5.1 pour démarrer le service : toute machine sur laquelle une stratégie de groupe bloquait PowerShell 5.1 échouait donc avec Couldn't start the session — EUNKNOWN: unknown error, uv_spawn, même si PowerShell 7 était installé.
Que faire :
- Si le message indique
Couldn't start the session, effectuez une mise à jour vers la v2.1.212 ou ultérieure. Sur les versions antérieures, vous pouvez aussi exécuter d'abordclaude daemon rundans un terminal distinct, puis démarrer à nouveau la session en arrière-plan. Cette commande exécute le service d'arrière-plan au premier plan du terminal : le service ne dure donc que tant que ce terminal reste ouvert. - Si une installation npm remplaçait le binaire, attendez qu'elle se termine, puis démarrez à nouveau la session en arrière-plan
- Si l'erreur apparaît sur la v2.1.212 ou ultérieure alors qu'aucune installation npm n'est en cours, vérifiez auprès de votre administrateur Windows si une stratégie de restriction bloque l'exécutable de Claude Code
- Si le service d'arrière-plan s'arrête lorsque vous fermez le terminal, Claude Code l'a démarré sans PowerShell. Installez PowerShell 7, ou demandez à votre administrateur de débloquer PowerShell, afin que le service puisse survivre au terminal.
EACCES au démarrage d'une session en arrière-plan
Claude Code n'a pas pu exécuter son propre binaire pour démarrer le service d'arrière-plan qui héberge les sessions en arrière-plan. Sur une installation npm, cela signifie généralement que npm install -g @anthropic-ai/claude-code remplaçait le binaire à ce moment-là, que vous l'ayez lancé vous-même ou que ce soit le programme de mise à jour automatique. L'erreur apparaît lorsque vous ouvrez une session depuis l'agent view :
Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'
Lorsque vous démarrez une session avec /background ou claude --bg, la même raison apparaît dans Couldn't reach the background service (...). Pendant cette même fenêtre de réinstallation, l'erreur peut nommer un autre code, comme ENOENT ou ENOEXEC, ou EUNKNOWN ou EPERM sous Windows ; une erreur EUNKNOWN qui persiste malgré les nouvelles tentatives a une cause différente.
Sur une installation npm, Claude Code attend la fin de la réinstallation et réessaie de lui-même : jusqu'à dix secondes, et jusqu'à deux minutes tant qu'une installation npm de Claude Code est visiblement encore en cours sur la machine, ce qui couvre le cas d'un autre processus Claude Code en train de télécharger une mise à jour. Lorsque l'installation dure plus longtemps que cette attente, l'échec nomme la mise à jour au lieu du simple code d'erreur :
Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes
Avant la v2.1.257, l'attente s'arrêtait à dix secondes dans tous les cas : cette erreur apparaissait donc pendant qu'un autre processus Claude Code téléchargeait encore une mise à jour. Avant la v2.1.246, Claude Code échouait immédiatement, sans attendre.
Que faire :
- Attendez quelques secondes, puis ouvrez à nouveau la session ou relancez-la. Lorsque le message indique que Claude Code est en cours de mise à jour, réessayez une fois la mise à jour terminée.
- Si l'erreur persiste alors qu'aucune installation npm n'est en cours, votre utilisateur ne peut pas exécuter le binaire installé. Vérifiez ses permissions et celles de son répertoire, ou réinstallez Claude Code.
Background service exited before it became reachable
Le processus que Claude Code a démarré en tant que service d'arrière-plan s'est terminé avant d'accepter des connexions : Claude Code n'a donc pas pu ouvrir votre session. Lorsque le service a affiché une erreur avant de se terminer, la raison entre parenthèses indique le code de sortie ou le signal, ainsi que la première ligne affichée par le service, qui nomme ce qui l'a arrêté :
Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'
Lorsque vous ouvrez une session depuis l'agent view, la même raison suit Couldn't start the background service —. Lorsque le service n'a rien affiché avant de se terminer, le message indique plutôt nothing on stderr.
Claude Code signale l'échec avec la ligne d'erreur du service. Avant la v2.1.246, l'échec n'apparaissait qu'après une attente de 45 secondes, sous la forme background service did not become reachable within 45s, sans la ligne d'erreur du service.
Deux raisons citées ont des causes connues :
Error: claude native binary not installed.: une installation npm remplaçait le binaire de Claude Code à ce moment-là, et le service a donc exécuté l'espace réservé de npm. Réessayez une fois l'installation terminée ; si la ligne persiste sans installation en cours, terminez l'installation npm. Avant la v2.1.257, une mise à jour automatique npm sous macOS provoquait cet échec à chaque démarrage pendant la fenêtre d'installation.nothing on stderravec le code de sortie 1, à chaque démarrage, sous Windows :daemon.locknomme un processus que Claude Code ne peut ni signaler ni prouver terminé, si bien que chaque nouveau service conclut qu'un autre détient le verrou et se termine. Un verrou dont Claude Code peut prouver que l'auteur est terminé est remplacé automatiquement et ne provoque pas cet échec. Lorsque l'échec se répète à chaque démarrage, supprimez~/.claude/daemon.lock, puis ouvrez à nouveau la session ou relancez-la. Avant la v2.1.257, un tel verrou bloquait chaque démarrage jusqu'à ce que vous supprimiez le fichier.
Que faire :
- Si le message cite une ligne, corrigez ce qu'elle nomme, puis ouvrez à nouveau la session ou relancez-la. La tentative suivante redémarre le service
- Exécutez
claude daemon statuspour vérifier si un service est actuellement en cours d'exécution
Répertoire de travail inexistant au démarrage d'une session en arrière-plan
Le répertoire dans lequel vous avez démarré une session en arrière-plan a été supprimé pendant le démarrage de la session. Claude Code ne démarre pas la session, et le message nomme le répertoire manquant :
Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)
Avant la v2.1.257, la session semblait démarrer, puis apparaissait dans l'agent view comme une ligne en échec avec la même raison.
Avant la v2.1.281, ce message apparaissait également lorsque le répertoire avait déjà disparu avant que vous ne démarriez la session. Ce cas signale could not be resolved on disk.
Que faire :
- Recréez le répertoire nommé par le message, ou lancez la session depuis un répertoire existant, puis réessayez
Espace de travail non approuvé lors du lancement d'une session en arrière-plan
Vous avez démarré ou redémarré une session en arrière-plan dans un répertoire que vous n'avez pas approuvé, et la boîte de dialogue d'approbation de l'espace de travail n'a pas pu s'afficher pour vous le demander. Claude Code ne démarre pas la session :
Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.
Depuis un terminal situé dans le répertoire propre à la session, la même commande affiche plutôt la boîte de dialogue d'approbation et démarre la session dès que vous acceptez. Ce message apparaît là où aucune boîte de dialogue ne peut s'afficher, par exemple dans un script, ou lorsque vous redémarrez une session depuis un répertoire autre que le sien.
Deux variantes nomment une cause différente :
The home directory is trusted one session at a time: le répertoire de la session est votre répertoire personnel. Claude Code n'enregistre jamais l'approbation pour le répertoire personnel : avoir accepté la boîte de dialogue à cet endroit lors d'une session précédente ne compte donc pas.<path> could not be resolved on disk: Claude Code n'a pas trouvé le répertoire de la session sur le disque.
Avant la v2.1.286, sous Windows, ce message pouvait aussi apparaître dans un répertoire que vous aviez déjà approuvé, si son enregistrement d'approbation avait été sauvegardé avec un chemin dont la casse différait. Effectuez une mise à jour vers la v2.1.286 ou ultérieure.
Que faire :
- Exécutez
claudedans le répertoire nommé par le message et acceptez la boîte de dialogue d'approbation, puis exécutez à nouveau la commande - Pour le message concernant le répertoire personnel, exécutez la commande depuis un terminal situé dans votre répertoire personnel afin que la boîte de dialogue puisse s'afficher, ou démarrez plutôt la session depuis un répertoire de projet
- Pour le message
could not be resolved on disk, recréez le répertoire, ou démarrez une nouvelle session depuis un répertoire existant
Erreurs du wrapper et de l'IDE
Ces erreurs proviennent du programme qui a lancé Claude Code pour vous, comme une extension IDE ou une application Agent SDK, plutôt que de Claude Code lui-même.
Le processus Claude Code s'est fermé avec le code N
Le processus claude sous-jacent s'est fermé avec un code non nul. Le code de sortie seul ne dit pas ce qui a échoué : l'erreur réelle se trouve dans la sortie du processus lui-même, que le wrapper ajoute s'il en a capturé une, sinon il la conserve dans ses journaux.
Error: Claude Code process exited with code 1
Sur Windows, la version native peut se fermer avec le code 4294967295 juste après la fin d'un tour. Quand cette sortie se produit à une limite de tour, sans message en attente et sans tâche de fond en cours d'exécution, l'extension VS Code ferme la session silencieusement au lieu d'afficher cette erreur. Votre message suivant reprend la conversation.
Avant la v2.1.273, l'extension affichait l'erreur pour cette sortie à chaque limite de tour, même si rien n'était perdu.
Ce qu'il faut faire :
- Dans VS Code, suivez le lien View output logs affiché avec l'erreur pour voir l'échec sous-jacent
- Dans une application Agent SDK, capturez l'erreur autour de votre boucle de messages. Les entrées sous Sortie du processus CLI couvrent ce que votre code reçoit dans chaque langage SDK.
- Exécutez
claudedans un terminal dans le même projet. L'échec se reproduit généralement là avec son vrai message d'erreur, que vous pouvez ensuite rechercher sur cette page. - Exécutez
claude doctordans un terminal pour vérifier l'installation et la configuration
Impossible de localiser la CLI Claude sur PATH
L'extension VS Code affiche cette erreur sur Windows quand vous ouvrez Claude Code dans le terminal intégré, le shell du terminal est PowerShell, et l'extension ne peut pas trouver l'exécutable claude installé sur PATH. L'extension refuse de lancer Claude Code jusqu'à ce qu'elle trouve le claude installé sur PATH.
Failed to run Claude Code: Error: Could not locate the Claude CLI on PATH. Launching by name in a PowerShell terminal would run a 'claude' from the open folder instead of the installed CLI, so the launch was blocked. Make sure the Claude CLI's install directory is on your system PATH (not only your PowerShell profile), then restart VS Code and try again. VS Code reads PATH when it starts, so PATH changes take effect only after a restart.
Ce qu'il faut faire :
- Ouvrez une nouvelle fenêtre PowerShell en dehors de VS Code et exécutez
where.exe claude. Si elle n'affiche pas de chemin, la CLI n'est pas sur votre PATH : ajoutez son répertoire d'installation en suivant Vérifiez votre PATH. Si elle affiche un chemin, l'entrée provient de votre profil PowerShell ou d'une modification de PATH que VS Code n'a pas encore détectée ; les deux étapes suivantes couvrent ces cas. - Définissez l'entrée PATH comme variable d'environnement utilisateur ou système, pas dans votre profil PowerShell. L'extension n'exécute pas votre profil, donc une modification de PATH qui ne se trouve que là ne l'atteint jamais.
- Redémarrez VS Code après avoir modifié PATH. L'extension vérifie le PATH que VS Code a capturé au démarrage, donc une modification de PATH ne prend effet qu'après un redémarrage.
The Claude Code program for this computer could not be found
L'extension VS Code a cherché la copie de Claude Code qu'elle embarque et n'en a trouvé aucune compilée pour votre ordinateur. Le message indique le build dont votre ordinateur a besoin :
The Claude Code program for this computer, the Linux (linux-x64) build, could not be found.
Ce qu'il faut faire :
- Si le message indique quel build l'extension contient, vous avez le package de l'extension destiné à une autre plateforme : installez le package conçu pour le build indiqué dans le message
- Si le message n'indique pas quel build l'extension contient, réinstallez l'extension Claude Code depuis la vue Extensions de votre éditeur
- Ou, dans les deux cas, définissez
claudeCode.claudeProcessWrappersur un binaireclaudeinstallé séparément
Avant la v2.1.290, cette erreur apparaissait sous la forme Unsupported platform: <platform>-<arch>. No compatible Claude Code binary found.
La connexion à Claude Code s'est terminée avant la fin de ce message
L'extension VS Code a envoyé votre message au processus claude, et la connexion s'est terminée sans erreur avant que le processus l'acknowledge ou le termine. L'extension ne peut pas dire si le message a été traité, donc elle vous demande de l'envoyer à nouveau :
The connection to Claude Code ended before this message completed — it may not have been processed, so please send it again.
Ce qu'il faut faire :
- Envoyez le message à nouveau. Le message suivant démarre un nouveau processus
claudequi reprend la conversation. - Si cela se répète, exécutez
claudedans un terminal dans le même projet. Un échec qui continue à terminer le processus se reproduit généralement là avec son vrai message d'erreur.
Avertissements et erreurs de rembobinage
Ces messages proviennent d'une restauration de code /rewind. « Restored the code, but skipped N files » est un avertissement indiquant que Claude Code a ignoré certains chemins. « No files were restored » est une erreur signifiant qu'aucun fichier n'a été restauré.
Restored the code, but skipped files
Une restauration de code /rewind a ignoré un ou plusieurs chemins suivis au lieu de les écrire ou de les supprimer. Claude Code ignore un chemin quand :
- il est, ou est devenu, un lien symbolique, un lien physique, ou un autre fichier non régulier
- son répertoire a changé depuis le point de contrôle
- sa sauvegarde ne peut pas être lue en toute sécurité
Les chemins ignorés conservent leur contenu actuel. Avant la v2.1.216, /rewind écrivait et supprimait à travers les liens aux chemins suivis, et ne signalait pas une restauration partielle.
Restored the code, but skipped 2 files: the tracked path is (or became) a link or other non-regular file, its directory changed since the checkpoint, or its backup could not be safely read. Skipped files were left untouched — run with --debug for the paths.
Que faire :
- Identifiez les fichiers qui ont été ignorés pour pouvoir traiter chacun d'eux avec les étapes ci-dessous. Le message ne donne qu'un nombre ; le journal de débogage à
~/.claude/debug/<session-id>.txtnomme chaque chemin ignoré lors de l'exécution de la restauration, donc activez la journalisation de débogage avec/debugavant votre prochain rembobinage. Sur macOS ou Linux, vous pouvez plutôt trouver les liens directement :find . -type lpour les liens symboliques etfind . -type f -links +1pour les fichiers liés physiquement. - Si un fichier ignoré est un lien que vous avez créé intentionnellement, comme un fichier de configuration géré par un gestionnaire de dotfiles ou un fichier lié physiquement par des outils comme pnpm, le rembobinage a laissé son contenu intact. Pour annuler les modifications de la session, demandez à Claude d'inverser la modification ou modifiez le fichier vous-même
- Si vous n'avez pas créé le lien, inspectez le chemin avant de faire confiance à son contenu
No files were restored
Claude Code affiche ce message quand vous restaurez du code avec /rewind et qu'il ne peut restaurer aucun des fichiers de ce point de contrôle. Pour chaque fichier, soit la sauvegarde que Claude Code a enregistrée avant de le modifier est manquante, soit Claude Code n'a pas pu écrire ou supprimer le fichier.
Failed to restore the code:
No files were restored: 1 file failed (backup missing, or the file could not be updated)
Claude Code supprime les sauvegardes d'une session lors du balayage de rétention, par défaut environ 30 jours après que la session en ait enregistré une pour la dernière fois. Si vous reprenez une session après cela, /rewind liste toujours ses points de contrôle, mais le rembobinage vers l'un d'eux peut échouer avec cette erreur. Si le message dit aussi « N paths were skipped for link safety », consultez Restored the code, but skipped files pour ces chemins.
Quand vous créez une branche d'une session, par exemple avec --fork-session ou /branch, Claude Code copie les sauvegardes de la session d'origine dans la branche. Quand Claude Code ne peut pas copier une sauvegarde, par exemple parce que le disque est plein, cette sauvegarde est manquante dans la branche. Le rembobinage vers un point de contrôle qui en a besoin peut échouer avec cette erreur.
Que faire :
- Annulez les modifications d'une autre manière : demandez à Claude d'inverser ses modifications, ou restaurez les fichiers à partir du contrôle de version. Quand les sauvegardes sont parties, exécuter
/rewindà nouveau échoue de la même manière. - Si Claude Code n'a pas pu écrire ou supprimer un fichier, corrigez ce qui bloque l'écriture, comme les permissions de fichier, puis exécutez
/rewindà nouveau. - Pour conserver les sauvegardes plus longtemps dans les futures sessions, augmentez
cleanupPeriodDays.
Avant la v2.1.260, Claude Code ignorait silencieusement les fichiers dont les sauvegardes étaient manquantes, et le rembobinage semblait réussir.
Avertissements d'enregistrement de session
Claude Code affiche ces avertissements sur une ligne persistante sous la zone de saisie lorsqu'il n'enregistre pas votre transcription de session. La session continue de fonctionner de toute façon ; les avertissements vous indiquent que la session peut être manquante lors d'une utilisation ultérieure de --resume.
Les écritures de transcription échouent
Claude Code enregistre la transcription sur le disque au fur et à mesure que vous travaillez, et ses écritures dans le fichier de transcription échouent. Le message nomme la cause avec le code d'erreur sous-jacent, par exemple un disque plein :
Transcript writes are failing (disk full — ENOSPC) · recent messages may not be saved for resume
L'avertissement apparaît à différents moments selon l'erreur :
- À la première défaillance pour les conditions qui ne s'effacent pas d'elles-mêmes : un disque plein, un quota de disque dépassé, un système de fichiers en lecture seule, un chemin dépassant la limite de longueur du système de fichiers, ou, sur macOS et Linux, une erreur de permission
- Après des défaillances répétées s'étendant sur au moins une minute pour tout le reste, y compris les erreurs de permission sur Windows, où une analyse antivirus peut échouer une seule écriture qui réussit ensuite à la nouvelle tentative
Avant la v2.1.217, Claude Code supprimait les écritures défaillantes sans avertissement, et une --resume ultérieure manquant de messages récents était le premier signe.
Que faire :
- Corrigez la condition que le code d'erreur nomme : libérez l'espace disque pour
ENOSPC; augmentez ou effacez le quota pourEDQUOT; restaurez l'accès en écriture à l'emplacement de la transcription pourEACCES,EPERM, ouEROFS - L'avertissement s'efface de lui-même à la prochaine écriture réussie ; aucun redémarrage n'est nécessaire
- Les messages envoyés pendant que l'avertissement s'affichait peuvent toujours être manquants lorsque vous reprenez la session ultérieurement
L'enregistrement de la transcription est désactivé car CLAUDE_CODE_SKIP_PROMPT_HISTORY est défini
Cette session a démarré avec CLAUDE_CODE_SKIP_PROMPT_HISTORY défini, donc Claude Code n'écrit aucune transcription ou historique d'invite pour celle-ci :
Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set · --resume will not find this session; if unintended, unset it and restart
La variable est une exclusion intentionnelle pour les sessions scriptées éphémères, mais elle peut également atteindre une session via un profil shell, un script wrapper, ou un processus parent qui l'a exportée.
Que faire :
- Si vous avez défini la variable intentionnellement, aucune action n'est nécessaire ; l'avis confirme que la session n'apparaîtra pas dans
--resume,--continue, ou l'historique de la flèche vers le haut - Si ce n'est pas le cas, supprimez la variable du shell ou du script qui lance
claude, puis démarrez une nouvelle session. Les messages de la session actuelle ne sont pas enregistrés rétroactivement.
L'enregistrement de la transcription est désactivé en raison d'un marqueur CLAUDE_CODE_CHILD_SESSION hérité
Claude Code définit CLAUDE_CODE_CHILD_SESSION dans les sous-processus qu'il génère, et traite une session interactive qui l'hérite comme imbriquée : Claude Code n'enregistre aucune transcription pour celle-ci, donc les sessions que Claude lui-même démarre ne remplissent pas votre liste --resume. Cet avis signifie que votre session actuelle a hérité du marqueur :
Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker · restart with CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1 to keep future transcripts
L'avis est attendu lorsque vous avez exécuté claude depuis l'intérieur d'une autre session Claude Code ; il signale une mauvaise classification lorsque le marqueur a fui à travers un intermédiaire de longue durée, par exemple un terminal, une session screen, ou un lanceur qu'une session Claude Code a initialement démarré.
À l'intérieur de tmux, Claude Code détecte un marqueur qui est arrivé via l'environnement global du serveur tmux et continue d'enregistrer, donc cet avis n'apparaît pas pour ce cas.
Que faire :
- Si vous avez démarré cette session depuis l'intérieur d'une autre session Claude Code intentionnellement, aucune action n'est nécessaire
- Si c'est une session de niveau supérieur, quittez et redémarrez avec
CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1défini. L'enregistrement s'applique à partir du redémarrage, donc les messages envoyés avant celui-ci ne sont pas enregistrés. - Pour corriger les lancements futurs depuis le même terminal ou lanceur, supprimez
CLAUDE_CODE_CHILD_SESSIONde son environnement
Avertissements de configuration
Pour trouver un avertissement que Claude Code a émis au démarrage dans une session interactive, regardez d'abord sous la bannière de démarrage, puis dans le journal de débogage :
- Ligne sous la bannière de démarrage : certains avertissements concernant les règles de permission, comme
⚠ Deny rule Bsh matches no tool · check for typos - Journal de débogage : Claude Code ne conserve ce journal qu'en mode débogage. Pour y lire les avertissements, démarrez Claude Code depuis votre shell avec
claude --debug-file <path>, puis ouvrez le fichier situé à ce chemin.
En mode non interactif avec une sortie texte, en dehors d'une session en arrière-plan, cherchez les avertissements de démarrage sur stderr.
Avant la v2.1.305, regardez aussi sur stderr dans une session interactive, y compris pour les avertissements de règles de permission qui s'affichent désormais comme des lignes sous la bannière.
Claude Code s'est fermé après une erreur d'interface irrécupérable
Claude Code imprime ce message quand il se ferme parce que son interface de terminal a rencontré une erreur dont elle ne peut pas se rétablir, dans l'un ou l'autre rendu. La deuxième phrase n'apparaît que si l'erreur s'est produite pendant le démarrage du rendu plein écran :
Claude Code exited after an unrecoverable interface error (<error>). It happened while the fullscreen renderer was starting, so the next launch will use the classic renderer (CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 forces that any time).
À faire :
- Redémarrez Claude Code. Pour reprendre la conversation, exécutez
claude --resumedans le même répertoire. - Si le message nomme le rendu plein écran, Rendu en plein écran indique ce que le prochain lancement fait, ce qui dépend de la façon dont vous avez activé le plein écran, et comment réessayer le plein écran ou conserver le rendu classique.
Avant la v2.1.236, Claude Code se fermait sans imprimer de message après ce type d'erreur.
Les descriptions d'agent dépassent la limite de 15 000 tokens
Claude Code affiche cet avertissement comme un avis de démarrage dans la vue de conversation plutôt que sur stderr. Les descriptions combinées de vos sous-agents, à l'exception des agents intégrés, dépassent 15 000 tokens selon l'estimation de Claude Code. Chaque agent compte son nom plus son frontmatter description. Claude Code charge chaque agent, que le total dépasse ou non la limite, donc l'avertissement ne change pas ce qui se charge.
Agent descriptions are over the 15.0k-token limit (~16.2k tokens) · ask Claude to trim agent descriptions in .claude/agents/
À faire :
- Raccourcissez le frontmatter
descriptionde vos fichiers d'agent, ou demandez à Claude de les raccourcir pour vous. - Supprimez les fichiers d'agent que vous n'utilisez plus.
Le hook a besoin de guillemets autour d'un chemin contenant un espace
Cette notification dans la vue de conversation signifie que le script d'un hook ne s'est pas exécuté parce que son chemin contient un espace et n'est pas entre guillemets. Ce hook est un hook asyncRewake sous forme shell. Dans sa command, un interpréteur tel que python3 est suivi d'un espace réservé de chemin sans guillemets, et le chemin résolu contient un espace.
La notification commence par le nom de l'événement du hook et nomme le script :
Stop hook needs quotes around a path with a space (check.py)
À faire :
- Dans la
commanddu hook qui exécute le script que la notification nomme, entourez le chemin de guillemets doubles. Dans un fichier JSON, écrivez-le sous la forme"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\"".
Fichier d'instructions non chargé
Cet avis dans la vue de conversation d'une session interactive signifie qu'un fichier de mémoire existant n'a pas été chargé. Une restriction de lecture est en vigueur.
Instruction file not loaded (a Read deny rule covers it):
path: .claude/rules/shared.md
La parenthèse nomme la raison, par exemple :
a Read deny rule covers it: une règle de refusReadcorrespond au chemin du fichier tel qu'il est écrit ou à l'endroit où mène un lien sur celui-ciit's read from outside your working directories, where reads are blocked: le fichier se résout en dehors des répertoires de travail alors quepermissions.blockReadsOutsideWorkingDirectoriesest activéwhere it leads couldn't be worked out: par exemple, le fichier est un lien qui ramène à lui-même, directement ou via d'autres liens
Quand le propre fichier de mémoire d'un sous-répertoire ne peut pas être chargé pendant que Claude travaille avec des fichiers qui s'y trouvent, les mêmes lignes apparaissent dans la conversation pendant le tour. Quand plus de fichiers sont retenus que les lignes n'en nomment, une dernière ligne compte le reste, par exemple and 3 more instruction files not loaded.
À faire :
- Rien, si la restriction est voulue : la session s'exécute sans les instructions de ce fichier.
- Pour charger un fichier retenu parce que
a Read deny rule covers it, supprimez ou restreignez cette règle. Démarrez ensuite une nouvelle session. - Pour charger un fichier retenu parce que
it's read from outside your working directories, where reads are blocked, déplacez-le, ou la cible de son lien, dans les répertoires de travail. Démarrez ensuite une nouvelle session. - Pour charger un fichier retenu parce que
where it leads couldn't be worked out, vérifiez si le fichier est un lien qui ramène à lui-même. Si c'est le cas, faites pointer le lien vers un fichier qui existe ou remplacez-le par un fichier ordinaire. Démarrez ensuite une nouvelle session.
Avant la v2.1.292, l'avis nommait le fichier à la fin de la même ligne, après la raison.
Un skill, une commande ou un workflow n'a pas été chargé parce que son nom est réservé
Un dossier de skill, un frontmatter name, un fichier ou un sous-dossier dans .claude/commands/, ou un workflow enregistré utilise le nom anthropic-skills ou un nom qui commence par anthropic-skills:. Claude Code réserve ce nom pour les skills synchronisés depuis claude.ai et ne charge pas cet élément.
Claude Code affiche cet avertissement comme un avis de démarrage dans la vue de conversation plutôt que sur stderr :
Not loaded: rename .claude/skills/anthropic-skills, then restart — its name uses "anthropic-skills", a name reserved for the skills synced from your claude.ai account
L'avis nomme ce qu'il faut changer pour le premier élément qu'il a refusé : un dossier ou un fichier à renommer, une ligne name: à modifier, ou un workflow à renommer. Quand plus d'un élément a été refusé, l'avis se termine par un nombre tel que · 2 more, et le journal de débogage nomme chacun.
À faire :
- Renommez l'élément que l'avis nomme, ou modifiez la ligne
name:vers laquelle il pointe, puis redémarrez la session.
Avant la v2.1.282, Claude Code chargeait les skills et les commandes avec ces noms.
Nom de skill ou de commande refusé
Cet avis de démarrage signifie que Claude Code a refusé le nom d'au moins un skill ou d'une commande personnalisée, qui n'a donc pas été chargé ou a été chargé sans son champ name :
1 skill or command name refused: run with --debug to see which ([names]), rename, then restart — a name may not hold hidden, direction-changing or blank-like characters, < or >, or be over 256 characters
- Non chargé : Claude Code a refusé le nom sous lequel un skill ou une commande est connu, comme le nom de son répertoire ou le nom ou le sous-dossier d'un fichier de commande. Il est absent du menu
/et Claude ne peut pas l'invoquer. Sa ligne dans le journal de débogage indique<name> is not offered. - Champ
nameignoré : Claude Code a refusé lenamedu frontmatter d'un skill. Le skill se charge quand même, mais le menu/n'affiche pas la valeurnameet la saisir n'invoque pas le skill. Sa ligne dans le journal de débogage indique<name value> is not shown for <skill>.
À faire :
- Démarrez Claude Code avec
claude --debugdepuis votre shell et recherchez[names]dans le journal de débogage. Chaque nom que l'avis compte y a une ligne. La ligne écrit certains caractères cachés sous forme de codes, comme\u{200B}pour une espace de largeur nulle, afin que vous puissiez voir où ils se trouvent. - Supprimez les caractères qu'un nom de skill ne peut pas contenir en renommant le dossier ou le fichier ou en modifiant la ligne
name:, ou raccourcissez un nom de plus de 256 caractères. Redémarrez ensuite la session, sauf si le fichier se trouve dans un répertoire que Claude Code surveille pour détecter les modifications. Pour un skill provenant d'un plugin que vous n'avez pas écrit, demandez à l'auteur du plugin de le renommer.
L'espace de travail n'a pas été approuvé
Claude Code a trouvé des règles permissions.allow ou des entrées permissions.additionalDirectories dans le fichier .claude/settings.json ou .claude/settings.local.json du projet et ne les a pas appliquées, car les règles d'autorisation des paramètres du projet nécessitent l'approbation de l'espace de travail. Le nombre, le nom du paramètre et le fichier nommé dans le message varient selon votre configuration. Les règles deny et ask ne sont pas affectées.
Ignoring 2 permissions.allow entries from .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/Users/you/project"].hasTrustDialogAccepted: true in /Users/you/.claude.json.
À faire :
- Exécutez
claudedans le répertoire et acceptez la boîte de dialogue d'approbation. Règles d'autorisation du projet et approbation de l'espace de travail indique quel dossier cette acceptation couvre. - En mode non interactif avec
-p, aucune boîte de dialogue n'est affichée. Définissez l'entréehasTrustDialogAccepteddans~/.claude.jsonen utilisant la cléprojectsexacte que le message imprime. - Si le message nomme
.claude/settings.local.jsonet que vous avez démarré Claude Code en dehors d'un dépôt git ou dans votre répertoire personnel, mettez à jour vers la v2.1.200 ou ultérieure. Les versions 2.1.196 à 2.1.199 ont traité votre propre.claude/settings.local.jsoncomme fourni par le dépôt dans ces espaces de travail. Sur la v2.1.207 et ultérieure, la mise à jour ne suffit pas en dehors d'un dépôt git si vous n'avez pas approuvé le dossier : déterminer qu'un dossier ne se trouve pas dans un dépôt exécute git, et Claude Code n'exécute cette vérification qu'après que vous acceptiez la boîte de dialogue d'approbation, donc utilisez la première étape. Votre répertoire personnel et tout autre répertoire de configuration sont exempts et n'attendent pas la boîte de dialogue. Consultez Règles d'autorisation du projet et approbation de l'espace de travail.
Le répertoire de travail est un chemin réseau
Claude Code n'ajoute pas les chemins réseau comme répertoires de travail. La recherche d'un chemin réseau peut contacter l'hôte qu'il nomme, et sur Windows, ce contact peut envoyer vos identifiants à l'hôte. Claude Code refuse donc le chemin sans le rechercher.
Vous voyez ce message quand vous exécutez /add-dir avec un chemin réseau :
\\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet carry remote-read trust).
Quand vous en passez un au démarrage à la place, avec --add-dir ou dans permissions.additionalDirectories, Claude Code démarre sans ce répertoire. Dans une session interactive, vous ne voyez pas le message au démarrage, car il va dans le journal de débogage avec les autres avertissements de démarrage.
Les chemins que Claude Code refuse de cette façon incluent :
- Les partages UNC tels que
\\server\share - Les chemins de montage automatique tels que
/net/<host>, sauf si vous avez lancé Claude Code à partir d'un répertoire sous le montage automatique de cet hôte. Les lectures sous ce montage automatique passent toujours par la vérification des chemins réseau. - Les chemins locaux qui atteignent un emplacement réseau via un lien symbolique ou une jonction
Les lettres de lecteur mappées et les chemins \\wsl$ ne comptent pas comme des chemins réseau.
À faire :
- Sur Windows, mappez le partage à une lettre de lecteur et passez le lecteur au lancement. Dans PowerShell, par exemple, exécutez
net use Z: \\server\sharepuisclaude --add-dir Z:\. - Sur macOS ou Linux, montez le partage à un chemin local et ajoutez ce chemin à la place.
- Si le chemin se trouve dans
permissions.additionalDirectories, supprimez-le du fichier de paramètres qui le répertorie.
Avant la v2.1.257, Claude Code acceptait un chemin réseau accessible comme répertoire de travail.
Les paramètres gérés à distance n'ont pas pu être chargés
Votre session est éligible pour les paramètres gérés par le serveur, mais Claude Code n'a pas pu les récupérer ou n'a pas pu appliquer ce que le serveur a renvoyé, donc il affiche cet avertissement dans les sessions interactives.
La cause entre parenthèses nomme ce qui a échoué, par exemple network error, request timed out, ou authentication rejected (401). La cause no setting in the server response could be applied as written signifie que le serveur a répondu mais aucun des paramètres qu'il a renvoyés n'a réussi la validation. Avant la v2.1.282, cette cause lisait server returned invalid settings.
Le reste de la ligne indique la politique sur laquelle la session s'exécute :
- Paramètres mis en cache à partir d'une récupération antérieure réussie : Claude Code exécute la session sur cette politique mise en cache, sauf les variables d'environnement retenues, et la ligne lit
using cached policy. - Pas de cache : Claude Code exécute la session sans paramètres gérés par le serveur, et la ligne lit
no remote policy applied.
À faire :
- Agissez sur la cause que le message nomme : pour une cause réseau, vérifiez que cette machine peut atteindre
api.anthropic.com; pour une cause d'authentification, vérifiez votre connexion avec/status - Pour
no setting in the server response could be applied as written, demandez à votre administrateur de corriger les paramètres sur le serveur - Exécutez
/statusouclaude doctorpour le diagnostic complet
Avant la v2.1.248, Claude Code ne signalait une récupération de paramètres échouée que dans le journal de débogage.
Les paramètres gérés n'ont pas été approuvés
Les paramètres gérés par le serveur de votre organisation incluent des paramètres qui nécessitent votre approbation, et vous avez refusé la boîte de dialogue d'approbation de sécurité, donc Claude Code se ferme sans les appliquer :
Managed settings were not approved; exiting without applying them.
À faire :
- Redémarrez Claude Code et approuvez la boîte de dialogue pour continuer selon les paramètres de votre organisation. Une boîte de dialogue refusée n'est pas mémorisée, donc elle réapparaît au prochain démarrage.
- Si vous n'êtes pas sûr d'un paramètre que la boîte de dialogue répertorie, demandez à celui qui maintient les paramètres gérés de votre organisation avant d'approuver
Les paramètres gérés nécessitent votre approbation
Les paramètres gérés par le serveur de votre organisation incluent des paramètres qui nécessitent votre approbation dans la boîte de dialogue d'approbation de sécurité. La commande claude plugin que vous avez exécutée n'a pas pu lire depuis le clavier, elle n'a donc pas pu afficher cette boîte de dialogue. Cela se produit quand vous transmettez son entrée par un pipe ou une redirection et que, sur macOS et Linux, elle ne peut pas non plus ouvrir /dev/tty. La commande s'est arrêtée avant d'effectuer la moindre modification :
Your organization's managed settings need your approval, which couldn't be asked for here. Run `claude` in a terminal and approve them, then run this command again.
À faire :
- Exécutez
claudedans un terminal et approuvez les paramètres quand la boîte de dialogue apparaît, puis exécutez à nouveau la même commandeclaude plugin. Claude Code conserve l'approbation et les paramètres approuvés dans votre répertoire de configuration. Si la commande qui s'est arrêtée a été exécutée en tant qu'un autre utilisateur ou avecCLAUDE_CONFIG_DIRdéfini, exécutezclaudede la même façon pour que les deux utilisent le même répertoire.
Les paramètres gérés bloquent le modèle par défaut
Les paramètres gérés de votre organisation bloquent le modèle auquel l'option Par défaut se résout et chaque modèle auquel il pourrait rétrograder. Une session qui démarrerait sur l'option Par défaut se ferme au démarrage au lieu d'exécuter un modèle bloqué. Le message que vous voyez dépend du paramètre qui le bloque. Quand une liste deniedModels le bloque, le message lit :
Claude Code can't start: your organization's managed settings block the default model (claude-opus-5-5) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".
Quand une liste availableModels avec availableModelsMatch défini à "exact" l'omet, le message lit :
Claude Code can't start: your organization allows only the models listed in "availableModels", and none of them can be used as the default model (claude-opus-5-5 isn't listed). Ask your administrator to update "availableModels".
À faire :
- Si vous administrez les paramètres, ajoutez un modèle que vos utilisateurs peuvent exécuter à
availableModels, ou réduisez les entréesdeniedModelsqui bloquent chaque modèle de secours. Bloquer des modèles ou des versions spécifiques décrit comment l'option Par défaut rétrograde - Si vous ne les administrez pas, envoyez le message à votre administrateur. Vos propres fichiers de paramètres ne peuvent pas élargir une liste
availableModelsoudeniedModelsgérée
Les paramètres gérés ne permettent pas ce fournisseur d'API
Les paramètres gérés de votre organisation définissent une liste allowedProviders, et le fournisseur d'API de la session n'est pas sur la liste ou la session utilise un endpoint qui n'est pas épinglé de la façon que cette entrée exige. Claude Code refuse au démarrage, avant une connexion, ou quand la session contacte ensuite l'API. Le message commence par les fournisseurs autorisés :
Your organization's managed settings allow Claude Code to use: Anthropic API, Amazon Bedrock.
Quand la liste est vide, le message lit à la place :
Your organization's managed settings allow Claude Code to use no API provider at all (allowedProviders is an empty list), so it cannot start on this machine.
Quand chaque entrée n'est pas reconnue, la parenthèse lit (allowedProviders lists only unrecognized entries) à la place.
À faire :
- Suivez les étapes
To continue:du message - Si vous administrez les paramètres, les lignes du message commençant par
Admins:nomment l'entrée à ajouter ou la valeur à épingler, et l'entréeallowedProvidersindique quel blocenvde quelle source peut l'épingler
Le serveur MCP est bloqué par la politique gérée par l'entreprise
Vous avez sélectionné Reconnect sur un serveur dans /mcp, ou vous avez réactivé un serveur désactivé là, et un paramètre qui restreint les serveurs MCP bloque ce serveur. Claude Code refuse de le connecter et affiche :
MCP server <name> is blocked by enterprise managed policy
N'importe lequel de ces paramètres peut produire le message :
- Une entrée
deniedMcpServersqui correspond au serveur, y compris une dans votre propre~/.claude/settings.jsonou le.claude/settings.jsondu projet - Une liste
allowedMcpServersà laquelle le serveur ne correspond pas strictPluginOnlyCustomizationavecmcpverrouillé, qui bloque les serveurs configurés dans~/.claude.jsonet.mcp.jsondisableClaudeAiConnectors, quand le serveur est un connecteur claude.ai
À faire :
- Vérifiez vos propres fichiers de paramètres utilisateur et projet pour l'un de ces paramètres et modifiez-le ou supprimez-le
- Si aucun de vos propres paramètres n'explique le blocage, demandez à votre administrateur quel paramètre géré bloque le serveur
Avant la v2.1.257, Reconnect et réactiver dans /mcp pouvaient connecter un serveur qu'une mise à jour de politique en cours de session avait bloqué.
Le nom du serveur MCP est réservé
Ce message nomme l'un de vos serveurs MCP, dont le nom fait partie de ceux que Claude Code réserve, comme les noms de ses serveurs intégrés :
"workspace" is a reserved MCP server name and was not loaded
À faire :
- Renommez le serveur là où vous le définissez, par exemple de
workspaceenmy-workspace - Pour les autres noms réservés à éviter, consultez Avertissements de configuration MCP
Le document des paramètres gérés n'a pas pu être analysé
Votre organisation déploie des paramètres gérés, et l'un des documents déployés est présent mais ne peut pas être analysé comme un objet JSON, donc Claude Code se ferme avec le code 1 au démarrage au lieu de s'exécuter sans la politique que le document porte. La ligne nomme la source échouée avant le message :
/Library/Application Support/ClaudeCode/managed-settings.json: Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.
La source est l'une des suivantes :
- Le chemin du fichier
managed-settings.jsonou un fichier drop-in sousmanaged-settings.d - Le profil des préférences gérées macOS,
per-user managed preferencesoudevice-level managed preferences - La valeur du registre Windows,
Registry: HKLM\SOFTWARE\Policies\ClaudeCode\Settings
Trouver les entrées que Claude Code a supprimées répertorie ce qui rend chaque source non analysable.
Claude Code refuse de démarrer même quand une autre source d'administration fournit une politique valide. Vous voyez cette erreur dans les sessions interactives, claude -p, les sessions du SDK Agent, les sessions en arrière-plan, et la plupart des sous-commandes, y compris claude doctor. Le refus échoue fermé à dessein : les paramètres dans un document que Claude Code ne peut pas analyser ne peuvent pas être appliqués, et le démarrage quand même exécuterait les sessions sans les contrôles de l'organisation.
Un problème de schéma dans un document analysable ne produit pas cette erreur. Trouver les entrées que Claude Code a supprimées couvre ce que Claude Code fait dans ce cas.
Quand un répertoire managed-settings.d/ existe mais ne peut pas être répertorié, Claude Code signale Managed settings drop-in directory could not be read: suivi de l'erreur sous-jacente à la place. Trouver les entrées que Claude Code a supprimées indique quand un échec de lecture provoque la fermeture au démarrage.
À faire :
- Si vous administrez la machine, corrigez le document nommé pour qu'il s'analyse comme un objet JSON, ou supprimez le fichier, le profil ou la valeur du registre. Un
managed-settings.jsonvide compte comme{}et ne bloque pas le lancement. - Si ce n'est pas le cas, demandez à votre administrateur de corriger le document déployé. Rien dans vos propres fichiers de paramètres ne cause ou n'efface cette erreur.
Impossible de lire les paramètres de politique gérée
Votre organisation déploie des paramètres gérés, et l'une des sources déployées existe mais n'a pas pu être lue, pour une raison telle qu'une erreur d'E/S plutôt que le système d'exploitation refusant la lecture. Sans autre source d'administration fournissant une politique, Claude Code se ferme au démarrage plutôt que de s'exécuter sans la politique que la source peut porter :
Unable to read managed policy settings.
This machine may require organization login enforcement, but the policy file failed to load.
Contact your administrator.
Detail: <source>: <reason>
Dans le même état, les flux de connexion, les requêtes API d'une session déjà en cours d'exécution, et le serveur claude gateway sont refusés avec une variante de la première ligne qui nomme allowedProviders.
Une lecture que le système d'exploitation a refusée, par exemple sur un fichier réservé à root, ne produit pas cette fermeture : la session démarre sans les politiques de cette source. Pour une source qui ne peut pas être analysée, Claude Code se ferme avec un message différent nommant la source.
À faire :
- Si vous administrez la machine, corrigez le problème que la ligne
Detail:nomme pour que la source déployée puisse être lue, ou supprimez la source - Si ce n'est pas le cas, envoyez le message à votre administrateur. Rien dans vos propres fichiers de paramètres ne cause ou n'efface cette erreur
Avant la v2.1.285, seules les sessions connectées avec les identifiants claude.ai ou Claude Console se fermaient avec ce message, et une lecture que le système d'exploitation a refusée le produisait aussi.
Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded
Ce bloc stderr issu d'une exécution -p signifie qu'une source de paramètres gérés contient une entrée de hook que Claude Code ne peut pas charger. Ce hook ne s'exécute pas, et quand une ligne indique que le champ hooks de la source est ignoré, aucun des hooks de cette source ne s'exécute.
Chaque ligne nomme la source, le champ s'il y en a un, et le problème, par exemple un type de hook inconnu ou un hook déclaré en dehors de la clé hooks :
Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:
<source> (<field>): <message>
À faire :
- Si vous administrez la source, corrigez ou supprimez chaque entrée que le bloc répertorie. Configuration des hooks montre la forme que Claude Code attend sous
hooks. - Si la source d'une ligne est
parent managed settings, l'application qui a lancé Claude Code a transmis cette entrée en tant que paramètres parents, donc signalez-la au développeur de cette application - Sinon, envoyez le bloc à votre administrateur
Avant la v2.1.300, une exécution -p répertoriait ce cas sous l'en-tête Managed settings failed to load; policies from the failed source are NOT in effect:.
otelHeadersHelper a échoué
Claude Code affiche cet avertissement comme une notification dans l'interface du terminal, une fois par session interactive, quand le script otelHeadersHelper échoue ou imprime une sortie qui ne répond pas aux exigences du script.
Pendant que le script continue d'échouer, les exportations échouent et votre backend de télémétrie ne reçoit rien de la session.
Le texte après See /status: indique ce qui a échoué, par exemple le code de sortie du script suivi de sa sortie d'erreur :
otelHeadersHelper failed; telemetry is not being exported. See /status: exited 1: token service unreachable
À faire :
- Exécutez
/statuspour lire le détail de l'échec. - Corrigez le script pour qu'il se termine avec 0 en moins de 30 secondes et imprime un objet JSON de valeurs d'en-tête de chaîne sur stdout. Consultez exigences du script.
- Si votre organisation déploie le script via les paramètres gérés, demandez à celui qui les maintient de le corriger.
En mode non interactif avec -p, le même échec apparaît sur stderr comme otelHeadersHelper failed (OpenTelemetry export headers unavailable): <error> à la place.
headersHelper non exécuté
Claude Code a connecté un serveur MCP avec ses headers statiques seuls et a ignoré le headersHelper du serveur, car l'assistant est une commande shell et le dossier n'a pas d'approbation enregistrée. Un dossier obtient une approbation enregistrée quand vous définissez son entrée dans ~/.claude.json à la main ou, en dehors de votre répertoire personnel, quand vous acceptez la boîte de dialogue d'approbation pour lui dans une session interactive. Consultez Approuver un dossier avant l'exécution de son headersHelper pour savoir à quels serveurs cette vérification s'applique.
Claude Code écrit cette ligne en mode non interactif uniquement, une fois par serveur. Dans une session interactive, il écrit le même refus au journal de débogage à la place.
MCP server 'internal-api': headersHelper not run — this workspace has no persisted trust; accept the trust dialog here once interactively, or set projects["/Users/you/project"].hasTrustDialogAccepted in /Users/you/.claude.json.
La clé projects que le message imprime est le dossier sur lequel, selon Règles d'autorisation du projet et approbation de l'espace de travail, Claude Code indexe l'approbation. Accepter la boîte de dialogue d'approbation pour un dossier parent ne satisfait pas la vérification, et une session -p ou SDK ne la satisfait pas non plus.
À faire :
- Exécutez
claudedans le dossier que le message nomme, acceptez la boîte de dialogue d'approbation, puis exécutez à nouveau votre commande-pou SDK - Définissez vous-même l'entrée
hasTrustDialogAccepteddans~/.claude.json, en utilisant la cléprojectsexacte que le message imprime - Si vous avez démarré la session dans votre répertoire personnel, travaillez à partir d'un répertoire de projet que vous avez approuvé. Quand vous acceptez la boîte de dialogue d'approbation dans votre répertoire personnel, Claude Code conserve cette approbation pour la session actuelle uniquement.
Règle Tool(content) mal formée
Une règle de permission dans l'un de vos fichiers de paramètres n'a pas la forme Tool ou Tool(content), par exemple parce que du texte suit la parenthèse fermante ou l'une des parenthèses manque. Claude Code ignore la règle et la répertorie dans la boîte de dialogue des paramètres invalides quand une session interactive démarre, et dans la sortie de claude doctor :
Invalid permission rule "Bash(ls) x" was skipped: Malformed Tool(content) rule. Rules take the form Tool or Tool(content) and must end at the closing ")"; parentheses inside the content are literal
À faire :
- Dans le fichier de paramètres répertorié avec le message, réécrivez la règle pour qu'elle se termine à sa parenthèse fermante, par exemple
Bash(ls *)à la place deBash(ls) x - Laissez les parenthèses à l'intérieur du contenu telles qu'elles sont. Elles sont littérales, donc une règle telle que
Edit(./Finance (2024)/**)est valide sans échappement
Avant la v2.1.260, Claude Code signalait une règle avec des parenthèses non appariées comme Mismatched parentheses.
Matches no tool · check for typos
Cette ligne sous la bannière de démarrage nomme une règle de permission de refus ou de demande dont Claude Code ne reconnaît pas le nom d'outil, de sorte que la règle ne s'applique pas à l'outil que vous visiez. Une règle de refus écrite Bsh n'est pas appliquée à Bash, pas plus qu'une règle qui utilise le libellé qu'un outil affiche dans la transcription au lieu de son nom canonique. La ligne reprend la règle telle que vous l'avez écrite :
⚠ Deny rule Bsh matches no tool · check for typos
En mode non interactif avec une sortie texte, Claude Code imprime plutôt l'avertissement sur stderr dans sa forme longue :
Permission deny rule "Bsh" matches no known tool — check for typos.
À faire :
- Corrigez le nom de l'outil dans la règle, par exemple
Bashà la place deBsh. Consultez les noms canoniques dans la référence des outils. - Pour trouver où la règle est définie, exécutez
/permissionsdans la session et sélectionnez la règle. Ses détails indiquent sa provenance, par exempleFrom project local settings, ouFrom CLI argumentpour une valeur--disallowedTools. - Si les détails indiquent
From enterprise managed settings, transmettez la ligne à celui qui maintient vos paramètres gérés, car vous ne pouvez pas modifier cette règle vous-même.
Dans une session en arrière-plan ou avec --output-format json ou stream-json, Claude Code écrit l'avertissement au journal de débogage au lieu de stderr. Exécutez avec --debug pour le capturer à ~/.claude/debug/<session-id>.txt.
Avant la v2.1.305, une session interactive imprimait la forme longue sur stderr au démarrage au lieu d'afficher la ligne.
N'est pas mis en correspondance par les vérifications de permission de fichier
Claude Code a trouvé une règle de permission Write, NotebookEdit, MultiEdit, ou Glob avec un chemin dans l'un de vos fichiers de paramètres, dans les paramètres gérés, ou dans une valeur de flag --allowedTools, --disallowedTools, ou --settings. Il vérifie les permissions de fichier uniquement par rapport aux règles Edit et Read, donc il ne consulte jamais une règle de chemin qui nomme l'un des autres outils de fichier. Il conserve la règle et ne change rien d'autre.
-
Session interactive : l'avertissement complet va dans le journal de débogage, et une règle de refus ou de demande de cette forme s'affiche aussi comme cette ligne sous la bannière de démarrage :
⚠ Deny rule Write(docs/**) never matches · use Edit(docs/**)Une règle d'autorisation de cette forme n'obtient pas de ligne. Pour trouver où la règle est définie, exécutez
/permissionsdans la session et sélectionnez la règle. -
Mode non interactif avec une sortie texte : l'avertissement complet sur stderr nomme la règle, sa source entre parenthèses, et le remplacement à écrire :
Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools). -
Session en arrière-plan, ou
--output-format jsonoustream-json: l'avertissement complet va dans le journal de débogage au lieu de stderr, donc la sortie lue par machine reste propre. Exécutez avec--debugpour le capturer à~/.claude/debug/<session-id>.txt.
À faire :
- Remplacez les règles
Write(path),NotebookEdit(path), etMultiEdit(path)héritées parEdit(path). Les règlesEditcouvrent tous les outils d'édition de fichiers. - Sauf dans
--allowedTools, où Claude Code accepte une règleGlobsans avertissement, remplacez les règlesGlob(path)parRead(path). - Corrigez la règle à la source que l'avertissement complet nomme entre parenthèses : un chemin de fichier de paramètres, ou le flag lui-même pour
--allowed-toolset--disallowed-tools. Un cheminclaude-settings-<hash>.jsonqui n'existe pas sur le disque représente une valeur--settingsen ligne. Corrigez le JSON que vous passez à ce flag. - Laissez telles quelles les règles composées du seul nom d'outil, comme
WriteouGlob. Claude Code les met en correspondance au niveau de l'outil et n'émet pas d'avertissement à leur sujet. - Pour une règle provenant des paramètres gérés, les parenthèses de l'avertissement complet indiquent
managed policy settingset les détails de la règle dans/permissionsindiquentFrom enterprise managed settings. Transmettez cet avertissement à celui qui maintient vos paramètres gérés, car vous ne pouvez pas l'effacer vous-même.
Avant la v2.1.210, Claude Code acceptait ces règles sans avertissement. Avant la v2.1.305, une session interactive imprimait l'avertissement complet sur stderr.
A un caractère générique avant le reste de la commande
Claude Code a trouvé une règle d'autorisation Bash dont le * vient avant un mot ultérieur qui détermine quelle commande c'est, par exemple Bash(git * main) ou Bash(git -C * status *), dans l'un de vos fichiers de paramètres, dans les paramètres gérés, ou dans une valeur de flag --allowedTools ou --settings. Le * correspond à n'importe quel texte, y compris les options insérées à cette position : Bash(git * main) approuve également git -c core.fsmonitor=<script> diff main, où -c fait exécuter à git un programme que la commande nomme. Modèles de caractères génériques montre les règles de correspondance.
L'avertissement existe pour que vous puissiez affiner une règle dont le caractère générique est plus large que vous ne l'aviez prévu. Claude Code conserve la règle et ne change rien à la façon dont elle correspond. En mode non interactif avec une sortie texte, l'avertissement sur stderr nomme la règle et sa source entre parenthèses :
Permission allow rule (.claude/settings.json): Bash(git -C * status *) has a wildcard before the rest of the command, so it also matches any options inserted at that position and approves them without a prompt. For git, options such as -c and --exec-path can run arbitrary commands. Replace that * with the exact value you mean, or only use * after the subcommand (for example Bash(git status *)).
Dans une session interactive, l'avertissement complet va dans le journal de débogage et la règle s'affiche comme cette ligne sous la bannière de démarrage :
⚠ Allow rule Bash(git -C * status *) allows any option at its * · use an exact value
Pour trouver où la règle est définie, exécutez /permissions dans la session et sélectionnez la règle.
À faire :
- Remplacez le
*avant la sous-commande par la valeur exacte que vous entendez :Bash(git checkout main)à la place deBash(git * main). - Déplacez chaque
*après la sous-commande :Bash(git status *)à la place deBash(git -C * status *). Écrivez une règle par sous-commande que vous voulez autoriser. - Corrigez la règle à la source que l'avertissement complet nomme entre parenthèses : un chemin de fichier de paramètres, ou le flag
--allowed-toolslui-même. Un cheminclaude-settings-<hash>.jsonqui n'existe pas sur le disque représente une valeur--settingsen ligne. Corrigez le JSON que vous passez à ce flag. - Pour une règle provenant des paramètres gérés, les parenthèses de l'avertissement complet indiquent
managed policy settingset les détails de la règle dans/permissionsindiquentFrom enterprise managed settings. Transmettez cet avertissement à celui qui maintient vos paramètres gérés, car vous ne pouvez pas l'effacer vous-même.
Dans une session en arrière-plan ou avec --output-format json ou stream-json, Claude Code écrit l'avertissement au journal de débogage au lieu de stderr, donc la sortie lue par machine reste propre. Exécutez avec --debug pour la capturer à ~/.claude/debug/<session-id>.txt. Avant la v2.1.246, Claude Code acceptait ces règles sans avertissement.
Avant la v2.1.305, une session interactive imprimait l'avertissement complet sur stderr au lieu d'afficher une ligne.
Refuser Bash désactive aussi l'outil PowerShell
Vous avez supprimé l'outil Bash entier, par exemple avec --disallowedTools Bash ou avec une règle de refus Bash ou Bash(*) seule dans l'un de vos fichiers de paramètres. Sur Windows avec Git Bash installé, refuser Bash désactive aussi l'outil PowerShell, donc la session démarre sans aucun outil shell.
En mode non interactif avec une sortie texte, Claude Code imprime cet avertissement sur stderr au démarrage, et une session interactive l'écrit uniquement dans le journal de débogage :
Denying Bash also turns off the PowerShell tool, so Claude has neither. To use PowerShell, set CLAUDE_CODE_USE_POWERSHELL_TOOL=1.
À faire :
- Pour que Claude utilise PowerShell, définissez
CLAUDE_CODE_USE_POWERSHELL_TOOLà1dans votre environnement ou dans le blocenvd'un fichier de paramètres, comme le montre Activer l'outil PowerShell. L'outil PowerShell reste alors activé à côté de votre règle de refus Bash. - Pour bloquer des commandes particulières plutôt que l'outil entier, remplacez l'entrée
Bashseule par des règles ciblées telles queBash(git push *)dans le même fichier de paramètres ou le même flag. Claude conserve l'outil Bash, et l'outil PowerShell reste désactivé jusqu'à ce que vous définissiez aussi la variable ou ajoutiez une règle de permissionPowerShellciblée.
Dans une session en arrière-plan ou avec --output-format json ou stream-json, Claude Code écrit l'avertissement au journal de débogage au lieu de stderr. Exécutez avec --debug pour le capturer à ~/.claude/debug/<session-id>.txt. Avant la v2.1.287, Claude Code désactivait l'outil PowerShell de la même façon sans imprimer d'avertissement.
Avant la v2.1.305, une session interactive imprimait aussi l'avertissement sur stderr au démarrage.
crossSessionInbound doit être l'un de accept, hold, refuse
Un fichier de paramètres définit crossSessionInbound à une valeur que Claude Code ne reconnaît pas, par exemple la faute de frappe "reject". La deuxième phrase de l'avertissement dépend du fichier qui contient la valeur ; dans un fichier utilisateur, projet, local, ou --settings, elle lit :
"crossSessionInbound" must be one of "accept", "hold", "refuse"; received "reject". This value was ignored; while it is present, cross-session messages are held for your approval instead of being delivered. Set it to one of the values above.
Dans les paramètres gérés, Claude Code traite la valeur non reconnue comme refuse, la valeur la plus restrictive, et l'avertissement dit que les messages entre sessions sont rejetés jusqu'à ce qu'un administrateur le corrige. Pour savoir comment la retenue se combine avec les valeurs dans vos autres fichiers de paramètres, consultez crossSessionInbound.
À faire :
- Définissez la clé à
"accept","hold", ou"refuse", ou supprimez-la - Quand l'avertissement nomme les paramètres gérés, demandez à l'administrateur de corriger la valeur
Avant la v2.1.248, Claude Code ignorait une valeur non reconnue sans avertissement.
ANTHROPIC_FOUNDRY_RESOURCE doit être un nom de ressource Foundry
Vous avez défini ANTHROPIC_FOUNDRY_RESOURCE sur autre chose qu'un simple nom de ressource Microsoft Foundry, par exemple l'URL de l'endpoint ou son nom d'hôte. Claude Code a refusé la valeur avant d'envoyer une requête. Le message apparaît à la place de la réponse de Claude, et non comme un avertissement de démarrage :
API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name (2-64 letters, digits and hyphens, not starting or ending with a hyphen, such as my-resource), not a URL or host name. To use a full URL, set ANTHROPIC_FOUNDRY_BASE_URL instead.
À faire :
- Définissez
ANTHROPIC_FOUNDRY_RESOURCEsur le seul nom de la ressource et redémarrez Claude Code. Pour l'endpointhttps://my-resource.services.ai.azure.com/anthropic, le nom estmy-resource. - Pour fournir plutôt l'URL complète de l'endpoint, définissez
ANTHROPIC_FOUNDRY_BASE_URLsur l'URL et supprimezANTHROPIC_FOUNDRY_RESOURCE, puis redémarrez Claude Code. Claude Code n'accepte qu'une seule des deux variables.
La limite de 200K n'est pas appliquée
Vous avez défini CLAUDE_CODE_DISABLE_1M_CONTEXT=1, ce qui fait normalement que la compaction automatique maintient les sessions sur les modèles à contexte 1M à une fenêtre de 200K, mais aucun seuil de compaction ne limite cette session à 200K ou moins, donc la conversation peut la dépasser.
CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced for <model>, so this session can grow past it. To enforce it, set CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 (or the autoCompactWindow setting).
Claude Code applique la limite de 200K de lui-même pour chaque modèle qu'il reconnaît comme ayant une fenêtre native de 1M, et pour les ID de modèle qu'il ne reconnaît pas, il compacte à la fenêtre qu'il suppose. L'avertissement apparaît quand une autre configuration défait cette application :
- L'ID du modèle n'est pas un que Claude Code reconnaît, par exemple un alias de passerelle LLM, et vous avez défini
CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1ou augmenté la fenêtre supposée au-delà de 200K avecCLAUDE_CODE_MAX_CONTEXT_TOKENS. Dans ce cas, le message offre égalementor update to a Claude Code version that recognizes <model>comme un remède. - Une bêta
context-1mdemandée viaANTHROPIC_BETASou le flag--betasdemande toujours à l'API la fenêtre 1M sur un modèle qui accepte cette bêta, tandis que rien ne compacte la session à 200K
À faire :
- Définissez
CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000, ou le paramètreautoCompactWindowà200000, pour que la compaction automatique compacte à la limite de 200K - Si le message nomme un ID de modèle que cette version ne reconnaît pas, exécutez
claude update. Une version qui reconnaît l'ID comme un modèle à contexte 1M applique la limite sans configuration supplémentaire. - Si vous voulez que la session utilise la fenêtre complète du modèle à la place, supprimez
CLAUDE_CODE_DISABLE_1M_CONTEXT; l'avertissement signale uniquement que la limite de 200K n'est pas appliquée
En mode non interactif avec une sortie texte, cet avertissement apparaît sur stderr. Dans une session interactive, une session en arrière-plan, ou avec --output-format json ou stream-json, il va plutôt dans le journal de débogage. Exécutez avec --debug pour le capturer à ~/.claude/debug/<session-id>.txt.
Avant la v2.1.305, une session interactive imprimait l'avertissement sur stderr au démarrage.
ID de modèle non reconnu sur une requête
Claude Code a envoyé une requête pour un ID de modèle que votre version de Claude Code ne reconnaît pas, et n'a trouvé aucune entrée modelOverrides qui mappe cet ID à un modèle qu'elle reconnaît. Claude Code envoie toujours la requête avec l'ID tel que vous l'avez configuré, et ne se ferme pas ni ne change de modèle.
[claude-code:unrecognized_model] {"model":"my-proxy-model","query_source":"sdk"}
Dans un script ou un harnais qui lit stderr, mettez en correspondance le préfixe [claude-code:unrecognized_model]. Après le préfixe et un espace, Claude Code écrit un objet JSON d'une ligne. Claude Code peut y ajouter des champs dans une version ultérieure, donc ignorez tout champ que vous n'attendez pas. Il écrit au moins ces deux :
model: la chaîne de modèle telle que vous l'avez configuréequery_source: le chemin de requête qui a utilisé le modèle. Claude Code signalesdkpour une exécution-pet une valeur qui commence paragent:pour un sous-agent.
Claude Code écrit la ligne à l'un de deux endroits, selon la façon dont vous l'exécutez :
- En mode non interactif avec
-p, Claude Code l'écrit sur stderr sous chaque--output-format, pour que vous puissiez analyser stdout sans filtrer la ligne - Dans une session interactive ou une session en arrière-plan, Claude Code l'écrit au journal de débogage à la place ; exécutez avec
--debugpour la capturer à~/.claude/debug/<session-id>.txt
Claude Code écrit la ligne une fois par chaîne de modèle par processus. Il écrit une ligne séparée pour chaque ID non reconnu supplémentaire, par exemple un qu'un sous-agent ou une fonctionnalité en arrière-plan utilise.
Claude Code n'écrit pas la ligne pour les ID de fournisseur qu'il résout à un modèle qu'il reconnaît, par exemple les ID Amazon Bedrock us.anthropic.claude-..., les ID de la plateforme d'agent de Google Cloud avec un suffixe de version @, et les noms de déploiement Microsoft Foundry qui contiennent un ID de modèle Claude. Claude Code vérifie le modèle derrière un ARN de profil d'inférence d'application Amazon Bedrock plutôt que l'ARN lui-même. Il n'écrit pas de ligne pour un ARN qu'il ne peut pas résoudre, par exemple un ARN mal saisi.
À faire :
-
Si vous avez défini l'ID à dessein, par exemple un alias de passerelle LLM, ajoutez une entrée
modelOverridesà votre fichier de paramètres avec l'ID comme sa valeur. Utilisez un ID de modèle Anthropic comme clé, pas un alias de famille tel queopus. Pourmy-proxy-modelde la ligne d'exemple, ajoutez cette entrée :{ "modelOverrides": { "claude-opus-4-6": "my-proxy-model" } }Claude Code traite alors
my-proxy-modelcommeclaude-opus-4-6et arrête d'écrire la ligne. -
Si l'ID nomme un modèle plus récent que votre version de Claude Code, exécutez
claude update -
Si l'ID est une faute de frappe, corrigez-le dans celui des endroits où vous pouvez définir un modèle ou des variables d'alias qui le contient. Si
query_sourcecommence paragent:, corrigez-le plutôt là où vous définissez le modèle du sous-agent.
Avant la v2.1.233, Claude Code n'écrivait pas de ligne quand il envoyait une requête pour un ID de modèle qu'il ne reconnaissait pas.
Les entrées d'autorisation du sandbox sont ignorées sous un verrou géré
Cet avertissement dans /status et claude doctor signifie que les paramètres gérés définissent allowManagedReadPathsOnly ou allowManagedDomainsOnly, donc les entrées allowRead ou allowedDomains du fichier qu'il nomme ne s'appliquent pas :
sandbox.filesystem.allowRead is ignored — managed settings set allowManagedReadPathsOnly, so only allowRead paths from managed settings are honored. The 3 entries in /home/you/.claude/settings.json will NOT apply (see https://code.claude.com/docs/en/settings#sandbox-settings).
Pour le verrou réseau, l'avertissement nomme sandbox.network.allowedDomains et allowManagedDomainsOnly, et indique only allowed domains (and WebFetch domain rules) from managed settings are honored.
À faire :
- Vous n'avez pas à agir sur cet avertissement
- Si vous avez besoin de ces chemins ou domaines et que les paramètres gérés de votre organisation définissent le verrou, demandez à votre administrateur de les ajouter à ces paramètres. L'avertissement persiste jusqu'à ce que vous supprimiez aussi les entrées du fichier nommé.
- Pour faire disparaître l'avertissement, supprimez les entrées du fichier nommé. Pour un fichier que vous partagez, comme le
.claude/settings.jsond'un projet, vous pouvez laisser les entrées pour les coéquipiers qui n'ont pas le verrou et laisser l'avertissement affiché.
Fichiers de masque de sandbox laissés aux chemins interdits en écriture
Cet avertissement dans claude doctor et /status répertorie des fichiers de masque : des fichiers d'espace réservé de 0 octet en lecture seule situés aux chemins sur lesquels le sandbox refuse les écritures. Il apparaît sur Linux et WSL2 quand le sandboxing est activé avec l'isolation du système de fichiers activée. Supprimez-les depuis votre shell une fois qu'aucune session Claude Code n'est ouverte dans le projet qui les contient.
Le sandbox crée un espace réservé pendant qu'une commande en sandbox s'exécute et le supprime quand la commande se termine. Un espace réservé reste en place dans des cas comme ceux-ci :
- La session est tuée avant la fin de la commande, par exemple par SIGKILL
- Vous quittez la session alors qu'une commande en sandbox est encore en cours d'exécution, comme une commande en arrière-plan
Dans claude doctor, l'avertissement se présente ainsi :
- Sandbox mask files left behind at write-deny paths: /home/you/project/.claude/settings.local.json
Fix: A session leaves one where it was killed, or where it exited while a sandboxed command was still running. Remove each with `rm <path>` while no other Claude Code session is running in that project — a 0-byte read-only file where a settings file belongs makes "Yes, and don't ask again" fail to save, and the sandbox binds it read-only again on every start
À faire :
- Quittez toutes les sessions Claude Code ouvertes dans le projet qui contient les fichiers répertoriés, y compris toute session où
/statusa affiché l'avertissement, puis travaillez depuis votre shell. Un espace réservé que le sandbox d'une autre session utilise toujours est une partie active de la protection en écriture de cette session - Dans votre shell, supprimez chaque fichier répertorié avec
rm, et confirmez sirmvous interroge au sujet d'un fichier protégé en écriture. L'avertissement nomme jusqu'à trois fichiers et compte le reste, donc réexécutezclaude doctoraprès la suppression jusqu'à ce que l'avertissement n'apparaisse plus - Si un choix de permission que vous avez enregistré avec « Oui, et ne me le demande plus » n'a pas été conservé, enregistrez-le à nouveau après la suppression de l'espace réservé
Avant la v2.1.309, l'avertissement indiquait Stale sandbox mask files left by a killed session.
Avant la v2.1.257, claude doctor ne signalait pas ces fichiers ; les versions antérieures laissent les mêmes espaces réservés derrière elles quand une session est tuée.
Les réponses semblent de moins bonne qualité que d'habitude
Si les réponses de Claude semblent moins performantes que prévu mais qu'aucune erreur ne s'affiche, la cause est généralement l'état de la conversation plutôt que le modèle lui-même. Claude Code ne change pas de version de modèle silencieusement. Il peut basculer sur un modèle de secours dans les cas suivants :
- Un
--fallback-modelconfiguré prend le relais après une erreur de disponibilité, pour ce tour uniquement, avec une notification dans la transcription - Une vérification au démarrage d'Amazon Bedrock ou de Google Cloud's Agent Platform constate que votre modèle par défaut n'est pas disponible, ou votre compte perd l'accès à celui-ci en cours de session
- Le basculement automatique de modèle sur Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5 et Opus 5 fait passer la session au modèle de secours de la catégorie signalée, lorsque cette catégorie en possède un, et affiche une notification dans la transcription
La vérification de la sélection du modèle ci-dessous détecte le deuxième et le troisième cas ; le premier apparaît sous forme de notification dans la transcription plutôt que comme un changement de /model. La configuration du modèle explique quand chaque solution de repli s'applique.
Vérifiez d'abord ces points :
- Sélection du modèle : exécutez
/modelpour confirmer que vous utilisez le modèle attendu. Un choix/modelprécédent ou une variable d'environnementANTHROPIC_MODELpeut vous avoir placé sur un modèle plus petit que prévu. - Niveau d'effort : exécutez
/effortpour vérifier le niveau de raisonnement actuel et augmentez-le pour un travail de débogage ou de conception difficile. Les valeurs par défaut varient selon le modèle, alors vérifiez avant de supposer que vous êtes en dessous du maximum. Consultez Ajuster le niveau d'effort pour connaître les valeurs par défaut de chaque modèle et le raccourciultrathink. - Pression sur le contexte : exécutez
/contextpour voir le taux de remplissage de la fenêtre. Si elle est presque pleine, exécutez/compactà un point d'arrêt naturel ou/clearpour repartir de zéro. Consultez Explorer la fenêtre de contexte pour savoir comment la compaction automatique affecte les tours précédents. - Instructions obsolètes : des fichiers
CLAUDE.mdvolumineux ou obsolètes et des définitions d'outils MCP consomment du contexte et peuvent orienter les réponses. Le bilan/doctorsignale les fichiers de mémoire surdimensionnés et les extensions inutilisées, et/contextaffiche l'utilisation des tokens par les outils MCP. Avant la v2.1.205,/doctorouvrait un écran de diagnostic qui signalait les fichiers de mémoire surdimensionnés et les définitions de sous-agents.
Lorsqu'une réponse tourne mal, revenir en arrière fonctionne généralement mieux que de répondre avec des corrections. Appuyez deux fois sur Esc ou exécutez /rewind pour revenir avant le tour problématique, puis reformulez le prompt avec plus de précisions. Corriger dans le fil de la conversation conserve la tentative erronée dans le contexte, ce qui peut ancrer les réponses ultérieures sur celle-ci. Consultez Checkpointing.
Si la qualité semble toujours insuffisante après avoir vérifié les points ci-dessus, exécutez /feedback et décrivez ce que vous attendiez par rapport à ce que vous avez obtenu. Les retours envoyés de cette manière incluent la transcription de la conversation, ce qui est le moyen le plus rapide pour Anthropic de diagnostiquer une véritable régression. Consultez Signaler une erreur si /feedback n'est pas disponible dans votre environnement.
Si Claude signale une injection de prompt présumée, ou refuse une demande en raison d'une injection présumée, et que le texte mentionné par l'avertissement est du contexte que Claude Code ajoute automatiquement à la conversation plutôt que du contenu de fichier ou web, exécutez claude update et réessayez. Si l'avertissement se répète après la mise à jour, signalez-le plutôt que de recoller le contenu signalé dans le prompt. Avant la v2.1.201, Sonnet 5 refusait certaines demandes de la même manière.
Signaler une erreur
Pour les erreurs provenant de composants non couverts par cette page, consultez le guide pertinent :
- Le serveur MCP n'a pas pu se connecter ou s'authentifier : MCP
- Le script hook a échoué ou a bloqué un outil : Déboguer les hooks
- Erreur de permission ou erreurs du système de fichiers lors de l'installation : Dépanner l'installation et la connexion
Si une erreur n'est pas répertoriée ici ou si la correction suggérée ne vous aide pas :
- Exécutez
/feedbackdans Claude Code pour envoyer la transcription et une description à Anthropic. La commande propose également d'ouvrir un problème GitHub prérempli. L'envoi à Anthropic nécessite une authentification. Sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry et d'autres fournisseurs tiers, ou lorsqu'aucune identifiant Anthropic n'est configuré,/feedbackenregistre une archive locale que vous pouvez envoyer à votre représentant de compte Anthropic à la place. - Si
/feedbackrépond qu'il est désactivé par la politique de votre organisation, consultez l'entrée correspondant à ce message - Exécutez
claude doctordepuis votre shell pour un diagnostic en lecture seule de votre installation, ou exécutez la vérification/doctordans Claude Code pour trouver et corriger les problèmes de configuration - Vérifiez status.claude.com pour les incidents actifs
- Recherchez les problèmes existants sur GitHub