diff --git a/fr/errors.md b/fr/errors.md index f0d179bb31d17c8df3bbd5feeaf680fb1f4996f5..36743afd0e30350f38da71f3c1047d01da2481f9 100644 --- a/fr/errors.md +++ b/fr/errors.md @@ -8,7 +8,7 @@ Cette page répertorie les erreurs d'exécution que Claude Code affiche et comment récupérer de chacune d'elles, ainsi que 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](/docs/fr/troubleshoot-install). -Ces erreurs et les commandes de récupération s'appliquent sur l'ensemble de l'interface CLI, l'[application Desktop](/docs/fr/desktop) et [Claude Code sur le web](/docs/fr/claude-code-on-the-web), car les trois encapsulent le même CLI Claude Code. Pour les problèmes spécifiques à une surface, consultez la section dépannage sur la page de cette surface. +À l'exception des [erreurs de wrapper et d'IDE](#wrapper-and-ide-errors), 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 de bureau](/docs/fr/desktop) et des [sessions cloud](/docs/fr/claude-code-on-the-web), 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. 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](https://platform.claude.com/docs/en/api/errors). @@ -18,112 +18,359 @@ Ces erreurs et les commandes de récupération s'appliquent sur l'ensemble de l' Trouvez votre erreur -Faites correspondre le message que vous voyez dans votre terminal à une section ci-dessous. +Faites correspondre le message que vous voyez à une section ci-dessous. | Message | Section | -| :------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------- | +| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------- | | `API Error: 500 Internal server error` | [Erreurs serveur](#api-error-500-internal-server-error) | | `API Error: Repeated 529 Overloaded errors` | [Erreurs serveur](#api-error-repeated-529-overloaded-errors) | | `Request timed out` | [Erreurs serveur](#request-timed-out), ou [Réseau](#unable-to-connect-to-api) si le message mentionne votre connexion Internet | +| `API Error: No response from API` | [Erreurs serveur](#no-response-from-api) | | `Server error mid-response. The response above may be incomplete.` | [Erreurs serveur](#the-response-above-may-be-incomplete) | +| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [Erreurs serveur](#the-response-above-may-be-incomplete) | | `Connection closed mid-response` / `Response stalled mid-stream` | [Erreurs serveur](#the-response-above-may-be-incomplete) | +| `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](#automatic-retries) | +| `Connection closed while thinking` / `Response stalled while thinking` | [Tentatives automatiques](#automatic-retries) | +| `Connection lost while your computer was asleep` | [Tentatives automatiques](#automatic-retries) | | ` is temporarily unavailable, so auto mode cannot determine the safety of...` | [Erreurs serveur](#auto-mode-cannot-determine-the-safety-of-an-action) | | `Auto mode could not evaluate this action and is blocking it for safety` | [Erreurs serveur](#auto-mode-cannot-determine-the-safety-of-an-action) | | `Auto mode classifier transcript exceeded context window` | [Erreurs serveur](#auto-mode-cannot-determine-the-safety-of-an-action) | +| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Erreurs serveur](#auto-mode-cannot-determine-the-safety-of-an-action) | | `Agent terminated early due to an API error` | [Erreurs serveur](#agent-terminated-early-due-to-an-api-error) | -| `You've hit your session limit` / `You've hit your weekly limit` | [Limites d'utilisation](#youve-hit-your-session-limit) | +| `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](#youve-hit-your-session-limit) | | `Usage credits required for 1M context` | [Limites d'utilisation](#usage-credits-required-for-1m-context) | +| `the prompt to confirm went unanswered — nothing was sent` | [Limites d'utilisation](#the-prompt-to-confirm-went-unanswered) | | `Server is temporarily limiting requests` | [Limites d'utilisation](#server-is-temporarily-limiting-requests) | | `Request rejected (429)` | [Limites d'utilisation](#request-rejected-429) | | `Credit balance is too low` | [Limites d'utilisation](#credit-balance-is-too-low) | +| `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](#youve-hit-your-monthly-spend-limit) | +| `Could not update your spend limit` | [Limites d'utilisation](#could-not-update-your-spend-limit) | +| `spend limit reached` / `spend limit unavailable` | [Limites d'utilisation](#spend-limit-reached) | | `Not logged in · Please run /login` | [Authentification](#not-logged-in) | | `Could not resolve authentication method` | [Authentification](#could-not-resolve-authentication-method) | | `Invalid API key` | [Authentification](#invalid-api-key) | | `Your apiKeyHelper script is failing` | [Authentification](#your-apikeyhelper-script-is-failing) | +| `Invalid auth token · Fix external auth token` | [Authentification](#invalid-request-header-value) | +| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Authentification](#invalid-request-header-value) | +| `Invalid request header from the environment · Fix the environment variable` | [Authentification](#invalid-request-header-value) | | `This organization has been disabled` | [Authentification](#this-organization-has-been-disabled) | | `Your organization has disabled API key authentication` | [Authentification](#your-organization-has-disabled-api-key-authentication) | | `Your organization has disabled Claude subscription access` | [Authentification](#your-organization-has-disabled-claude-subscription-access) | | `Routines are disabled by your organization's policy` | [Authentification](#routines-are-disabled-by-your-organizations-policy) | | `Remote Control is only available when using Claude via api.anthropic.com` | [Authentification](#remote-control-requires-the-anthropic-api) | +| `OAuth token refresh failed — run /login to re-authenticate` | [Authentification](#remote-control-couldnt-refresh-your-login) | +| `JWT refresh failed: no OAuth token — run /login` | [Authentification](#remote-control-couldnt-refresh-your-login) | +| `Claude.ai login expired` | [Authentification](#remote-control-couldnt-refresh-your-login) | +| `Claude.ai login was rejected — run /login, then /remote-control` | [Authentification](#remote-control-couldnt-refresh-your-login) | +| `OAuth token unavailable — run /login to restore Remote Control` | [Authentification](#remote-control-couldnt-refresh-your-login) | +| `Signed out of Claude — run /login, then /remote-control` | [Authentification](#remote-control-couldnt-refresh-your-login) | +| `signed-in claude.ai account or organization changed on this machine` | [Authentification](#remote-control-stopped-because-the-signed-in-account-changed) | +| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentification](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) | +| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentification](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) | | `OAuth token revoked` / `OAuth token has expired` | [Authentification](#oauth-token-revoked-or-expired) | +| `API Error: 401 Invalid authentication credentials` | [Authentification](#api-error-401-invalid-authentication-credentials) | | `Login expired · Please run /login` | [Authentification](#login-expired) | +| `Claude login not accepted · Run /login, then try again` | [Authentification](#claude-login-not-accepted) | +| `Artifacts need a claude.ai login` | [Authentification](#artifacts-need-a-claude-ai-login) | +| `Not signed in to the Cloud gateway — run /login.` | [Authentification](#administrator-policy-requires-a-cloud-gateway-sign-in) | +| `Administrator policy requires a Cloud gateway sign-in on this machine` | [Authentification](#administrator-policy-requires-a-cloud-gateway-sign-in) | | `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentification](#login-expired) | +| `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) | +| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentification](#your-account-is-on-hold) | +| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentification](#anthropic-profile-login-expired) | +| `Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile` | [Authentification](#anthropic-profile-login-expired) | | `does not meet scope requirement user:profile` | [Authentification](#oauth-scope-requirement) | +| `claude.ai rejected the session token` / `session token rejected` | [Authentification](#claude-ai-rejected-the-session-token) | +| `MCP server "" needs you to sign in again (run /mcp to re-authenticate)` | [Authentification](#mcp-server-needs-you-to-sign-in-again) | +| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [Authentification](#mcp-server-needs-you-to-sign-in-again) | +| `MCP server "" needs additional permissions (scope: "") — run /mcp to re-authenticate` | [Authentification](#mcp-server-needs-you-to-sign-in-again) | +| `MCP server "" requires re-authorization (token expired)` | [Authentification](#mcp-server-needs-you-to-sign-in-again) | +| `Issuer mismatch in authorization response (RFC 9207)` | [Authentification](#issuer-mismatch-in-authorization-response) | +| `Cloud gateway session expired — run /login to reconnect.` | [Authentification](#cloud-gateway-session-expired) | +| `Cloud gateway no longer accepts this session` | [Authentification](#cloud-gateway-session-expired) | +| `Sign-in timed out while waiting for you to continue. Try again.` | [Authentification](#sign-in-timed-out-while-waiting-for-you-to-continue) | | `AWS credentials expired or invalid` | [Authentification](#aws-credentials-expired-or-invalid) | | `AWS authentication failed` | [Authentification](#aws-authentication-failed) | +| `Google Cloud credentials expired or invalid` | [Authentification](#google-cloud-credentials-expired-or-invalid) | +| `Google Cloud authentication failed` | [Authentification](#google-cloud-authentication-failed) | +| `Microsoft Foundry authentication failed` | [Authentification](#microsoft-foundry-authentication-failed) | +| `Gateway refused the request` | [Authentification](#gateway-refused-the-request) | +| `Could not load AWS credentials` / `Could not load Google Cloud credentials` | [Authentification](#could-not-load-aws-or-google-cloud-credentials) | | `AWS default-chain credential resolve timed out` | [Authentification](#aws-default-chain-credential-resolve-timed-out) | +| `Timed out after 60s waiting for AWS` | [Authentification](#bedrock-setup-verification-timed-out-waiting-for-aws) | +| `A request to AWS timed out. Check your network and proxy settings, then try again.` | [Authentification](#bedrock-setup-verification-timed-out-waiting-for-aws) | +| `Could not load the default credentials` on Google Cloud's Agent Platform | [Authentification](#could-not-load-aws-or-google-cloud-credentials) | | `Unable to connect to API` | [Réseau](#unable-to-connect-to-api) | -| `Waiting for API response · will retry in` | [Tentatives automatiques](#automatic-retries), ou [Réseau](#unable-to-connect-to-api) si le problème persiste | +| `Connection refused —` / `Can't reach the API server —` / `No internet route —` / `Couldn't connect through your proxy` / `Connection dropped`, each with an error code in parentheses | [Réseau](#unable-to-connect-to-api) | +| `Unable to connect to Anthropic services` during setup | [Réseau](#unable-to-connect-to-anthropic-services) | +| `Socket is closed` | [Réseau](#socket-is-closed) | +| `Waiting for API response · will retry in` | [Tentatives automatiques](#automatic-retries), ou [Réseau](#unable-to-connect-to-api) si cela persiste | +| `API returned an empty or malformed response` | [Réseau](#api-returned-an-empty-or-malformed-response) | +| `Streaming response ended before any complete data was received` | [Réseau](#streaming-response-ended-before-any-complete-data-was-received) | | `Bedrock streaming response has content-type "..."; expected "application/vnd.amazon.eventstream"` | [Réseau](#bedrock-streaming-response-has-an-unexpected-content-type) | | `SSL certificate verification failed` | [Réseau](#ssl-certificate-errors) | | `SSL certificate error (...)` during login or startup | [Réseau](#ssl-certificate-errors) | +| `unable to get local issuer certificate` | [Réseau](#ssl-certificate-errors) | | `403` with `x-deny-reason: host_not_allowed` in a cloud or routine session | [Réseau](#host-not-allowed-in-a-cloud-session) | +| `proxy refused the connection` | [Réseau](#the-proxy-refused-the-connection) | +| `403` with `This GraphQL query is not enabled for this session` in a cloud session | [GitHub proxy](/docs/fr/cloud-environments#github-proxy) | +| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Réseau](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) | | `Couldn't reconnect to your Remote Control session` | [Réseau](#couldnt-reconnect-to-your-remote-control-session) | -| `Prompt is too long` | [Erreurs de requête](#prompt-is-too-long) | +| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Réseau](#sessions-ended-while-this-machine-was-offline) | +| `Couldn't share the transcript.` | [Réseau](#couldnt-share-the-transcript) | +| `Prompt is too long` / `Input is too long for requested model` | [Erreurs de requête](#prompt-is-too-long) | +| `Prompt is too long · automatic compaction failed:` | [Erreurs de requête](#prompt-is-too-long) | +| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [Erreurs de requête](#prompt-is-too-long) | +| `Context limit reached · /compact or /clear to continue` | [Erreurs de requête](#prompt-is-too-long) | +| `Context limit reached · /clear to continue` | [Erreurs de requête](#prompt-is-too-long) | +| `capability_rejected: prompt_too_long` on a Claude apps gateway session | [Erreurs de requête](#prompt-is-too-long) | +| `upstream rejected the request` / `request too large for this upstream` on a Claude apps gateway session | [Messages d'erreur en amont](/docs/fr/claude-apps-gateway-config#upstream-error-messages) | +| `upstream rate limit exceeded` on a Claude apps gateway session | [Messages d'erreur en amont](/docs/fr/claude-apps-gateway-config#upstream-error-messages) | +| `all upstreams failed (N attempted)` on a Claude apps gateway session | [Messages d'erreur en amont](/docs/fr/claude-apps-gateway-config#upstream-error-messages) | +| `Claude Code may not be enabled for your organization` after a Claude apps gateway sign-in | [Dépannage de la passerelle Claude apps](/docs/fr/claude-apps-gateway-deploy#troubleshooting) | +| `Context exceeds the ...-token limit by ... tokens` in `/context` output | [Erreurs de requête](#context-exceeds-the-token-limit) | | `Error during compaction: Conversation too long` | [Erreurs de requête](#error-during-compaction-conversation-too-long) | | `Request too large` | [Erreurs de requête](#request-too-large) | +| `Request too large for the API's 32MB request limit` | [Erreurs de requête](#request-too-large) | | `Image was too large` | [Erreurs de requête](#image-was-too-large) | | `Unable to resize image` | [Erreurs de requête](#unable-to-resize-image) | | `PDF too large` / `PDF is password protected` | [Erreurs de requête](#pdf-errors) | | `Extra inputs are not permitted` | [Erreurs de requête](#extra-inputs-are-not-permitted) | +| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Erreurs de requête](#tool-input-schema-is-invalid) | | `There's an issue with the selected model` | [Erreurs de requête](#theres-an-issue-with-the-selected-model) | | `Model ... is not a recognized model id` | [Erreurs de requête](#model-is-not-a-recognized-model-id) | +| `Model ... not found` | [Erreurs de requête](#model-not-found) | | `Claude Opus is not available with the Claude Pro plan` | [Erreurs de requête](#claude-opus-is-not-available-with-the-claude-pro-plan) | +| `Claude Code ... does not support this model; version ... or newer is required` | [Erreurs de requête](#claude-code-does-not-support-this-model) | +| `Claude Code ... is older than the minimum version required by your organization's policy` | [Erreurs de requête](#claude-code-does-not-support-this-model) | | `Model ... is restricted by your organization's settings` | [Erreurs de requête](#model-is-restricted-by-your-organizations-settings) | +| `Model switch ... blocked by a PreModelSwitch hook` | [Erreurs de requête](#model-switch-was-blocked-by-a-premodelswitch-hook) | +| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Erreurs de requête](#couldnt-save-it-as-your-default) | | `thinking.type.enabled is not supported for this model` | [Erreurs de requête](#thinking-type-enabled-is-not-supported-for-this-model) | +| `Effort '' isn't available with thinking turned off on this model` | [Erreurs de requête](#effort-isnt-available-with-thinking-turned-off) | +| `effort '' is not supported when thinking is disabled` | [Erreurs de requête](#effort-isnt-available-with-thinking-turned-off) | | `max_tokens must be greater than thinking.budget_tokens` | [Erreurs de requête](#thinking-budget-exceeds-output-limit) | | `API Error: 400 due to tool use concurrency issues` | [Erreurs de requête](#tool-use-or-thinking-block-mismatch) | +| `API Error: 400 orphaned tool_result in conversation history` | [Erreurs de requête](#tool-use-or-thinking-block-mismatch) | +| `API Error: 400 duplicate tool_use ID in conversation history` | [Erreurs de requête](#tool-use-or-thinking-block-mismatch) | +| `[Unsupported tool content removed]` | [Erreurs de requête](#unsupported-tool-content-removed) | +| `server_tool_use.name: Input should be` on every turn of a resumed session | [Erreurs de requête](#unsupported-tool-content-removed) | +| ` can't help with this. Start a new session to continue` | [Erreurs de requête](#usage-policy-refusal) | | `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Erreurs de requête](#usage-policy-refusal) | +| `'s safeguards flagged this message` | [Erreurs de requête](#safety-measures-flagged-a-cybersecurity-topic) | +| `Opus 5.5's safeguards flagged this session` | [Erreurs de requête](#safety-measures-flagged-a-cybersecurity-topic) | | ` has safety measures that flagged this message for a cybersecurity topic` | [Erreurs de requête](#safety-measures-flagged-a-cybersecurity-topic) | | `Installation was killed before it could finish (exit code 137)` | [Erreurs d'installation](#installation-was-killed-before-it-could-finish) | | `The connection dropped while downloading the update` | [Erreurs d'installation](#the-connection-dropped-while-downloading-the-update) | | `Download timed out: exceeded the total deadline` | [Erreurs d'installation](#the-connection-dropped-while-downloading-the-update) | | `--bg and --print conflict` | [Erreurs de ligne de commande](#command-line-errors) | +| `Cloud sessions cannot be created from a --restricted session` | [Erreurs de ligne de commande](#cloud-sessions-cannot-be-created-from-a-restricted-session) | +| `Cloud sessions are disabled by your organization's policy` | [Erreurs de ligne de commande](#cloud-sessions-are-disabled-by-your-organizations-policy) | +| `Couldn't verify your organization's policy for cloud sessions` | [Erreurs de ligne de commande](#cloud-sessions-are-disabled-by-your-organizations-policy) | | `Error: --json-schema is not a valid JSON Schema` | [Erreurs de ligne de commande](#command-line-errors) | +| `Error: Invalid --agents configuration:` | [Erreurs de ligne de commande](#invalid-agents-configuration) | +| `Error: Settings file exceeds the 2MiB limit` | [Erreurs de ligne de commande](#settings-file-exceeds-the-2mib-limit) | +| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Erreurs de ligne de commande](#the-current-directory-no-longer-exists) | +| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Erreurs de ligne de commande](#directory-couldnt-be-resolved-to-a-real-location) | +| `Error: Workspace not trusted` when starting Remote Control | [Erreurs de ligne de commande](#workspace-not-trusted-when-starting-remote-control) | +| `` `` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Erreurs de ligne de commande](#not-carried-over-to-the-sessions-remote-control-starts) | +| `` `claude import` is not yet available in this build `` | [Erreurs de ligne de commande](#claude-import-is-not-yet-available-in-this-build) | +| `Could not read Claude Code config` | [Erreurs de ligne de commande](#could-not-read-claude-code-config) | | `Could not import : ` | [Erreurs de ligne de commande](#could-not-import-a-server-from-claude-desktop) | +| `Cannot add MCP server to scope: managed` | [Erreurs de ligne de commande](#cannot-add-mcp-server-to-the-managed-scope) | +| `is Anthropic-hosted and doesn't support local OAuth` | [Erreurs de ligne de commande](#anthropic-hosted-and-doesnt-support-local-oauth) | +| `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [Erreurs de ligne de commande](#cant-read-mcp-json) | +| `Server rejected the Authorization header minted by the configured headersHelper` | [Erreurs de ligne de commande](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) | | `Error: MCP tool (passed via --permission-prompt-tool) not found` | [Erreurs de ligne de commande](#mcp-permission-prompt-tool-not-found) | +| `OAuth callback port is already in use — another process may be holding it` | [Erreurs de ligne de commande](#oauth-callback-port-is-already-in-use) | +| `No available ports for OAuth redirect` | [Erreurs de ligne de commande](#no-available-ports-for-oauth-redirect) | +| `Shell command failed for pattern "..."`, from `/security-review` or any skill that injects dynamic context | [Erreurs de ligne de commande](#security-review-fails-without-origin-head) | +| `Shell command permission check failed for pattern "..."`, from a skill that injects dynamic context | [Erreurs de ligne de commande](#security-review-fails-without-origin-head) | +| ``Skill requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Erreurs de ligne de commande](#security-review-fails-without-origin-head) | +| `Input must be provided either through stdin or as a prompt argument when using --print` | [Erreurs de ligne de commande](#input-must-be-provided-when-using-print) | +| `Error: Input contained only whitespace` | [Erreurs de ligne de commande](#input-contained-only-whitespace) | +| `Blank prompt — the message was only whitespace, so nothing was sent to the model.` | [Erreurs de ligne de commande](#input-contained-only-whitespace) | +| `Error: stream-json input carried over 256M characters with no newline` | [Erreurs de ligne de commande](#stream-json-input-carried-over-256m-characters-with-no-newline) | +| `Unknown command: /`, with or without a `Did you mean` suggestion | [Erreurs de ligne de commande](#unknown-command) | +| `Diff is too large for ultrareview` / `PR # is too large for ultrareview` | [Erreurs de ligne de commande](#diff-is-too-large-for-ultrareview) | +| `Could not find merge-base with ` | [Erreurs de ligne de commande](#could-not-find-merge-base-with-the-base-branch) | +| `Your checkout has no branches (detached HEAD only)` | [Erreurs de ligne de commande](#your-checkout-has-no-branches) | +| `Ultrareview clones / in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Erreurs de ligne de commande](#no-github-account-is-connected-to-your-claude-account) | +| `Your connected GitHub account can't see /` | [Erreurs de ligne de commande](#your-connected-github-account-cant-see-the-repository) | +| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Erreurs de ligne de commande](#the-github-app-preflight-failed-transiently) | +| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [Erreurs de ligne de commande](#github-isnt-connected-to-your-claude-account) | +| `Single sign-on authorization needed` | [Erreurs de ligne de commande](#single-sign-on-authorization-needed) | +| `Failed to resume the conversation` | [Erreurs de ligne de commande](#failed-to-resume-the-conversation) | +| `No conversation found with session ID: ` | [Erreurs de ligne de commande](#no-conversation-found-with-the-session-id) | +| `Cannot switch renderers in this session` | [Erreurs de ligne de commande](#cannot-switch-renderers-in-this-session) | +| `Cannot switch renderers while work is running in the background` | [Erreurs de ligne de commande](#cannot-switch-renderers-in-this-session) | +| `Couldn't open Claude Desktop` | [Erreurs de ligne de commande](#couldnt-open-claude-desktop) | +| `Failed to open Claude Desktop. Please try opening it manually.` | [Erreurs de ligne de commande](#couldnt-open-claude-desktop) | +| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Erreurs de ligne de commande](#terminal-setup-left-your-zed-keymap-unchanged) | +| `Your Zed keymap isn't a readable list of keybindings` | [Erreurs de ligne de commande](#terminal-setup-left-your-zed-keymap-unchanged) | +| `Skill usage reports are not available on this connection.` | [Erreurs de ligne de commande](#skill-usage-reports-are-not-available-on-this-connection) | +| `Custom output styles can't be selected over Remote Control or from a relayed message` | [Erreurs de ligne de commande](#custom-output-styles-cant-be-selected-over-remote-control) | +| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Erreurs de ligne de commande](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) | +| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Erreurs de plugin](#plugin-eval-is-currently-in-early-access) | | `Marketplace "" is registered from an untrusted source` | [Erreurs de plugin](#marketplace-is-registered-from-an-untrusted-source) | +| `Marketplace "" is already added from a different source` | [Erreurs de plugin](#marketplace-is-already-added-from-a-different-source) | | `references ${user_config.*} in a shell-form command` | [Erreurs de plugin](#plugin-command-references-user-config) | | `Monitor "" from plugin references ${user_config.*} in its command` | [Erreurs de plugin](#plugin-command-references-user-config) | | `headersHelper for MCP server '' references ${user_config.*}` | [Erreurs de plugin](#plugin-command-references-user-config) | +| `Plugin archive integrity check failed` | [Erreurs de plugin](#plugin-archive-integrity-check-failed) | +| `path escapes plugin directory` | [Erreurs de plugin](#path-escapes-plugin-directory) | +| `path could not be checked` | [Erreurs de plugin](#path-could-not-be-checked) | +| `its marketplace entry path does not stay inside the marketplace directory` | [Erreurs de plugin](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) | +| `Plugin source path refused` | [Erreurs de plugin](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) | +| `Failed to load marketplace configuration` | [Erreurs de plugin](#failed-to-load-marketplace-configuration) | +| `Marketplace configuration file is corrupted` | [Erreurs de plugin](#failed-to-load-marketplace-configuration) | +| `Plugin "@synced" is required by your organization and can't be disabled here` | [Erreurs de plugin](#plugin-is-required-by-your-organization) | | `would be spawned with zero tools — refusing` | [Erreurs d'outil](#agent-would-be-spawned-with-zero-tools) | | `File is covered by a Read deny rule in your permission settings` | [Erreurs d'outil](#file-is-covered-by-a-read-deny-rule) | +| `subagent_type is required: the general-purpose agent is not available in this session` | [Erreurs d'outil](#subagent-type-is-required) | +| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [Erreurs d'outil](#memory-index-is-over-its-read-limit) | +| `pkill: refusing to run` | [Erreurs d'outil](#pkill-pattern-matches-the-claude-code-process) | +| `Failed to write to 's inbox — nothing was sent` | [Erreurs d'outil](#failed-to-write-to-a-teammate-inbox) | +| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [Erreurs d'outil](#failed-to-write-to-a-teammate-inbox) | +| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [Erreurs d'outil](#teammate-agent-definition-not-restored) | +| `Message too large for cross-session delivery` | [Erreurs d'outil](#message-too-large-for-cross-session-delivery) | +| `Too many messages to this session just now` | [Erreurs d'outil](#too-many-messages-to-this-session-just-now) | +| `Refusing to send: reply target is a symlink` / `Refusing to send: cannot vet reply target` | [Erreurs d'outil](#refusing-to-send-a-cross-session-message) | +| `Refusing to send: connected endpoint is not the expected process` / `Refusing to send: connected endpoint identity could not be read` | [Erreurs d'outil](#refusing-to-send-a-cross-session-message) | +| `Refusing to send: connected endpoint is not owned by this user` / `Refusing to send: connected endpoint owner could not be read` | [Erreurs d'outil](#refusing-to-send-a-cross-session-message) | +| `Refusing to send: connected endpoint is a different process with the expected pid` | [Erreurs d'outil](#refusing-to-send-a-cross-session-message) | +| `Refusing to read : its symlink resolution changed after permission was checked ()` / `Refusing to search : its symlink resolution changed after permission was checked` | [Erreurs d'outil](#refusing-after-a-symlink-changed) | +| `Refusing to write : its parent-directory symlink resolution changed after permission was checked` / `Refusing to write : it is a symbolic link. Write to the link's target path instead` | [Erreurs d'outil](#refusing-after-a-symlink-changed) | +| `Refusing to write through symlink: ` / `Refusing to write into symlinked directory: ` | [Erreurs d'outil](#refusing-after-a-symlink-changed) | +| `Refusing to search : a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search : it could not be opened` | [Erreurs d'outil](#refusing-after-a-symlink-changed) | +| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Erreurs d'outil](#refusing-after-a-symlink-changed) | +| `task output swap refused (tasks dir moved or linked)` | [Erreurs d'outil](#task-output-swap-refused) | +| `Command killed: its output file was replaced or could no longer be verified` | [Erreurs d'outil](#task-output-swap-refused) | +| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Erreurs d'outil](#the-source-file-is-not-valid-utf-8-text) | +| `the source file has the replacement character U+FFFD` | [Erreurs d'outil](#the-source-file-is-not-valid-utf-8-text) | +| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [Erreurs d'outil](#reading-a-local-file-from-outside-the-connected-folders) | +| `cannot read file_path (...) — the file could not be examined, and no one can answer the approval card` | [Erreurs d'outil](#reading-a-local-file-from-outside-the-connected-folders) | +| `WebFetch cannot fetch localhost or other hostnames without a dot` | [Erreurs d'outil](#webfetch-cannot-fetch-localhost) | +| `Can't open MCP settings while no terminal is attached to this background session` | [Erreurs de session en arrière-plan](#commands-refused-in-a-background-session) | | `Can't open MCP settings in a background session` | [Erreurs de session en arrière-plan](#commands-refused-in-a-background-session) | +| `blocked because the path is spelled in a form that cannot be safely resolved` | [Erreurs de session en arrière-plan](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) | +| `blocked because the path is network-shaped` | [Erreurs de session en arrière-plan](#write-or-command-blocked-because-the-path-names-a-network-location) | +| `is isolated in the worktree , but this command . Refusing to run it` | [Erreurs de session en arrière-plan](#command-blocked-by-the-worktree-isolation-checks) | +| `too complex to verify that it stays inside the worktree` | [Erreurs de session en arrière-plan](#command-blocked-by-the-worktree-isolation-checks) | +| `This session has no saved transcript` | [Erreurs de session en arrière-plan](#this-session-has-no-saved-transcript) | +| `Can't open — this session is running in another terminal` | [Erreurs de session en arrière-plan](#this-session-is-running-in-another-terminal) | +| `This conversation is already open in another running Claude session` | [Erreurs de session en arrière-plan](#this-session-is-running-in-another-terminal) | +| `This session's saved conversation is no longer on disk` | [Erreurs de session en arrière-plan](#this-sessions-saved-conversation-is-no-longer-on-disk) | +| `kept — its worktree is still at ` | [Erreurs de session en arrière-plan](#worktree-has-commits-that-are-not-pushed-anywhere) | +| `kept — unpushed commits on ` | [Erreurs de session en arrière-plan](#worktree-has-commits-that-are-not-pushed-anywhere) | +| `kept — worktree has commits that are not pushed anywhere` | [Erreurs de session en arrière-plan](#worktree-has-commits-that-are-not-pushed-anywhere) | +| `terminal host process died — press Enter to restart` / `This session's terminal host process died` | [Erreurs de session en arrière-plan](#terminal-host-process-died) | +| `Session isn't responding` / `Press enter again to restart this session — it isn't responding` | [Erreurs de session en arrière-plan](#session-isnt-responding) | +| `Session was stopped while the respawn was in flight` | [Erreurs de session en arrière-plan](#session-was-stopped-while-the-respawn-was-in-flight) | +| `This session was running agent '', which is no longer available` | [Erreurs de session en arrière-plan](#session-agent-no-longer-available) | | `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [Erreurs de session en arrière-plan](#claude_code_process_wrapper-launcher-errors) | +| `EUNKNOWN: unknown error, uv_spawn` | [Erreurs de session en arrière-plan](#eunknown-when-starting-a-background-session) | +| `EACCES: permission denied, posix_spawn` | [Erreurs de session en arrière-plan](#eacces-when-starting-a-background-session) | +| `exited before it became reachable` | [Erreurs de session en arrière-plan](#background-service-exited-before-it-became-reachable) | +| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [Erreurs de session en arrière-plan](#working-directory-no-longer-exists-when-starting-a-background-session) | +| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Erreurs de session en arrière-plan](#eacces-when-starting-a-background-session) | +| `Claude Code process exited with code N` | [Erreurs de wrapper et d'IDE](#claude-code-process-exited-with-code-n) | +| `The connection to Claude Code ended before this message completed` | [Erreurs de wrapper et d'IDE](#the-connection-to-claude-code-ended-before-this-message-completed) | +| `Could not locate the Claude CLI on PATH` | [Erreurs de wrapper et d'IDE](#could-not-locate-the-claude-cli-on-path) | +| `Restored the code, but skipped N files` | [Avertissements et erreurs de rembobinage](#restored-the-code-but-skipped-files) | +| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [Avertissements et erreurs de rembobinage](#no-files-were-restored) | +| `Transcript writes are failing (...)` | [Avertissements d'enregistrement de session](#transcript-writes-are-failing) | +| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [Avertissements d'enregistrement de session](#transcript-saving-is-off-skip-prompt-history) | +| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [Avertissements d'enregistrement de session](#transcript-saving-is-off-child-session-marker) | +| `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` | [Avertissements de configuration](#fullscreen-failed-start-notice) | +| `Claude Code exited after an unrecoverable interface error (...)` | [Avertissements de configuration](#exited-after-an-unrecoverable-interface-error) | +| `Agent descriptions are over the 15.0k-token limit` | [Avertissements de configuration](#agent-descriptions-are-over-the-15000-token-limit) | | `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Avertissements de configuration](#workspace-has-not-been-trusted) | -| Responses seem lower quality than usual | [Qualité des réponses](#responses-seem-lower-quality-than-usual) | +| `is a network path, which cannot be added as a working directory` | [Avertissements de configuration](#working-directory-is-a-network-path) | +| `Remote managed settings failed to load ()` | [Avertissements de configuration](#remote-managed-settings-failed-to-load) | +| `Managed settings were not approved; exiting without applying them.` | [Avertissements de configuration](#managed-settings-were-not-approved) | +| `MCP server is blocked by enterprise managed policy` | [Avertissements de configuration](#mcp-server-is-blocked-by-enterprise-managed-policy) | +| `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-document-could-not-be-parsed) | +| `Managed settings drop-in directory could not be read` | [Avertissements de configuration](#managed-settings-document-could-not-be-parsed) | +| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Avertissements de configuration](#otelheadershelper-failed) | +| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Avertissements de configuration](#crosssessioninbound-must-be-one-of-accept-hold-refuse) | +| `headersHelper not run — this workspace has no persisted trust` | [Avertissements de configuration](#headershelper-not-run) | +| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Avertissements de configuration](#malformed-tool-content-rule) | +| `... is not matched by file permission checks` | [Avertissements de configuration](#is-not-matched-by-file-permission-checks) | +| `... has a wildcard before the rest of the command` | [Avertissements de configuration](#has-a-wildcard-before-the-rest-of-the-command) | +| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Avertissements de configuration](#the-200k-limit-isnt-enforced) | +| `[claude-code:unrecognized_model]` | [Avertissements de configuration](#unrecognized-model-id-on-a-request) | +| `Stale sandbox mask files left by a killed session` | [Avertissements de configuration](#stale-sandbox-mask-files-left-by-a-killed-session) | +| Les réponses semblent être de qualité inférieure à la normale | [Qualité des réponses](#responses-seem-lower-quality-than-usual) |

Tentatives automatiques

-Claude Code réessaie les défaillances transitoires avant de vous afficher une erreur. Les erreurs serveur, les réponses surchargées, les délais d'attente des requêtes, les accélérateurs 429 temporaires et les connexions interrompues sont tous réessayés jusqu'à 10 fois avec un backoff exponentiel. À partir de la v2.1.198, cela couvre les connexions qui se déconnectent au milieu d'une réponse avant que toute sortie visible n'ait été diffusée : Claude Code réédite la requête avec le même backoff et le tour continue au lieu de s'arrêter avec une erreur de connexion. À partir de la v2.1.199, les accélérateurs 429 temporaires qui ne portent pas les en-têtes de quota de votre plan sont également réessayés lorsque vous êtes connecté avec un abonnement claude.ai ; les versions antérieures les réessayaient uniquement pour les connexions par clé API et Enterprise. +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 ; les listes ci-dessous indiquent quelles défaillances bénéficient du budget complet, lesquelles en bénéficient d'un plus petit, et lesquelles n'en bénéficient pas. -Certaines classes de défaillances ne sont pas réessayées, car une tentative ne peut pas réussir : +Claude Code réessaie ces défaillances : -* À partir de la v2.1.199, une défaillance de validation de certificat TLS, telle qu'un proxy inspectant TLS, un bundle `NODE_EXTRA_CA_CERTS` manquant ou un certificat expiré, échoue à la première tentative pour que le correctif apparaisse immédiatement au lieu d'après le budget de tentative complet. Consultez [Erreurs de certificat SSL](#ssl-certificate-errors). Les conditions TLS transitoires telles qu'un délai d'attente de poignée de main réessaient toujours. -* À partir de la v2.1.199, une erreur serveur qui arrive après que Claude a déjà diffusé une sortie visible conserve la réponse partielle et ajoute un [avis de réponse incomplète](#the-response-above-may-be-incomplete) au lieu de réessayer, car réexécuter la requête pourrait exécuter les mêmes appels d'outils deux fois. Les versions antérieures ont rejeté la sortie partielle et ont signalé le tour comme une erreur. -* Une [réponse de streaming Amazon Bedrock avec un type de contenu inattendu](#bedrock-streaming-response-has-an-unexpected-content-type) échoue à la première tentative, car la passerelle ou le proxy réécrivant la réponse réécrirait la tentative de la même manière. Nécessite Claude Code v2.1.208 ou version ultérieure. +* Les erreurs serveur, les réponses surchargées et les délais d'attente de requête qui arrivent avant que l'une des réponses de Claude ne soit diffusée. +* 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 rémet la requête avec le même backoff et le tour continue, même si du texte avait déjà commencé à être diffusé. 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 rémet plutôt la requête jusqu'à deux fois en succession rapide, et termine le tour avec `Connection lost before a response was produced` si 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 lit `Your 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 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 rémet la requête au maximum une fois, en dehors du budget de 10 tentatives ci-dessus. 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 de diffusion à 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](/docs/fr/network-config#streaming-idle-watchdogs) : Claude Code l'abandonne à la date limite et le renvoie au maximum une fois par requête de modèle, dans le budget de tentatives, puis termine le tour avec [No response from API](#no-response-from-api) si cette tentative reste sans réponse aussi. Sur d'autres connexions, la requête attend `API_TIMEOUT_MS`. Lorsque vous définissez `CLAUDE_CODE_RETRY_WATCHDOG`, le plafond d'une tentative ne s'applique pas. +* Les throttles 429 temporaires, mais pas le `429` de limite de dépenses d'une passerelle, qui n'est pas un throttle ; voir [Spend limit reached](#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_tokens` dépasse la limite de contexte. La renvoyer inchangée échouerait de la même manière, donc Claude Code réessaie avec un `max_tokens` ré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 credential Google Cloud expirée ou manquante sur [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai), ou des credentials AWS qui ne se chargent pas sur votre machine. Claude Code rejette ses credentials 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](#could-not-load-aws-or-google-cloud-credentials). Avant v2.1.228, Claude Code réessayait une credential Google Cloud défaillante à travers le budget de tentatives complet avant d'afficher l'erreur. +* Un `401` ou `403` de l'API Anthropic, directement ou via une [passerelle LLM](/docs/fr/llm-gateway), tandis qu'un script [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) fournit la credential. 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](#your-apikeyhelper-script-is-failing) à la place. -Lors des 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 de 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 la v2.1.198, elle bascule vers la raison spécifique 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. +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`. -À partir de la v2.1.198, l'indice de spinner habituel est supprimé lors des tentatives. Une fois que la raison de l'erreur est révélée, si la défaillance est une surcharge 529, la ligne sous le 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. +Claude Code ne réessaie pas ces défaillances : -Si aucune donnée n'arrive sur le flux de réponse pendant 20 secondes alors qu'une requête est toujours en attente, le spinner affiche `Waiting for API response · will retry in … · check your network` avant que toute tentative n'ait commencé. 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 et réessaie, de sorte que la bannière s'efface d'elle-même une fois que les données reprennent ou que la tentative réussit. À partir de la v2.1.185, le seuil est de 20 secondes ; les versions antérieures affichent la bannière après 10 secondes avec un libellé différent. Si elle réapparaît à chaque tentative, traitez-la comme un [problème réseau](#unable-to-connect-to-api). +* Une défaillance de validation de certificat TLS, telle qu'un proxy inspectant TLS, un bundle `NODE_EXTRA_CA_CERTS` manquant, 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 [SSL certificate errors](#ssl-certificate-errors). 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 rémet pas la requête, car cela pourrait exécuter les mêmes appels d'outil deux fois. Il conserve ce que Claude a complété, exécute tous les appels d'outil 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](#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 de réessai, donc Claude Code conserve la réponse complète et termine le tour normalement. +* Une [réponse de diffusion Amazon Bedrock avec un type de contenu inattendu](#bedrock-streaming-response-has-an-unexpected-content-type), parce que la passerelle ou le proxy réécrivant la réponse réécrirait le réessai de la même manière. Nécessite Claude Code v2.1.208 ou ultérieur. +* Un réessai non-diffusé d'une requête de diffusion défaillante qui obtient un statut de succès mais [aucun message API Claude dans le corps](#api-returned-an-empty-or-malformed-response). 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](https://platform.claude.com/docs/en/manage-claude/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](/docs/fr/model-config#fallback-model-chains), 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 diffusion ou sur un modèle de secours configuré, avant de vous afficher le refus. -Lorsque vous voyez l'une des erreurs de cette page, ces tentatives ont déjà été épuisées, sauf si elle appartient à une classe qui n'est pas réessayée, telle qu'une défaillance de validation de certificat. Vous pouvez ajuster le comportement avec ces variables d'environnement : +

+ Ce que vous voyez pendant que Claude Code réessaie ou attend +

+ +Pendant le réessai, 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 de 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 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 réessais. 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. + +Si aucune donnée n'arrive sur le flux de réponse pendant 20 secondes tandis qu'une requête est toujours en attente, le spinner affiche `Waiting for API response · will retry in … · check your network` avant que tout réessai n'ait commencé. 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. Après l'abandon, ce que vous voyez dépend de la distance parcourue par la réponse : + +* 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. [Automatic retries](#automatic-retries) 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'outil que Claude a terminés, et affiche [The response above may be incomplete](#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 inviter Claude à 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'un réessai réussit. Si elle réapparaît à chaque tentative, traitez-la comme un [problème réseau](#unable-to-connect-to-api). Avant v2.1.185, la bannière apparaissait après 10 secondes avec un libellé différent. + +Pendant que Claude consulte le [conseiller](/docs/fr/advisor), la bannière apparaît après 90 secondes sans données au lieu de 20, parce qu'un long examen du conseiller peut ne rien envoyer pendant bien plus de 20 secondes. Avant v2.1.214, le seuil de 20 secondes s'appliquait également pendant les appels du conseiller, donc la bannière apparaissait pendant les examens du conseiller même lorsque rien n'allait mal. + +

+ Ajuster le comportement de réessai +

+ +Vous pouvez ajuster le comportement de réessai avec ces variables d'environnement : | Variable | Par défaut | Effet | -| :------------------------------------------- | :--------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [`CLAUDE_CODE_MAX_RETRIES`](/docs/fr/env-vars) | 10 | Nombre de tentatives de réessai. Limité à 15 à partir de la v2.1.186 ; à partir de la 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`](/docs/fr/env-vars) | non défini | Définissez sur `1` dans les sessions sans surveillance telles que les tâches CI pour réessayer les erreurs de capacité `429` et `529` indéfiniment au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. À partir de la v2.1.199, 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 cette variable explicitement. | -| [`API_TIMEOUT_MS`](/docs/fr/env-vars) | 600000 | Délai d'attente par requête en millisecondes. Augmentez-le pour les réseaux lents ou les proxies. | +| :---------------------------------------------------- | :--------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`CLAUDE_CODE_MAX_RETRIES`](/docs/fr/env-vars) | 10 | Nombre de tentatives de réessai. 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`](/docs/fr/env-vars) | 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](#spend-limit-reached) qui se réinitialise selon un calendrier. Avant v2.1.239, le watchdog réessayait ces indéfiniment. Pour les requêtes en mode rapide, voir [Handle rate limits](/docs/fr/fast-mode#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. | +| [`API_TIMEOUT_MS`](/docs/fr/env-vars) | 600000 | Délai d'attente par requête en millisecondes. Augmentez-le pour les réseaux lents ou les proxies. Il plafonne également la durée pendant laquelle Claude Code attend les en-têtes de réponse, décrite dans [No response from API](#no-response-from-api). | +| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/fr/env-vars) | non défini | Délai en millisecondes pour le premier octet de réponse d'une requête de diffusion. 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](#no-response-from-api). |

Erreurs serveur

-Ces erreurs proviennent du fournisseur d'inférence plutôt que de votre compte ou de votre demande. Sur l'API Anthropic, cela signifie l'infrastructure Anthropic. Sur Amazon Bedrock, la plateforme Agent de Google Cloud, Microsoft Foundry ou une passerelle personnalisée, cela signifie l'infrastructure de ce fournisseur. +La plupart de ces erreurs proviennent du fournisseur d'inférence : le service Anthropic sur l'API Anthropic, et le service derrière le point de terminaison 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](#auto-mode-cannot-determine-the-safety-of-an-action) et [L'agent s'est arrêté prématurément en raison d'une erreur API](#agent-terminated-early-due-to-an-api-error) couvrent également les causes de votre côté, comme un compte Amazon Bedrock qui ne peut pas invoquer le modèle de classification ou un sous-agent qui a atteint une limite d'utilisation.

Erreur API : 500 Erreur serveur interne @@ -135,7 +382,7 @@ Claude Code affiche le code d'état et le message d'erreur de l'API pour toute r 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 indiquent l'état du service de ce fournisseur. Une `ANTHROPIC_BASE_URL` personnalisée indique l'hôte de la passerelle. +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. Cela 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. @@ -143,7 +390,7 @@ Cela indique une défaillance inattendue à l'intérieur de l'API. Elle n'est pa * Vérifiez [status.claude.com](https://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 again` au lieu de coller le tout. -* Si l'erreur persiste sans incident signalé, exécutez `/feedback` pour qu'Anthropic puisse enquêter avec les détails de votre demande. Consultez [Report an error](#report-an-error) si `/feedback` n'est pas disponible dans votre environnement. +* Si l'erreur persiste sans incident signalé, exécutez `/feedback` pour qu'Anthropic puisse enquêter avec les détails de votre demande. Voir [Signaler une erreur](#report-an-error) si `/feedback` n'est pas disponible dans votre environnement.

Erreur API : Erreurs 529 Overloaded répétées @@ -169,7 +416,7 @@ Un 529 n'est pas votre limite d'utilisation et ne compte pas contre votre quota. Délai d'attente de la demande dépassé

-L'API n'a pas répondu avant la limite de connexion. +L'API n'a pas répondu avant la date limite de connexion. ```text theme={null} Request timed out @@ -181,52 +428,97 @@ Cela peut se produire pendant les périodes de charge élevée ou quand le modè * Réessayez la demande * Pour les tâches longues, divisez le travail en prompts plus petits -* Si un réseau lent ou un proxy en est la cause, augmentez `API_TIMEOUT_MS` comme décrit dans [Automatic retries](#automatic-retries) -* Si les délais d'attente sont fréquents et votre réseau est par ailleurs sain, consultez [Network and connection errors](#network-and-connection-errors) ci-dessous +* Si une connexion réseau lente ou un proxy en est la cause, augmentez `API_TIMEOUT_MS` comme décrit dans [Tentatives automatiques](#automatic-retries) +* Si les délais d'attente sont fréquents et votre réseau est par ailleurs sain, voir [Erreurs réseau et de connexion](#network-and-connection-errors) ci-dessous + +

+ Aucune réponse de l'API +

+ +Claude Code a envoyé une demande de streaming et l'API n'a retourné aucun en-tête de réponse avant la date limite du premier octet, donc Claude Code a annulé la demande au lieu d'attendre le délai d'attente de demande `API_TIMEOUT_MS` complet, 10 minutes par défaut. Claude Code renvoie la demande au maximum une fois, si le [budget de tentatives](#tune-retry-behavior) le permet. Quand la tentative de réessai reste sans réponse, le tour se termine par ce message, qui montre combien de temps chaque tentative a attendu. Quand vous définissez [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/fr/env-vars), le plafond d'une tentative ne s'applique pas et Claude Code réessaie selon le budget décrit dans [Ajuster le comportement de tentative](#tune-retry-behavior). + +```text theme={null} +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_MS`](/docs/fr/env-vars) quand 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](/docs/fr/network-config#streaming-idle-watchdogs), 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 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. + +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](#automatic-retries) au lieu de cette date limite. + +**Que faire :** + +* Renvoyez votre message. Votre message original est toujours dans la conversation, donc pour un long prompt vous pouvez taper `try again` au lieu de coller le tout. +* Si cela se répète, traitez-le comme un [problème réseau ou proxy](#unable-to-connect-to-api). Un proxy qui accepte la connexion et ne transfère jamais la demande produit cette erreur à chaque tentative. +* Si une passerelle ou un proxy sur votre réseau retient les réponses jusqu'à ce qu'elles soient terminées, augmentez `API_TIMEOUT_MS` afin que la tentative de réessai attende plus longtemps. Sur Amazon Bedrock, augmentez également `CLAUDE_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_MS` afin 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.

La réponse ci-dessus peut être incomplète

-Une réponse en streaming a échoué après que Claude ait déjà produit une sortie visible. Le renvoi de la demande pourrait exécuter les mêmes appels d'outils deux fois, donc Claude Code conserve ce qui a déjà été diffusé en streaming et ajoute cet avis à la place de rejeter le tour. La variante que vous voyez indique la cause : +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 : ```text theme={null} API Error: Server error mid-response. The response above may be incomplete. -API Error: Connection closed mid-response. The response above may be incomplete. -API Error: Response stalled mid-stream. 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. ``` * `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 closed mid-response` : la connexion a été interrompue. -* `Response stalled mid-stream` : le flux a cessé d'envoyer des données. +* `Connection lost mid-response` : la connexion a été interrompue. +* `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. +* `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](/docs/fr/gateways) atteintes via `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL` tandis 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 que `ANTHROPIC_BEDROCK_BASE_URL` ne sont pas enveloppées par le watchdog d'octet ; voir [Watchdogs d'inactivité de streaming](/docs/fr/network-config#streaming-idle-watchdogs). + +Avant v2.1.227, `Connection lost mid-response` lisait `Connection closed mid-response` et `The response stopped arriving` lisait `Response stalled mid-stream`. + +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](#automatic-retries). +* 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](/docs/fr/headless), comme une exécution `-p`, une exécution [Agent SDK](/docs/fr/agent-sdk/overview), ou une [session cloud](/docs/fr/claude-code-on-the-web), vous n'avez pas à envoyer `continue` vous-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](/docs/fr/sub-agents#api-errors-in-subagents), 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 :** -* Lisez la réponse qui a été diffusée en streaming. Rien n'a été perdu, mais les dernières phrases ou appels d'outils peuvent manquer. -* Répondez avec `continue` pour que Claude reprenne là où il s'est arrêté -* Si la même erreur apparaît avant toute sortie visible, Claude Code réessaye la demande au lieu de la finaliser. Consultez [Automatic retries](#automatic-retries). +* 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 `continue` pour que Claude reprenne à partir de son dernier bloc terminé. +* En [mode non-interactif](/docs/fr/headless) (`-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 `-p` et rejetait la réponse qu'il avait déjà produite. + * Avec `--output-format json` ou `stream-json`, Claude Code signale ce message dans le champ `result`. + * Pour continuer le tour une fois la connexion stable, reprenez la session et envoyez `continue` comme décrit dans [Continuer les conversations](/docs/fr/headless#continue-conversations).

Le mode auto ne peut pas déterminer la sécurité d'une action

-Le modèle que [le mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) utilise pour classer 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 raison de l'échec du classificateur. +Le modèle que le [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) 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 classificateur est surchargé : +Quand le modèle de classification est indisponible : ```text theme={null} - is temporarily unavailable, so auto mode cannot determine the safety of right now. Wait briefly and then try this action again. + is temporarily unavailable, so auto mode cannot determine the safety of right now. Wait a moment and then try this action again. ``` +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 ` is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of right now`. Les catégories sont `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)`, et `(connection failed)`. Les limites de débit, les surcharges et les erreurs serveur sont transitoires, et les tentatives fonctionnent. Si `(timed out)` ou `(connection failed)` se répète, vérifiez votre connexion ; voir [Impossible de se connecter à l'API](#unable-to-connect-to-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](/docs/fr/amazon-bedrock), y compris le [point de terminaison Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint), 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éessaye généralement de lui-même -* Si les tentatives continuent d'échouer, continuez avec les tâches en lecture seule et revenez à l'action bloquée plus tard -* C'est transitoire et sans rapport avec [l'admissibilité du mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) ; vous n'avez pas besoin de modifier les paramètres +* 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](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) ; 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](/docs/fr/amazon-bedrock#iam-configuration) permet de l'invoquer ; pour les ID de modèle Mantle, [contactez votre équipe de compte AWS](/docs/fr/amazon-bedrock#mantle-endpoint-errors) -Quand le classificateur a renvoyé une réponse non analysable : +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 de routine 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 : ```text theme={null} Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details @@ -243,30 +535,42 @@ Quand une vérification de sécurité API distincte a bloqué la demande du clas 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](/docs/fr/permission-modes#when-auto-mode-falls-back). Dans une exécution `-p` [non-interactive](/docs/fr/headless), 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](/docs/fr/sub-agents#run-subagents-in-foreground-or-background) dans une exécution `-p` sans `--input-format stream-json`, Claude Code retourne un résultat d'erreur contenant `Agent 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 -* Le renvoi n'aidera pas ; le même contenu de conversation déclenchera le filtre à nouveau -* Basculez vers un [mode de permission](/docs/fr/permission-modes) différent pour pouvoir approuver l'action quand vous y êtes invité, ou commencez une nouvelle conversation sans le contenu déclencheur +* 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](/docs/fr/permission-modes) 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 a grandi au-delà de la fenêtre de contexte du classificateur : +Quand la conversation a grandi plus que la fenêtre de contexte du classificateur : ```text theme={null} Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size) ``` -Dans une session interactive, le mode auto revient à une invite de permission normale pour cette action afin que vous puissiez l'approuver ou la refuser manuellement. En [mode non-interactif](/docs/fr/headless), l'exécution s'arrête car la transcription ne fait que croître et le renvoi ne peut pas réussir. +Ce qui se passe à l'action dépend de l'endroit où Claude l'a demandée : + +* Dans une session interactive, le mode auto revient à une invite de permission normale pour cette action afin que vous puissiez l'approuver ou la refuser manuellement +* À un [sous-agent en arrière-plan](/docs/fr/sub-agents#run-subagents-in-foreground-or-background) dans une exécution `-p` [non-interactive](/docs/fr/headless) sans `--input-format stream-json`, Claude Code retourne un résultat d'erreur contenant `Agent aborted: auto mode classifier transcript exceeded context window in headless mode`, et l'exécution continue +* Ailleurs dans une exécution `-p` sans [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags), il n'y a pas d'invite pour revenir, donc l'action ne s'exécute pas et l'exécution continue **Que faire :** -* Approuvez ou refusez l'action dans l'invite qui apparaît -* Exécutez `/compact` pour réduire la taille de la conversation afin que les actions suivantes s'adaptent à nouveau à la fenêtre du classificateur +* Dans une session interactive, approuvez ou refusez l'action dans l'invite qui apparaît +* Dans une session interactive, exécutez `/compact` pour réduire la taille de la conversation afin que les actions suivantes s'adaptent à nouveau à la fenêtre du classificateur

- Agent terminé prématurément en raison d'une erreur API + L'agent s'est arrêté prématurément en raison d'une erreur API

-La demande API d'un [sous-agent](/docs/fr/sub-agents) 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 renvoyé à Claude comme s'il s'agissait du résultat du sous-agent. +Une demande API d'un [sous-agent](/docs/fr/sub-agents) 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. ```text theme={null} Agent terminated early due to an API error: @@ -274,83 +578,112 @@ Agent terminated early due to an API error: **Que faire :** -* Faites correspondre le détail de l'erreur après les deux points à sa propre section sur cette page, telle que [Usage limits](#usage-limits) ou [Server errors](#server-errors), et suivez les étapes de cette section +* Faites correspondre le détail d'erreur après les deux points à sa propre section sur cette page, comme [Limites d'utilisation](#usage-limits) ou [Erreurs serveur](#server-errors), 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](/docs/fr/sub-agents#resume-subagents) -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 textuelle, 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'outils reçoit également cette erreur ; en v2.1.199, cela renvoyait un résultat partiel vide à la place. Consultez [API errors in subagents](/docs/fr/sub-agents#api-errors-in-subagents). +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](/docs/fr/sub-agents#api-errors-in-subagents).

Limites d'utilisation

-Ces erreurs signifient qu'un quota lié à votre compte ou à votre plan a été atteint. Elles sont distinctes des [erreurs serveur](#server-errors), qui affectent tout le monde. +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`](#server-is-temporarily-limiting-requests) est un throttle côté serveur sans rapport avec votre quota de plan, [`Usage credits required for 1M context`](#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`](#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.

- Vous avez atteint votre limite de session + You've hit your session limit

-Les plans d'abonnement incluent une allocation d'utilisation glissante. Quand elle s'épuise, vous voyez l'un de ces messages : +Les plans d'abonnement incluent une allocation d'utilisation continue. Quand elle s'épuise, vous voyez l'un de ces messages : ```text theme={null} 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 demandes 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. La limite Opus s'applique uniquement aux demandes Opus, donc passer à un autre modèle avec `/model` vous permet de continuer à travailler. +Claude Code bloque les demandes 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 demandes adressées à cette famille de modèles, donc passer à un modèle en dehors de la famille avec `/model` vous permet de continuer à travailler. -L'utilisation compte par rapport aux allocations de session et hebdomadaires en même temps. Une seule rafale d'activité intensive, comme un grand fanout de flux de travail, peut épuiser l'allocation hebdomadaire avant que la fenêtre de session se réinitialise. +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. Pendant qu'il attend, une ligne au bas de la session indique `Usage limit reached · continuing automatically at 3:45pm · esc to cancel`. Appuyez sur `Esc` à une invite vide pour annuler l'attente. Consultez [Wait for a usage limit to reset](/docs/fr/interactive-mode#wait-for-a-usage-limit-to-reset) 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. -**À faire :** +L'utilisation compte à la fois pour les allocations de session et hebdomadaires. Une seule rafale d'activité intensive, comme un grand fanout de flux de travail, 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 -* Pour la limite Opus, exécutez `/model` et passez à un autre modèle pour continuer à travailler -* Exécutez `/usage` pour voir les limites de votre plan et quand elles se réinitialisent +* Dans l'onglet Code de l'[application de bureau](/docs/fr/desktop), 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 `/config` sont séparés, donc désactivez chacun indépendamment. +* Pour la limite Opus ou Sonnet, exécutez `/model` et basculez vers un modèle en dehors de cette famille pour continuer à travailler. Chaque modèle a son propre cache de prompt, donc la demande suivante relit toute la conversation sans accès au cache ; consultez [Switching models](/docs/fr/prompt-caching#switching-models) +* Exécutez `/usage` pour voir vos limites de plan et quand elles se réinitialisent * Exécutez `/usage-credits` pour 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](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pour savoir comment cela est facturé. -* Pour mettre à niveau votre plan vers des limites de base plus élevées, consultez [claude.com/pricing](https://claude.com/pricing) +* Pour mettre à niveau votre plan pour des limites de base plus élevées, consultez [claude.com/pricing](https://claude.com/pricing) -Pour surveiller votre allocation restante avant d'atteindre la limite, ajoutez les champs `rate_limits` à une [ligne d'état personnalisée](/docs/fr/statusline#rate-limit-usage), ou dans l'application Desktop, cliquez sur l'[anneau d'utilisation](/docs/fr/desktop#check-usage) à côté du sélecteur de modèle. +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 [ligne d'état personnalisée](/docs/fr/statusline#rate-limit-usage), ou dans l'application de bureau, cliquez sur l'[anneau d'utilisation](/docs/fr/desktop#check-usage) à côté du sélecteur de modèle.

- Crédits d'utilisation requis pour le contexte 1M + Usage credits required for 1M context

-Le modèle sélectionné utilise la fenêtre de contexte étendue 1M-token, et votre plan ne l'inclut que par le biais de crédits d'utilisation. +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. ```text theme={null} -API Error: Usage credits required for 1M context · run /usage-credits to turn them on, or /model to switch to standard context +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 ``` -Il s'agit d'une vérification de droit, et non d'un épuisement de quota. Elle se déclenche même quand vos allocations de session et hebdomadaires ont de la capacité restante. Consultez [Extended context](/docs/fr/model-config#extended-context) pour voir quels plans incluent directement le contexte 1M et lesquels nécessitent des crédits d'utilisation. +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 [Extended context](/docs/fr/model-config#extended-context) pour voir quels plans incluent le contexte 1M directement et lesquels nécessitent des crédits d'utilisation. Claude Code exécute cette vérification quand vous choisissez le modèle avec `/model`, et uniquement sur une connexion directe à l'API Anthropic ; si vous pointez `ANTHROPIC_BASE_URL` vers une [passerelle LLM](/docs/fr/llm-gateway), `/model` permet la sélection `[1m]` et la passerelle décide si la demande réussit. -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 s'est répétée à chaque demande ultérieure, 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]`. +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 s'est répétée à chaque demande 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]`. -**À faire :** +**Ce qu'il faut faire :** * Exécutez `/model` et sélectionnez la variante sans le suffixe `[1m]` pour revenir à la fenêtre de contexte standard -* Exécutez `/usage-credits` pour activer la facturation mesurée pour la variante 1M sur Pro et Max, ou pour la demander à votre administrateur sur Team et Enterprise -* Si l'erreur persiste après `/model`, un ID de modèle 1M peut être défini ailleurs. Consultez [There's an issue with the selected model](#theres-an-issue-with-the-selected-model) pour les emplacements de configuration à vérifier par ordre de priorité. -* Pour supprimer entièrement les variantes 1M du sélecteur de modèle, définissez [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/fr/env-vars) +* 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 [Setting your model](/docs/fr/model-config#setting-your-model) 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`](/docs/fr/env-vars) + +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](/docs/fr/model-config#fable-and-usage-credits), Claude Code vous demande de confirmer avant qu'une demande Fable ne facture les crédits d'utilisation. Quand personne ne répond à cette invite de consentement dans une session qui peut ne pas avoir quelqu'un à son terminal, Claude Code ferme l'invite et termine le tour avec l'un de ces messages : + +```text theme={null} +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 lisent `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](/docs/fr/remote-control), les [sessions en arrière-plan](/docs/fr/agent-view), et les sessions de coéquipiers [agent team](/docs/fr/agent-teams). Claude Code affiche l'invite de consentement uniquement dans la vue interactive de la session : le terminal où elle s'exécute, ou, pour une session en arrière-plan, la [vue des agents](/docs/fr/agent-view) une fois que vous vous attachez. Un client Remote Control ne peut pas l'afficher. Claude Code ferme l'invite à la date limite [`dialogExpiry`](/docs/fr/settings-reference#dialogexpiry), cinq minutes par défaut, ou dès qu'une nouvelle invite arrive alors que personne n'a tapé à ce terminal, comme une invite envoyée par un client Remote Control. Taper au terminal où la session s'exécute annule la date limite, et Claude Code attend votre réponse. Dans la vue attachée d'une session en arrière-plan, taper n'annule pas la date limite, et une nouvelle invite ferme toujours l'invite de consentement, donc répondez avant que l'un ou l'autre ne se produise. Claude Code n'envoie rien et conserve votre modèle, donc quand vous envoyez votre prochaine invite, Claude Code affiche à nouveau l'invite de consentement. + +**Ce qu'il faut faire :** + +* Au terminal où la session s'exécute, envoyez une autre invite 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](/docs/fr/agent-view). Renvoyer depuis un client Remote Control affiche ce message à nouveau, car le client ne peut pas afficher l'invite. +* Exécutez `/model` pour basculer vers un modèle qui ne facture pas les crédits d'utilisation +* Pour vous donner plus de temps pour atteindre ce terminal, définissez [`dialogExpiry`](/docs/fr/settings-reference#dialogexpiry) sur 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.

- Le serveur limite temporairement les demandes + Server is temporarily limiting requests

-L'API a appliqué un throttle de courte durée qui n'est pas lié à votre quota de plan. +L'API a appliqué un throttle de courte durée sans rapport avec votre quota de plan. ```text theme={null} 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](#automatic-retries) 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 a échoué le tour à la première occurrence ; seules les authentifications par clé API et Enterprise l'ont réessayé. +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](#automatic-retries) 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. -**À faire :** +**Ce qu'il faut faire :** * Attendez brièvement et réessayez * Vérifiez [status.claude.com](https://status.claude.com) si cela persiste

- Demande rejetée (429) + 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. @@ -359,31 +692,98 @@ Vous avez atteint la limite de débit configurée pour votre clé API, votre pro API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com. ``` -La phrase de fin indique 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 la page d'état du service de ce fournisseur au lieu de la page d'état Anthropic. Une `ANTHROPIC_BASE_URL` personnalisée nomme l'hôte de la passerelle. +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. -**À faire :** +**Ce qu'il faut faire :** -* Exécutez `/status` et confirmez que les identifiants actifs sont ceux que vous attendez. Une `ANTHROPIC_API_KEY` égarée dans votre environnement peut acheminer les demandes via une clé de niveau inférieur au lieu de votre abonnement. +* Exécutez `/status` et confirmez que les identifiants actifs sont ceux que vous attendez. Un `ANTHROPIC_API_KEY` égaré dans votre environnement peut acheminer les demandes 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](https://platform.claude.com/docs/en/api/rate-limits) pour savoir comment fonctionnent les niveaux et comment définir des plafonds par espace de travail -* Réduisez la concurrence : abaissez [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/fr/env-vars), évitez d'exécuter de nombreux sous-agents parallèles, ou passez à un modèle plus petit avec `/model` pour les exécutions scriptées à haut volume +* Réduisez la concurrence : abaissez [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/fr/env-vars), évitez d'exécuter de nombreux sous-agents parallèles, ou basculez vers un modèle plus petit avec `/model` pour 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 demande, et les [crédits d'utilisation](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 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 demande est une demande que seuls les crédits d'utilisation paient, comme une demande à un modèle qui [facture aux crédits d'utilisation](/docs/fr/model-config#fable-and-usage-credits). 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 : + +```text theme={null} +You've hit your monthly spend limit · raise it at claude.ai/settings/usage +You've hit your individual spend limit · ask your admin for a higher limit +You've hit your org's monthly spend limit · visit claude.ai/admin-settings/usage to raise it +You've hit your team's shared budget · ask your admin to raise it at 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`. + +Avant v2.1.239, le message ne nommait pas l'heure de réinitialisation de la fenêtre du plan. Avant v2.1.268, le budget groupé d'un groupe produisait le message `individual spend limit` au lieu de `team's shared budget`. + +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](#spend-limit-reached). + +**Ce qu'il faut faire :** + +* Sur Pro et Max, augmentez votre limite de dépenses mensuelles dans [**Settings > Usage**](https://claude.ai/settings/usage) sur claude.ai, ou exécutez `/usage-credits` +* Sur Team et Enterprise, augmentez la limite dans [**Admin settings > Usage**](https://claude.ai/admin-settings/usage) si vous gérez la facturation, ou demandez à un administrateur de le faire. `/usage-credits` envoie 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](https://claude.com/docs/claude-tag/admins/set-spend-limit#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 `/usage` pour 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](/docs/fr/claude-apps-gateway) et avez dépassé un [plafond de dépenses](/docs/fr/claude-apps-gateway-spend-limits) que votre opérateur de passerelle a défini. La passerelle bloque vos demandes 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. + +```text theme={null} +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 lisait 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 demande 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.

- Le solde de crédit est trop faible + Credit balance is too low

-Votre organisation Console a épuisé ses crédits prépayés. +Votre organisation Console a épuisé ses crédits prépayés, ou Claude Code envoie vos demandes avec une clé API Console quand vous aviez l'intention d'utiliser votre abonnement. ```text theme={null} Credit balance is too low ``` -**À faire :** +**Ce qu'il faut faire :** -* Ajoutez des crédits sur [platform.claude.com/settings/billing](https://platform.claude.com/settings/billing), et envisagez d'activer le rechargement automatique pour que le solde se reconstitue avant d'atteindre zéro -* Passez à l'authentification par abonnement avec `/login` si vous avez un plan Pro, Max, Team ou Enterprise +* Si vous avez un plan Pro, Max, Team ou Enterprise et voyez ceci, exécutez `/status` et vérifiez la ligne `API key`. Un `ANTHROPIC_API_KEY` approuvé dans votre environnement achemine les demandes via cette clé au lieu de votre abonnement. Désactivez-le dans le shell actuel et supprimez-le de votre profil de shell, puis relancez `claude`. Exécutez `/login` si vous ne vous êtes pas encore connecté avec votre abonnement. +* Ajoutez des crédits à [platform.claude.com/settings/billing](https://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 [Manage costs effectively](/docs/fr/costs). +

+ 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. + +```text theme={null} +Could not update your spend limit: +``` + +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 lit `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](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) dans le navigateur à la place +

Erreurs d'authentification

@@ -404,93 +804,142 @@ Not logged in · Please run /login * Exécutez `/login` pour vous authentifier avec votre abonnement Claude ou votre compte Console * Si vous vous attendiez à ce qu'une variable d'environnement vous authentifie, confirmez que `ANTHROPIC_API_KEY` est définie et exportée dans le shell où vous avez lancé `claude` -* Pour l'intégration continue ou l'automatisation où la connexion interactive n'est pas possible, configurez un script [`apiKeyHelper`](/docs/fr/settings#available-settings) qui récupère une clé au démarrage +* Pour l'intégration continue ou l'automatisation où la connexion interactive n'est pas possible, configurez un script [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) qui récupère une clé au démarrage * Consultez [Précédence d'authentification](/docs/fr/authentication#authentication-precedence) pour comprendre quelle credential Claude Code utilise quand plusieurs sont présentes -Si vous êtes invité à vous connecter à plusieurs reprises, consultez [Non connecté ou token expiré](/docs/fr/troubleshoot-install#not-logged-in-or-token-expired) pour les corrections d'horloge système et de Keychain macOS. +Si vous êtes invité à vous connecter à plusieurs reprises, consultez [Non connecté ou token expiré](/docs/fr/troubleshoot-install#not-logged-in-or-token-expired) pour les vérifications de l'horloge système et les étapes de récupération du stockage des credentials macOS.

Impossible de résoudre la méthode d'authentification

-La session a atteint le client API sans aucune credential. Cela apparaît dans les [sessions en arrière-plan](/docs/fr/agent-view), les sessions cloud et les contextes Agent SDK où la vérification de connexion interactive ne s'exécute pas avant la première requête. +La session a atteint le client API sans aucune credential. Les [sessions en arrière-plan](/docs/fr/agent-view) et les sessions cloud affichent ce message quand le worker démarre sans credential. Les exécutions interactives, `-p` et Agent SDK signalent la même condition que [Non connecté](#not-logged-in) et écrivent cette chaîne uniquement dans leur journal de débogage, donc si vous l'avez trouvée là, suivez cette entrée à la place. ```text theme={null} 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 ``` -Avant la v2.1.174, une session en arrière-plan ou cloud assignée à un worker pré-initialisé inactif pouvait échouer de cette façon même quand des credentials valides étaient configurées. Mettez à jour pour récupérer. Sur les versions actuelles, l'erreur signifie qu'aucune credential n'était disponible pour le processus worker. +Sur les versions actuelles, l'erreur signifie qu'aucune credential n'était disponible pour le processus worker. Avant v2.1.174, une session en arrière-plan assignée à un worker pré-initialisé inactif pouvait échouer de cette façon même quand des credentials valides étaient configurées. Avant v2.1.176, une session cloud qui restait inactive avant d'être réclamée pouvait aussi. Mettez à jour pour récupérer. **À faire :** -* Mettez à jour vers la v2.1.174 ou ultérieure si cela apparaît dans une session en arrière-plan ou cloud et que vos credentials sont déjà configurées +* Mettez à jour vers v2.1.176 ou ultérieur si cela apparaît dans une session en arrière-plan ou cloud et que vos credentials sont déjà configurées * Confirmez que `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN` ou vos credentials du fournisseur cloud sont définis dans l'environnement qui lance le worker, pas seulement dans votre shell interactif -* Pour l'Agent SDK, consultez [configuration de l'authentification](/docs/fr/agent-sdk/overview#get-started) +* Pour l'Agent SDK, consultez [configuration de l'authentification dans le guide de démarrage](/docs/fr/agent-sdk/quickstart#setup) * Exécutez `/status` dans une session interactive dans le même environnement pour confirmer quelle source de credential se résout

Clé API invalide

-La variable d'environnement `ANTHROPIC_API_KEY` ou le script `apiKeyHelper` a retourné une clé que l'API a rejetée. +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é de `ANTHROPIC_API_KEY` avant de l'envoyer. ```text theme={null} Invalid API key · Fix external API key ``` +Quand le message continue 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 invalide](#invalid-request-header-value) pour savoir comment lire la description et corriger la valeur. + **À faire :** * Vérifiez les fautes de frappe et confirmez que la clé n'a pas été révoquée dans la [Console](https://platform.claude.com/settings/keys) -* Exécutez `env | grep ANTHROPIC` dans le même shell. Des outils comme direnv, les plugins shell dotenv et les terminaux IDE peuvent charger une clé obsolète à partir d'un fichier `.env` dans votre projet sans que vous la définissiez explicitement. +* Dans le même shell, exécutez `env | grep ANTHROPIC`, ou dans PowerShell `Get-ChildItem Env:ANTHROPIC*`. Des outils comme direnv, les plugins dotenv shell et les terminaux IDE peuvent charger une clé obsolète à partir d'un fichier `.env` dans votre projet sans que vous la définissiez explicitement. * Déconfigurez `ANTHROPIC_API_KEY` et exécutez `/login` pour utiliser l'authentification par abonnement à la place -* Si la clé provient d'un script [`apiKeyHelper`](/docs/fr/settings#available-settings), exécutez le script directement pour confirmer qu'il imprime une clé valide sur stdout +* Si la clé provient d'un script [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper), exécutez le script directement pour confirmer qu'il imprime une clé valide sur stdout * Exécutez `/status` pour confirmer quelle source de credential Claude Code utilise réellement

Votre script apiKeyHelper échoue

-La commande configurée dans le paramètre [`apiKeyHelper`](/docs/fr/settings#available-settings) s'est terminée avec une erreur, a expiré ou n'a rien imprimé sur stdout. Sans une clé du script, la requête atteint l'API avec une credential d'espace réservé, et l'API la rejette avec `401`. +Claude Code a exécuté la commande dans votre paramètre [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) et n'a pas obtenu de clé en retour. Sans une, la requête atteint l'API avec une credential d'espace réservé, et l'API la rejette avec `401`. Le panneau `Authentication` dans le terminal affiche lequel de ces événements s'est produit : + +* La commande s'est terminée avec une erreur ou a expiré +* La commande n'a rien imprimé sur stdout +* La commande a imprimé quelque chose d'autre que la clé, comme une bannière de connexion ou une ligne de journal. Le panneau affiche `returned output that cannot be used as an API key` et indique ce qui ne va pas, sans répéter la sortie. Avant v2.1.227, Claude Code envoyait tout ce que la commande imprimait, après suppression des espaces blancs environnants. ```text theme={null} 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 ``` -Claude Code réexécute le script et réessaie la requête jusqu'à deux fois de plus avant d'afficher ce message, donc l'échec apparaît dans trois tentatives. Avant la v2.1.208, Claude Code dépensait le [budget de retry](#automatic-retries) complet en renvoyant la requête avec la credential d'espace réservé et signalait ensuite une erreur d'authentification générique `401` au lieu de l'échec du script. +En [mode non-interactif](/docs/fr/headless), stderr porte également la raison spécifique, préfixée par `apiKeyHelper failed:`. + +Claude Code réexécute le script et réessaie la requête jusqu'à deux fois de plus avant d'afficher ce message, donc l'échec apparaît dans les trois tentatives. Avant v2.1.208, Claude Code dépensait le [budget de retry](#automatic-retries) complet en renvoyant la requête avec la credential d'espace réservé, puis signalait une erreur d'authentification générique `401` au lieu de l'échec du script. -Exécuter `/login` n'aide pas ici : la sortie du helper [prend la priorité](/docs/fr/authentication#authentication-precedence) sur une connexion enregistrée tant que le paramètre est présent. +L'exécution de `/login` n'aide pas ici : la sortie du helper [prend la priorité](/docs/fr/authentication#authentication-precedence) sur une connexion enregistrée tant que le paramètre est présent. **À faire :** * Exécutez la commande configurée dans `apiKeyHelper` directement dans votre shell pour reproduire l'échec -* Si la commande signale une session expirée, réauthentifiez-vous auprès de votre fournisseur de credential, par exemple en vous reconnectant à votre SSO ou à votre coffre-fort de secrets -* Corrigez la commande pour qu'elle imprime la clé sur stdout et se termine avec le code 0. Consultez [rotation des credentials avec apiKeyHelper](/docs/fr/llm-gateway-connect#rotate-credentials-with-apikeyhelper) pour une configuration fonctionnelle. -* Exécutez `/status` pour confirmer que `apiKeyHelper` est la source de credential active. Chaque fois que la commande échoue, son code de sortie et sa sortie d'erreur apparaissent dans un panneau `Cloud authentication` dans le terminal. +* Si la commande signale une session expirée, réauthentifiez-vous auprès de votre fournisseur de credentials, par exemple en vous reconnectant à votre SSO ou à votre coffre-fort de secrets +* Corrigez la commande pour qu'elle imprime uniquement la clé sur stdout, en tant que jeton unique d'ASCII imprimable jusqu'à 16 384 caractères, et se termine avec le code 0. Consultez [rotation des credentials avec apiKeyHelper](/docs/fr/llm-gateway-connect#rotate-credentials-with-apikeyhelper) pour une configuration fonctionnelle. +* Exécutez `/status` pour voir l'échec et confirmez que `apiKeyHelper` est la source de credential active. La ligne `apiKeyHelper` affiche `Failing` avec 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 v2.1.274, `/status` affichait uniquement la source de credential, pas l'échec. +* Chaque fois que la commande échoue, son code de sortie et sa sortie d'erreur apparaissent également dans un panneau `Authentication` dans le terminal. Avant v2.1.212, le panneau était intitulé `Cloud authentication`. + +

+ Valeur d'en-tête de requête invalide +

+ +Une valeur que Claude Code s'apprêtait à envoyer en tant qu'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-dessus de `U+00FF`, comme un guillemet courbe ou un espace de largeur zéro. Claude Code arrête la requête avant que quoi que ce soit ne soit envoyé et nomme la variable ou le paramètre à corriger. La cause habituelle est une credential collée à partir d'un document ou d'une conversation qui portait un caractère invisible ou un saut de ligne égaré. + +Claude Code exécute cette vérification quand il envoie des requêtes à l'API Claude directement ou via une [passerelle LLM](/docs/fr/llm-gateway). Sur un fournisseur cloud tiers comme [Amazon Bedrock](/docs/fr/amazon-bedrock), Claude Code ne l'exécute pas avant d'envoyer. + +```text theme={null} +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 mauvaise valeur : + +* `Invalid auth token` : un jeton bearer de [`ANTHROPIC_AUTH_TOKEN`](/docs/fr/env-vars) ou [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/fr/env-vars) +* `Invalid ANTHROPIC_CUSTOM_HEADERS` : un nom ou une valeur d'en-tête que vous avez défini dans [`ANTHROPIC_CUSTOM_HEADERS`](/docs/fr/env-vars). La description compte quelle paire `Name: Value` est en faute, comme `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`, sans répéter le nom ou 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 à partir d'une autre variable d'environnement, comme `CLAUDE_AGENT_SDK_CLIENT_APP`. La description nomme la variable à corriger. + +Claude Code signale une mauvaise `ANTHROPIC_API_KEY` capturée par cette vérification comme [Clé API invalide](#invalid-api-key), avec la même description de fin. Il signale une mauvaise credential `/login` enregistrée comme [Non connecté](#not-logged-in) à la place ; exécutez `/login` pour en enregistrer une nouvelle. La sortie d'un script [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) n'atteint jamais cette vérification : Claude Code la valide quand le script s'exécute, et la sortie qu'un en-tête HTTP ne peut pas transporter échoue avec [Votre script apiKeyHelper échoue](#your-apikeyhelper-script-is-failing). + +Après le deuxième `·`, le message décrit le problème, comme dans cet exemple complet : + +```text theme={null} +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 en commençant par un. La description est construite à partir de phrases fixes et de comptages de caractères, donc elle n'inclut jamais la valeur elle-même. Elle nomme le caractère offensant uniquement quand il s'agit d'un caractère invisible ou typographique bien connu, comme une marque d'ordre des octets, un espace de largeur zéro ou un guillemet courbe, et signale tout le reste comme `a non-ASCII character`. + +**À faire :** + +* Redéfinissez la variable ou le paramètre que le message nomme, en retapant les caractères autour de la position signalée plutôt que de coller à partir de la même source +* Pour `ANTHROPIC_CUSTOM_HEADERS`, conservez une paire `Name: Value` par ligne et réécrivez la paire que le message compte +* Exécutez `/status` pour confirmer quelle source de credential est active

Cette organisation a été désactivée

-Une `ANTHROPIC_API_KEY` obsolète d'une organisation Console désactivée remplace votre connexion par abonnement. +Claude Code utilise une `ANTHROPIC_API_KEY` obsolète d'une organisation Console désactivée. Quand vous avez une connexion d'abonnement enregistrée, la clé la remplace. ```text theme={null} -Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your other credentials +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. ``` -Les variables d'environnement ont la priorité sur `/login`, donc une clé exportée dans votre profil shell ou chargée à partir d'un fichier `.env` est utilisée même quand vous avez un abonnement Pro ou Max fonctionnant. En mode non-interactif (`-p`), la clé est toujours utilisée quand elle est présente. +L'indice après le `·` dépend de vos credentials enregistrées : la première forme apparaît quand une `/login` enregistrée peut prendre le relais après que vous ayez déconfiguré la clé, et la deuxième quand la clé est votre seule credential. + +Les variables d'environnement prennent la priorité sur `/login`, donc une clé exportée dans votre profil shell ou chargée à partir d'un fichier `.env` est utilisée même quand vous avez un abonnement Pro ou Max fonctionnant. En mode non-interactif (`-p`), la clé est toujours utilisée quand elle est présente. **À faire :** * Déconfigurez `ANTHROPIC_API_KEY` dans le shell actuel et supprimez-la de votre profil shell, puis relancez `claude` +* Si le message dit `Update or unset`, vous n'avez pas de connexion enregistrée sur laquelle vous rabattre. Déconfigurez la clé et exécutez `/login`, ou remplacez la clé par une d'une organisation Console active. * Exécutez `/status` après pour confirmer que la credential active est votre abonnement -* Si aucune variable d'environnement n'est définie et que l'erreur persiste, l'organisation désactivée est celle liée à votre `/login`. Contactez le support ou connectez-vous avec un compte différent. +* Si aucune variable d'environnement n'est définie et l'erreur persiste, l'organisation désactivée est celle liée à votre `/login`. Contactez le support ou connectez-vous avec un compte différent.

Votre organisation a désactivé l'authentification par clé API

-Ce message nécessite Claude Code v2.1.169 ou ultérieur. L'administrateur de votre organisation Console a désactivé l'authentification par clé API, donc l'API rejette la clé que Claude Code envoie. L'indice de récupération après le `·` varie selon d'où provient la clé : +Ce message nécessite Claude Code v2.1.169 ou ultérieur. L'administrateur de votre organisation Console a désactivé l'authentification par clé API, donc l'API rejette la clé que Claude Code envoie. L'indice de récupération après le `·` varie selon la provenance de la clé : ```text theme={null} Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account @@ -499,21 +948,21 @@ Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account ``` -Les variables d'environnement et `apiKeyHelper` ont la priorité sur `/login`, donc exécuter `/login` seul n'aide pas tant que l'un ou l'autre fournit toujours une clé. Consultez [Précédence d'authentification](/docs/fr/authentication#authentication-precedence). +Les variables d'environnement et `apiKeyHelper` prennent la priorité sur `/login`, donc exécuter `/login` seul n'aide pas tant que l'un ou l'autre fournit toujours une clé. Consultez [Précédence d'authentification](/docs/fr/authentication#authentication-precedence). **À faire :** * Si le message nomme `ANTHROPIC_API_KEY`, déconfigurez-la dans le shell actuel et supprimez-la de votre profil shell ou fichier `.env`, puis relancez `claude` -* Si le message nomme `apiKeyHelper`, supprimez le paramètre [`apiKeyHelper`](/docs/fr/settings#available-settings) de votre `settings.json` +* Si le message nomme `apiKeyHelper`, supprimez le paramètre [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) de votre `settings.json` * Exécutez `/login` pour vous connecter avec votre compte claude.ai * Exécutez `/status` après pour confirmer que la credential active est votre abonnement plutôt qu'une clé API -* Si vous avez besoin de l'authentification par clé API pour l'automatisation, demandez à votre administrateur d'organisation de la réactiver dans la Console +* 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 à l'abonnement Claude

-Votre organisation Claude ne permet pas de se connecter à Claude Code avec une connexion par abonnement. Exécuter `/login` à nouveau avec le même compte retourne la même erreur. +Votre organisation Claude ne permet pas de se connecter à Claude Code avec une connexion d'abonnement. L'exécution de `/login` à nouveau avec le même compte retourne la même erreur. ```text theme={null} Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access @@ -527,13 +976,13 @@ L'Agent SDK et le mode non-interactif `-p` présentent cela comme le code d'erre * Demandez à votre administrateur d'activer l'accès à Claude Code pour votre organisation * Authentifiez-vous avec une clé API Console au lieu de votre abonnement. Consultez [Authentification Claude Console](/docs/fr/authentication#claude-console-authentication) pour la configuration. -* Si vous êtes l'administrateur et que vous ne voyez pas d'option pour activer l'accès, contactez le [support Anthropic](https://support.claude.com) +* Si vous êtes l'administrateur et ne voyez pas d'option pour activer l'accès, contactez le [support Anthropic](https://support.claude.com)

Les routines sont désactivées par la politique de votre organisation

-Un propriétaire de votre organisation Team ou Enterprise a désactivé les routines au niveau de l'organisation. L'erreur apparaît quand vous essayez de créer ou d'exécuter une routine, y compris à partir de `/schedule` et de l'interface utilisateur [Routines](/docs/fr/routines) sur claude.ai/code. +Un propriétaire de votre organisation Team ou Enterprise a désactivé les routines au niveau de l'organisation. L'erreur apparaît quand vous essayez de créer ou d'exécuter une routine, par exemple à partir de l'interface utilisateur [Routines](/docs/fr/routines) sur claude.ai/code. Sur Claude Code v2.1.227 ou ultérieur, le même paramètre [masque également `/schedule`](/docs/fr/routines#troubleshooting) dans le CLI. ```text theme={null} Routines are disabled by your organization's policy. @@ -544,7 +993,7 @@ C'est un paramètre côté serveur, donc il ne peut pas être remplacé à parti **À faire :** * Demandez à un propriétaire de votre organisation d'activer le bouton bascule **Routines** sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) -* Pour un travail programmé ponctuel qui ne nécessite pas de routines au niveau de l'organisation, consultez [tâches programmées](/docs/fr/scheduled-tasks) +* Pour un travail ponctuel programmé qui ne nécessite pas de routines au niveau de l'organisation, consultez [tâches programmées](/docs/fr/scheduled-tasks)

Remote Control nécessite l'API Anthropic @@ -553,842 +1002,3795 @@ C'est un paramètre côté serveur, donc il ne peut pas être remplacé à parti La session ne parle pas directement à l'API Anthropic, donc il n'y a pas de backend claude.ai pour que [Remote Control](/docs/fr/remote-control) s'apparie avec. ```text theme={null} -Remote Control is only available when using Claude via api.anthropic.com. +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. ``` -Cela apparaît sur Amazon Bedrock, la plateforme Agent de Google Cloud et Microsoft Foundry. À partir de la v2.1.196, cela apparaît également quand [`ANTHROPIC_BASE_URL`](/docs/fr/env-vars) pointe vers un hôte autre que `api.anthropic.com`, comme une [passerelle LLM](/docs/fr/llm-gateway) ou un proxy, même quand vous vous connectez avec claude.ai. +Une deuxième phrase explique ce qui a acheminé la session loin de l'API Anthropic ; avant v2.1.219, le message était la première phrase seule. Selon la cause, le message nomme : + +* Une variable de fournisseur `CLAUDE_CODE_USE_*`, comme `CLAUDE_CODE_USE_BEDROCK` pour [Amazon Bedrock](/docs/fr/amazon-bedrock) ou `CLAUDE_CODE_USE_VERTEX` pour [Agent Platform de Google Cloud](/docs/fr/google-vertex-ai) +* [`ANTHROPIC_BASE_URL`](/docs/fr/env-vars) pointant vers un hôte autre que `api.anthropic.com`, comme une [passerelle LLM](/docs/fr/llm-gateway) ou un proxy, même quand vous vous connectez avec claude.ai ; avant v2.1.196, une URL de base personnalisée ne bloquait pas Remote Control +* `ANTHROPIC_UNIX_SOCKET` défini, donc la session envoie ses requêtes via un socket local plutôt qu'à `api.anthropic.com` +* Une connexion [passerelle cloud](/docs/fr/claude-apps-gateway) d'entreprise effectuée via `/login`, qui ne supporte pas Remote Control et n'a pas de variable à déconfigurez **À faire :** -* Déconfigurez `ANTHROPIC_BASE_URL` et redémarrez la session, ou démarrez Remote Control à partir d'une session qui parle directement à l'API Anthropic +* Déconfigurez la variable que le message nomme, comme `CLAUDE_CODE_USE_BEDROCK` ou `ANTHROPIC_BASE_URL`, et redémarrez la session, ou démarrez Remote Control à partir d'une session qui parle directement à l'API Anthropic +* Si la variable n'est pas définie dans votre shell, vérifiez la clé `env` dans vos [fichiers de paramètres](/docs/fr/settings#where-settings-live), qui applique les variables d'environnement à chaque session * Pour ce message et les autres messages de démarrage de Remote Control, consultez [Dépannage de Remote Control](/docs/fr/remote-control#troubleshooting) -

- Token OAuth révoqué ou expiré +

+ Remote Control n'a pas pu rafraîchir votre connexion

-Votre connexion enregistrée n'est plus valide. Un token révoqué signifie que vous vous êtes déconnecté partout ou qu'un administrateur a supprimé l'accès ; un token expiré signifie que l'actualisation automatique a échoué en cours de session. +Claude Code exécute une connexion [Remote Control](/docs/fr/remote-control) en direct sur des credentials de courte durée qu'il obtient et renouvelle en utilisant votre connexion claude.ai enregistrée. Quand claude.ai arrête 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'une ou l'autre défaillance peut se produire pendant que Claude Code se connecte toujours ou plus tard, quand il renouvelle les credentials. + +Quand Claude Code demande au service de connexion de rafraîchir votre connexion enregistrée et n'obtient pas de réponse, il garde Remote Control en cours d'exécution et réessaie le rafraîchissement pendant que la credential actuelle de la connexion est toujours valide. Un rafraîchissement n'obtient pas de réponse quand Claude Code ne peut pas atteindre le service de connexion, la requête expire, ou le service échoue sans rejeter votre connexion. Si le service de connexion ne répond toujours pas quand cette credential expire, Claude Code arrête Remote Control et signale `OAuth token refresh failed`. -Les deux messages signalent un rejet que l'API a retourné pour une requête que Claude Code a envoyée. Quand la connexion enregistrée a déjà été effacée après un échec d'actualisation, vous voyez [Connexion expirée](#login-expired) à la place. +Quand Claude Code arrête Remote Control, il affiche la raison dans un avertissement et dans une ligne de transcription qui commence par `Remote Control disconnected`. Votre session locale continue de s'exécuter sans Remote Control. Cette section couvre ces lignes : ```text theme={null} -OAuth token revoked · Please run /login -OAuth token has expired · Please run /login -API Error: 401 ... authentication_error +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 expired` et `Claude.ai login was rejected` : claude.ai n'accepte plus votre jeton de connexion enregistré, car il a expiré ou a été révoqué +* ` OAuth token unavailable` : Claude Code n'avait pas de jeton de connexion enregistré quand la credential de la connexion était due pour le renouvellement +* `OAuth token refresh failed` : claude.ai a rejeté votre jeton de connexion enregistré pendant que Claude Code se reconnectait, et le rafraîchissement du jeton n'en a produit aucun nouveau +* `JWT refresh failed: no OAuth token` : Claude Code n'a trouvé aucun jeton de connexion enregistré pour renouveler avec +* ` Signed out of Claude` : vous vous êtes déconnecté sur cette machine, par exemple en exécutant `/logout` dans un autre terminal, donc Claude Code n'a pas de connexion enregistrée pour renouveler la connexion avec + **À faire :** * Exécutez `/login` pour vous reconnecter -* Si l'erreur revient dans la même session après réauthentification, exécutez d'abord `/logout` pour effacer complètement le token stocké, puis `/login` -* Pour les invites répétées à vous connecter entre les lancements, consultez les vérifications d'horloge système et de Keychain macOS dans [Dépannage](/docs/fr/troubleshoot-install#not-logged-in-or-token-expired) -* Pour les autres défaillances incluant `403 Forbidden` et les problèmes de navigateur OAuth, consultez [Connexion et authentification](/docs/fr/troubleshoot-install#login-and-authentication) +* Exécutez `/remote-control` pour reconnecter la session. Les messages se terminant par `run /login to restore Remote Control` n'ont pas besoin de cette étape : Claude Code se reconnecte automatiquement une fois que vous vous êtes connecté. -

- Connexion expirée -

+Avant v2.1.224, `OAuth token refresh failed — run /login to re-authenticate` lisait `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`, et `JWT refresh failed: no OAuth token — run /login` lisait `no OAuth token available for recovery (code )`. Les messages `Claude.ai login expired`, `Claude.ai login was rejected` et `OAuth token unavailable` ont été ajoutés dans v2.1.225. -Claude Code a essayé de renouveler votre connexion claude.ai ou Claude Console enregistrée et le service OAuth a rejeté le token d'actualisation stocké, donc Claude Code a effacé les credentials enregistrées. Après cela, chaque requête s'arrête localement avant d'atteindre l'API, car seul `/login` peut créer de nouvelles credentials. Avant la v2.1.206, Claude Code envoyait la requête de toute façon avec quelle que soit la credential restante dans l'environnement, et chaque modèle échouait ensuite avec [Il y a un problème avec le modèle sélectionné](#theres-an-issue-with-the-selected-model) ou un 401 au lieu d'une invite à se connecter. +Avant v2.1.238, Claude Code signalait les cas qui disent maintenant `Signed out of Claude` comme `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'un rafraîchissement de connexion n'obtenait pas de réponse. -```text theme={null} -Login expired · Please run /login -``` +

+ Remote Control s'est arrêté car le compte connecté a changé +

-En [mode non-interactif](/docs/fr/headless) (`-p`) et l'[Agent SDK](/docs/fr/agent-sdk/overview), le message se lit comme suit, et le code d'erreur structuré est `authentication_failed` : +Claude Code affiche cette ligne pendant une session [Remote Control](/docs/fr/remote-control) quand vous vous connectez à un compte ou une organisation claude.ai différent sur cette machine. Vous avez effectué le 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 alors que vous étiez connecté via `/login` appartient au compte et à l'organisation claude.ai qui étaient connectés à ce moment-là. ```text theme={null} -Failed to authenticate: OAuth session expired and could not be refreshed +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 ``` -Ce n'est pas le même état que [Token OAuth révoqué ou expiré](#oauth-token-revoked-or-expired). Ces messages signalent un 401 que l'API a retourné. Claude Code lui-même produit `Login expired` pour une connexion qu'il a déjà échoué à renouveler, donc il n'envoie aucune requête. - -Les sessions authentifiées avec une clé API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/fr/env-vars) ou un fournisseur tiers n'utilisent pas la connexion enregistrée et ne voient jamais ce message. +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 s'exécuter sans Remote Control. **À faire :** -* Exécutez `/login` pour vous reconnecter. Réessayer sans vous connecter affiche le même message à chaque requête. -* En mode non-interactif, exécutez `claude` dans le même environnement, complétez `/login`, puis réexécutez votre commande. Pour l'automatisation qui ne peut pas se connecter de manière interactive, authentifiez-vous avec `ANTHROPIC_API_KEY` ou [générez un token de longue durée avec `claude setup-token`](/docs/fr/authentication#generate-a-long-lived-token). -* Si la connexion continue d'échouer, consultez [Connexion et authentification](/docs/fr/troubleshoot-install#login-and-authentication) +* Exécutez `/remote-control` pour démarrer une nouvelle session Remote Control sous le compte ou l'organisation actuel +* Pour revenir en arrière, exécutez `/login` et reconnectez-vous au compte ou à l'organisation précédent. Puis exécutez `/remote-control`. -

- Exigence de portée OAuth +Avant v2.1.234, Claude Code ne remarquait pas quand vous basculiez vers un compte ou une organisation différent en dehors de la session Claude Code. Claude Code gardait 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é car l'application exécutant la session s'est déconnectée ou a changé de compte

-Le token stocké est antérieur à une portée de permission qu'une fonctionnalité plus récente nécessite. Vous voyez cela le plus souvent à partir de `/usage` et de l'indicateur d'utilisation de la ligne d'état : +Quand l'application de bureau Claude ou un IDE héberge votre session, Claude Code obtient son jeton de connexion de cette application plutôt que de `/login`. Quand claude.ai rejette ce jeton, Claude Code demande à l'application un nouveau. Si l'application répond qu'elle est déconnectée, ou qu'elle est maintenant connectée à un compte Claude différent, Claude Code termine la session [Remote Control](/docs/fr/remote-control) et envoie à l'application l'une de ces lignes : ```text theme={null} -OAuth token does not meet scope requirement: user:profile +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 s'exécuter sans Remote Control. + **À faire :** -* Exécutez `/login` pour obtenir un nouveau token avec les portées actuelles. Vous n'avez pas besoin de vous déconnecter d'abord. +* Si l'application est déconnectée, reconnectez-vous à celle-ci, puis réactivez Remote Control dans l'application +* Si l'application a changé de compte, Claude Code ne peut pas continuer la session terminée sous le nouveau compte. Démarrez une nouvelle session Remote Control sous ce compte. -

- Les credentials AWS ont expiré ou sont invalides +Avant v2.1.238, Claude Code envoyait à l'application les messages `/login` listés sous [Remote Control n'a pas pu rafraîchir votre connexion](#remote-control-couldnt-refresh-your-login) dans les deux cas. + +

+ Jeton OAuth révoqué ou expiré

-Ce message nécessite Claude Code v2.1.198 ou ultérieur et n'apparaît que quand [`awsAuthRefresh`](/docs/fr/amazon-bedrock#advanced-credential-configuration) est défini dans votre fichier de paramètres. Votre token de session AWS a expiré ou a été rejeté, et l'actualisation automatique que Claude Code a déjà exécutée n'a pas produit une credential que l'API accepte. Cela apparaît sur un 401 de [Claude Platform on AWS](/docs/fr/claude-platform-on-aws) ou du [point de terminaison Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint), c'est ainsi que ces fournisseurs signalent un token de sécurité 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 supprimé l'accès ; un jeton expiré signifie que le rafraîchissement automatique a échoué en cours de session. -L'indice d'action au milieu nomme la commande `awsAuthRefresh` de vos paramètres, donc il varie. La partie stable est le début `AWS credentials expired or invalid` : +Les deux messages signalent un rejet que l'API a retourné pour une requête que Claude Code a envoyée. Quand la connexion enregistrée a déjà été effacée après un rafraîchissement échoué, vous voyez [Connexion expirée](#login-expired) à la place. Si vous vous authentifiez avec un jeton de longue durée dans [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/fr/env-vars), vous voyez les mêmes messages quand ce jeton expire ou est révoqué. ```text theme={null} -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 ... +OAuth token revoked · Please run /login +Please run /login · API Error: 401 OAuth token has expired ... ``` -Sans `awsAuthRefresh` configuré, le même 401 affiche le message générique `Please run /login` à la place, qui ne peut pas actualiser les credentials AWS. - **À faire :** -* Exécutez la commande `awsAuthRefresh` nommée dans le message, comme `aws sso login --profile myprofile`, dans un autre terminal et complétez la connexion au navigateur, puis réessayez -* Dans une session interactive, exécutez `/login`, choisissez **plateforme tierce**, puis sélectionnez **Claude Platform on AWS · refresh credentials** sous **Utilisation de plateformes tierces** pour exécuter la même commande sans redémarrer Claude Code. Consultez [Configurer les credentials AWS](/docs/fr/claude-platform-on-aws#1-configure-aws-credentials) -* Si l'erreur se répète après que la commande d'actualisation réussisse, confirmez que l'identité est valide en dehors de Claude Code avec `aws sts get-caller-identity` dans le même shell et profil +* Exécutez `/login` pour vous reconnecter +* Si l'erreur revient dans la même session après réauthentification, exécutez d'abord `/logout` pour effacer complètement le jeton enregistré, puis `/login` +* 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 un 401, plutôt que de basculer vers le jeton d'une connexion enregistrée. [`/status`](/docs/fr/commands) affiche cette credential comme une ligne `Auth token` lisant `CLAUDE_CODE_OAUTH_TOKEN`. Générez un jeton frais avec [`claude setup-token`](/docs/fr/authentication#generate-a-long-lived-token) et redémarrez avec, ou déconfigurez la variable et exécutez `/login`. Avant 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 les invites répétées de connexion entre les lancements, consultez les vérifications de l'horloge système et les étapes de récupération du stockage des credentials macOS dans [Dépannage](/docs/fr/troubleshoot-install#not-logged-in-or-token-expired) +* Pour les autres défaillances incluant `403 Forbidden` et les problèmes du navigateur OAuth, consultez [Connexion et authentification](/docs/fr/troubleshoot-install#login-and-authentication) -

- L'authentification AWS a échoué +

+ Erreur API : 401 Credentials d'authentification invalides

-Ce message nécessite Claude Code v2.1.198 ou ultérieur et n'apparaît que quand [`awsAuthRefresh`](/docs/fr/amazon-bedrock#advanced-credential-configuration) est défini dans votre fichier de paramètres. Votre fournisseur AWS a retourné un 403, ou [Amazon Bedrock](/docs/fr/amazon-bedrock) a retourné un 401. - -Claude Code ne peut pas dire quelle cause vous avez atteinte. Amazon Bedrock signale un token de sécurité expiré comme un 403, mais un 403 est aussi comment il signale un refus d'autorisation, comme une `AccessDeniedException` d'une permission IAM manquante ou d'un modèle qui n'est pas activé pour votre compte. - -Un 401 d'Amazon Bedrock atterrit également ici plutôt que sous [Les credentials AWS ont expiré ou sont invalides](#aws-credentials-expired-or-invalid), car Amazon Bedrock ne signale pas un token expiré comme un 401. Un 401 de ce point de terminaison provient généralement de quelque chose d'autre dans le chemin de la requête, comme un proxy d'entreprise. - -Une actualisation de credential corrige un token expiré et ne peut pas corriger les autres causes, donc le message offre les deux : +L'API a reconnu le format de votre credential mais a rejeté le compte ou l'organisation derrière. Anthropic retourne ce message quand une credential a été récemment révoquée, quand une organisation a été désactivée ou a supprimé votre accès, ou quand le compte lui-même a été désactivé, donc un jeton expiré n'est pas la cause. La credential peut être votre connexion enregistrée ou une `ANTHROPIC_API_KEY` approuvée, et la correction diffère, donc commencez par exécuter `/status` pour voir laquelle est active. ```text theme={null} -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 ... +Please run /login · API Error: 401 Invalid authentication credentials ``` -L'indice d'action au milieu nomme la commande `awsAuthRefresh` de vos paramètres, donc il varie. La partie stable est le début `AWS authentication failed`. - **À faire :** -* Exécutez la commande `awsAuthRefresh` nommée dans le message, ou `aws sso login`, au cas où une credential expirée serait la cause -* Si vos credentials sont actuelles, confirmez que les permissions IAM dans [Configuration IAM](/docs/fr/amazon-bedrock#iam-configuration) sont attachées à l'identité que vous utilisez et que le modèle sélectionné est activé pour votre compte et région -* Exécutez `aws sts get-caller-identity` pour confirmer quelle identité vos requêtes utilisent ; un `AWS_PROFILE` obsolète ou un profil par défaut est une cause courante d'une incompatibilité de permission +* Si `/status` affiche une ligne `API key` qui n'est pas marquée comme non utilisée, une [`ANTHROPIC_API_KEY`](/docs/fr/authentication#authentication-precedence) approuvée est la credential active et prend la priorité sur votre connexion, donc `/login` ne la remplace pas. Faites tourner la clé dans la Console Claude, ou revenez à votre abonnement en exécutant `unset ANTHROPIC_API_KEY`, ou dans PowerShell `Remove-Item Env:ANTHROPIC_API_KEY`. +* Si `/status` affiche uniquement votre connexion, exécutez `/login` une fois. Si la credential a été révoquée, une connexion fraîche la 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 `/status` signale, et demandez à l'administrateur de votre organisation de restaurer l'accès. +* Si [`ANTHROPIC_BASE_URL`](/docs/fr/env-vars) pointe vers une [passerelle LLM](/docs/fr/llm-gateway), le texte après `401` est le message de votre passerelle plutôt que celui d'Anthropic, et `/login` ne le change pas. Corrigez plutôt la credential que votre passerelle attend. -

- Le délai d'expiration de la résolution des credentials de la chaîne par défaut AWS a expiré +

+ Connexion expirée

-Le fournisseur de credentials de la chaîne par défaut AWS n'a pas produit de credentials dans les 60 secondes, donc Claude Code a arrêté la résolution et a échoué la requête. L'échec est une résolution de credentials locale : la requête n'a jamais atteint [Amazon Bedrock](/docs/fr/amazon-bedrock), [Claude Platform on AWS](/docs/fr/claude-platform-on-aws) ou le [point de terminaison Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint). Claude Code efface son [cache de credentials](/docs/fr/amazon-bedrock#credential-caching-and-resolution-timeout) et réessaie avant que cette erreur ne fasse surface, donc au moment où vous la voyez, la chaîne s'est bloquée sur des tentatives répétées. +Claude Code a essayé de renouveler votre connexion claude.ai ou Claude Console enregistrée et le service OAuth a rejeté le jeton d'actualisation enregistré, donc Claude Code a effacé les credentials enregistrées. Après cela, chaque requête de modèle s'arrête localement avec ce message avant d'atteindre l'API, car seul `/login` peut créer de nouvelles credentials. + +Avant v2.1.206, Claude Code envoyait quand même la requête de modèle avec quelle que soit la credential restante dans l'environnement, et chaque modèle échouait alors avec [Il y a un problème avec le modèle sélectionné](#theres-an-issue-with-the-selected-model) ou un 401 au lieu d'une invite de connexion. + +```text theme={null} +Login expired · Please run /login +``` + +En [mode non-interactif](/docs/fr/headless) (`-p`) et l'[Agent SDK](/docs/fr/agent-sdk/overview), le message se lit comme suit, et le code d'erreur structuré est `authentication_failed` : ```text theme={null} -API Error: AWS default-chain credential resolve timed out +Failed to authenticate: OAuth session expired and could not be refreshed ``` -Les causes courantes sont une commande `credential_process` dans votre profil AWS qui attend une entrée 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.207, une chaîne bloquée laissait la requête en attente indéfiniment au lieu d'échouer avec ce message. +Ce n'est pas le même état que [Jeton OAuth révoqué ou expiré](#oauth-token-revoked-or-expired). Ces messages signalent un rejet que l'API a retourné. Claude Code lui-même produit `Login expired` pour une connexion qu'il a déjà échoué à renouveler, donc il n'envoie pas de requête. Quand le renouvellement échoue parce que le compte lui-même est suspendu plutôt que la connexion étant obsolète, Claude Code affiche [Votre compte est en attente](#your-account-is-on-hold) à la place. -**À faire :** +Les sessions authentifiées avec une clé API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/fr/env-vars) ou un fournisseur tiers n'utilisent pas la connexion enregistrée et ne voient jamais ce message. -* Exécutez `aws sts get-caller-identity` dans le même shell avec le même `AWS_PROFILE`. S'il se bloque également, corrigez le profil ; une commande `credential_process` qui demande de manière interactive est une cause courante. -* Complétez l'étape de connexion avant de démarrer Claude Code, par exemple `aws sso login --profile myprofile`, pour que la chaîne se résolve à partir du cache SSO local au lieu d'attendre un flux de navigateur -* Si votre chaîne exécute une connexion interactive qui a légitimement besoin de plus de 60 secondes, comme SSO avec MFA via un wrapper comme `aws-vault`, augmentez la limite en millisecondes avec [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/fr/env-vars) +Vous pouvez vérifier cet état avant l'échec d'une requête : [`/status`](/docs/fr/commands) affiche une ligne `Login` lisant `Expired — log in again`, plus l'organisation et l'e-mail qu'il a enregistrés pour la connexion expirée. La ligne n'apparaît que quand la connexion enregistrée est votre credential active et ne peut plus être rafraîchie. Les sessions authentifiées d'une autre manière n'affichent pas la ligne, même si une connexion expirée reste enregistrée. Avant v2.1.210, `/status` ne donnait aucune indication dans cet état qu'une connexion avait jamais existé, car la credential effacée n'avait rien à signaler. -

- Erreurs de réseau et de connexion -

+**À faire :** -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. Elles proviennent généralement de votre réseau local, d'un proxy, d'un pare-feu, ou de la politique réseau de l'environnement cloud. +* Exécutez `/login` pour vous reconnecter. Réessayer sans vous connecter affiche le même message à chaque requête. +* En mode non-interactif, exécutez `claude` dans le même environnement, complétez `/login`, puis réexécutez votre commande. Pour l'automatisation qui ne peut pas se connecter de manière interactive, authentifiez-vous avec `ANTHROPIC_API_KEY` ou [générez un jeton de longue durée avec `claude setup-token`](/docs/fr/authentication#generate-a-long-lived-token). +* Si la connexion continue d'échouer, consultez [Connexion et authentification](/docs/fr/troubleshoot-install#login-and-authentication) -

- Impossible de se connecter à l'API +

+ Connexion Claude non acceptée

-La connexion TCP à l'API a échoué ou ne s'est jamais complétée. +Vous avez essayé de démarrer une [session cloud](/docs/fr/claude-code-on-the-web), et le serveur a refusé de la créer avec un 401 : il n'a pas accepté la connexion Claude que cette machine a envoyée, généralement parce que la connexion a expiré ou a été révoquée. + +La première partie de la ligne est la propre raison du serveur quand il en donne une. Sinon, la ligne se lit : ```text theme={null} -Unable to connect to API. Check your internet connection -Unable to connect to API (ECONNREFUSED) -Unable to connect to API (ECONNRESET) -Unable to connect to API (ETIMEDOUT) -fetch failed -Request timed out. Check your internet connection and proxy settings +Claude login not accepted · Run /login, then try again ``` -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é. - -**Que faire :** - -* Confirmez que vous pouvez atteindre l'hôte API depuis le même shell en exécutant `curl -I https://api.anthropic.com`. Sur Windows PowerShell, utilisez `curl.exe -I https://api.anthropic.com` pour que l'alias `Invoke-WebRequest` intégré ne soit pas utilisé. -* Si vous êtes derrière un proxy d'entreprise, définissez `HTTPS_PROXY` avant de lancer Claude Code et consultez [Configuration réseau](/docs/fr/network-config) -* Si vous routez via une passerelle LLM ou un relais, définissez [`ANTHROPIC_BASE_URL`](/docs/fr/env-vars) sur son adresse. Consultez [Connecter Claude Code à une passerelle LLM](/docs/fr/llm-gateway-connect) pour la configuration. -* Assurez-vous que votre pare-feu autorise les hôtes listés dans [Exigences d'accès réseau](/docs/fr/network-config#network-access-requirements) -* Les défaillances intermittentes sont [réessayées automatiquement](#automatic-retries) ; les défaillances persistantes indiquent un problème réseau local - -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 : +**À faire :** -* Sur Linux et WSL, vérifiez `/etc/resolv.conf` pour 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 tunnel ou une règle de routage. Vérifiez `ifconfig` pour les interfaces `utun` obsolètes et supprimez l'extension réseau du VPN dans 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é. +* Exécutez `/login`, complétez la connexion, puis démarrez la session à nouveau -

- La réponse de streaming Bedrock a un content-type inattendu +

+ Les artefacts ont besoin d'une connexion claude.ai

-Une passerelle ou un proxy entre Claude Code et [Amazon Bedrock](/docs/fr/amazon-bedrock) transforme le corps de la réponse de streaming ou son en-tête `Content-Type`. Amazon Bedrock diffuse les réponses en tant que `application/vnd.amazon.eventstream`, et Claude Code rejette une réponse de streaming réussie qui signale un content-type différent au lieu de décoder un corps qu'il ne peut pas lire. La requête n'est pas réessayée. +Claude Code a refusé une publication ou une lecture d'[artefact](/docs/fr/artifacts) car la session n'a pas de connexion claude.ai qu'elle peut utiliser pour les artefacts. + +Chaque forme du message commence par les mêmes mots, suivis d'un remède qui dépend de la façon dont votre session s'authentifie. Sans credential concurrente, il se lit : ```text theme={null} -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. +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. ``` -Avant la v2.1.208, la même mauvaise configuration s'affichait sous la forme `API Error: Truncated event message received` après que la réponse entière ait été mise en mémoire tampon. - -**Que faire :** +**À faire :** -* Configurez la passerelle pour transmettre le corps de la réponse `InvokeModelWithResponseStream` et son en-tête `Content-Type` sans modification. Un intermédiaire qui réemet le flux sous forme d'événements envoyés par le serveur est une cause courante. -* Si la passerelle réécrit uniquement l'en-tête et transmet le corps binaire intact, définissez [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/fr/env-vars) pour ignorer la vérification jusqu'à ce que la passerelle soit corrigée. Consultez [Erreurs de streaming derrière une passerelle ou un proxy](/docs/fr/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). +* Exécutez `/login` et sélectionnez **Claude account with subscription**. L'option **Anthropic Console account** ne fournit pas de credentials claude.ai. +* Quand le message nomme une credential qui prend la priorité, comme `ANTHROPIC_API_KEY`, un paramètre `apiKeyHelper` ou une clé Console enregistrée par une `/login` précédente, supprimez-la de la façon que le message dit, puis exécutez `/login` +* Quand le message dit que cette session distante s'authentifie via la machine qui l'a lancée, connectez-vous à claude.ai sur cette machine, puis reconnectez la session +* Quand le message dit que la credential est injectée par l'environnement hôte de la session, vous ne pouvez pas la modifier dans cette session ; démarrez une session qui est connectée à claude.ai +* Consultez [Disponibilité](/docs/fr/artifacts#availability) pour les autres exigences que les artefacts ont, comme le plan, le fournisseur de modèle et la politique d'organisation -

- Erreurs de certificat SSL +

+ La politique de l'administrateur nécessite une connexion à la passerelle Cloud

-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. +Un [paramètre géré](/docs/fr/managed-settings) d'un administrateur sur cette machine a défini [`forceLoginMethod`](/docs/fr/settings-reference#forceloginmethod) à `"gateway"` ou a défini [`forceLoginGatewayUrl`](/docs/fr/settings-reference#forcelogingatewayurl). À moins que vous sélectionniez un fournisseur cloud via une variable comme `CLAUDE_CODE_USE_BEDROCK`, Claude Code n'accepte alors que la connexion [passerelle d'applications Claude](/docs/fr/claude-apps-gateway). Vous voyez l'un de deux messages : ```text theme={null} -Unable to connect to API: SSL certificate verification failed. Check your proxy or corporate SSL certificates -Unable to connect to API: Self-signed certificate detected +Not signed in to the Cloud gateway — run /login. ``` -À 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 retry](#automatic-retries) complet. Les versions antérieures ont passé quelques minutes à réessayer avant de l'afficher. Les conditions TLS transitoires, telles qu'un délai d'expiration de poignée de main, sont toujours réessayées. +Les requêtes de modèle échouent avec ce message quand 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. -Pendant `/login` et la vérification de connectivité au démarrage, la même défaillance est signalée avec le code OpenSSL et le correctif en ligne : +Si vous avez également une credential `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` ou `apiKeyHelper` configurée et que les paramètres gérés définissent `forceLoginMethod`, Claude Code se termine au démarrage à la place avec un message qui commence par : ```text theme={null} -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. +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. ``` -**Que faire :** +**À faire :** -* Exportez le bundle CA de votre organisation et pointez Claude Code dessus avec `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem` -* Consultez [Configuration réseau](/docs/fr/network-config#custom-ca-certificates) 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 +* Exécutez `/login` et complétez la connexion sur l'écran **Cloud gateway** +* Pour le message de démarrage, supprimez le paramètre `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` ou `apiKeyHelper` que vous avez configuré, puis démarrez `claude` et exécutez `/login` +* Si vous pensez que la machine ne devrait pas nécessiter la passerelle, demandez à l'administrateur qui la gère de supprimer `forceLoginMethod` et `forceLoginGatewayUrl` de ses paramètres gérés -

- Hôte non autorisé dans une session cloud +Sur v2.1.265, une régression a également affiché le premier message dans certaines configurations de passerelle LLM et proxy qui s'authentifient avec une clé API, `apiKeyHelper` ou des en-têtes personnalisés, même sans exigence d'administrateur sur la machine. Mettez à jour vers v2.1.266 ou ultérieur. Vous n'avez pas besoin de modifier votre configuration. + +Avant v2.1.261, sur les machines qui définissent `forceLoginMethod` à `"gateway"`, Claude Code utilisait une connexion enregistrée restante au lieu d'échouer les requêtes de modèle, et signalait une credential d'environnement configurée avec `This machine's managed settings require a first-party login` au lieu du message de démarrage. Avant v2.1.265, une machine dont les paramètres gérés définissaient uniquement `forceLoginGatewayUrl` ne nécessitait pas la connexion à la passerelle, et Claude Code utilisait une credential restante là. + +

+ Votre compte est en attente

-Une requête HTTP sortante d'une session cloud ou d'une routine a été bloquée par la politique réseau de l'environnement. +Le compte Claude derrière votre connexion a été suspendu. Claude Code affiche le premier message quand il essaie de renouveler votre connexion enregistrée et apprend de la suspension, et le deuxième quand une connexion que vous complétez dans le navigateur la signale : ```text theme={null} -HTTP 403 -x-deny-reason: host_not_allowed +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 ``` -Vous pouvez également voir un certificat TLS qui ne correspond pas au certificat réel de la destination. L'environnement cloud route 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. - -Ce n'est pas un problème réseau côté client. Les sessions cloud et les [routines](/docs/fr/routines) s'exécutent dans un environnement en sandbox dont le trafic sortant est filtré selon la liste d'autorisation de l'environnement. L'environnement **Default** utilise l'accès **Trusted**, qui autorise la [liste d'autorisation par défaut](/docs/fr/claude-code-on-the-web#default-allowed-domains) des registres de paquets, des API de fournisseurs cloud, des registres de conteneurs et des domaines de développement courants, mais bloque tout le reste. - -**Que faire :** +Se reconnecter avec le même compte n'efface pas le message, car la suspension est sur le compte plutôt que sur la connexion. En [mode non-interactif](/docs/fr/headless) (`-p`) et l'[Agent SDK](/docs/fr/agent-sdk/overview), le code d'erreur structuré est `account_on_hold`. Avant v2.1.235, Claude Code signalait un compte suspendu comme [Connexion expirée · Veuillez exécuter /login](#login-expired), dont les étapes de récupération ne peuvent pas effacer une suspension. -* Ouvrez la routine pour la modifier, ou démarrez une session cloud. Sélectionnez l'icône cloud affichant le nom de votre environnement, tel que **Default**, pour ouvrir le sélecteur. Survolez votre environnement et cliquez sur l'icône des paramètres. -* Dans la boîte de dialogue **Update 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](/docs/fr/claude-code-on-the-web#default-allowed-domains) aux côtés de vos domaines personnalisés. Sélectionnez **Full** à la place si vous souhaitez un accès sans restriction. -* Cliquez sur **Save changes**. La prochaine exécution utilise la liste d'autorisation mise à jour. +**À faire :** -Consultez [Network access](/docs/fr/claude-code-on-the-web#network-access) 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. +* Ouvrez le lien dans le message pour afficher les détails de la suspension ou l'appeler +* Si vous avez un autre compte Claude ou une clé API qui n'est pas affectée par la suspension, vous pouvez continuer à travailler pendant que la suspension est résolue : exécutez `/login` avec ce compte, ou définissez la clé avec `ANTHROPIC_API_KEY` -

- Impossible de se reconnecter à votre session Remote Control +

+ Connexion au profil Anthropic expirée

+Claude Code s'authentifie via un profil de credential Anthropic dont la credential de connexion enregistrée a expiré, et le profil ne contient pas de credential d'actualisation que Claude Code peut utiliser pour la renouveler. Claude Code arrête chaque requête localement sans réessayer, car un réessai lirait la même credential expirée. + ```text theme={null} -Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume. +Anthropic profile login expired · Re-authenticate your Anthropic profile +Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile ``` -La reprise avec `claude --resume` ou `claude --continue` se reconnecte à la session [Remote Control](/docs/fr/remote-control) enregistrée dans cette conversation. Ce message signifie que la reconnexion a échoué pour une raison qui peut être temporaire, telle qu'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. - -**Que faire :** +Cela n'apparaît que quand la credential active provient d'un profil de credential Anthropic, un que vous sélectionnez avec la variable d'environnement `ANTHROPIC_PROFILE`, que Claude Code découvre comme le profil actif dans votre répertoire de configuration Anthropic, ou que Claude Code a écrit quand vous [vous êtes connecté sans clé API](/docs/fr/authentication#sign-in-without-an-api-key). Les sessions qui s'authentifient avec l'option claude.ai de `/login`, une clé API, un jeton bearer comme `ANTHROPIC_AUTH_TOKEN` ou un fournisseur tiers ne voient jamais ce message. -* Exécutez `/remote-control` pour réessayer la connexion -* Démarrez Claude Code sans `--resume` pour créer une nouvelle session Remote Control -* Pour les autres messages de démarrage Remote Control, consultez [Dépanner Remote Control](/docs/fr/remote-control#troubleshooting) +Sur une machine qui [offre la connexion sans clé](/docs/fr/authentication#sign-in-without-an-api-key), exécutez `/login`, choisissez le compte Anthropic Console et reconnectez-vous pour renouveler un profil que la connexion Console sans clé ou la CLI Claude Platform `ant auth login` a écrit. Claude Code remplace la credential expirée dans ce profil. Pour un profil de fédération ou un créé par un autre outil, `/login` ne renouvelle pas la credential. La forme que vous voyez dépend de si vous avez sélectionné le profil ou si Claude Code l'a découvert : -Vous ne verrez pas ce message lorsque le serveur confirme que la session précédente n'existe plus ; Claude Code en crée une nouvelle dans ce cas. Avant la v2.1.200, toute défaillance de reconnexion créait une nouvelle session Remote Control, ce qui laissait des sessions supplémentaires dans la liste des sessions sur claude.ai/code. +* Quand vous définissez `ANTHROPIC_PROFILE` explicitement, le message se termine par `Re-authenticate your Anthropic profile`. +* Quand Claude Code a découvert le profil à partir de votre répertoire de configuration, le message offre `/login`, car Claude Code donne la priorité à une `/login` fonctionnelle sur le profil découvert et s'authentifie ensuite avec votre compte claude.ai ou Console à la place. Avant v2.1.234, Claude Code affichait la forme `Re-authenticate your Anthropic profile` dans ce cas aussi. -

- Erreurs de requête -

+**À faire :** -Ces erreurs concernent le contenu de votre requête. La plupart proviennent de l'API après qu'elle ait rejeté la requête ; quelques-unes sont produites localement par Claude Code avant l'envoi de toute requête. +* Reconnectez-vous au profil, puis réessayez : sur une machine qui [offre la connexion sans clé](/docs/fr/authentication#sign-in-without-an-api-key), exécutez `/login` et choisissez le compte Anthropic Console pour un profil que la connexion Console sans clé ou la CLI Claude Platform `ant auth login` a écrit ; pour les autres profils, utilisez l'outil qui les a créés +* Si un administrateur a provisionné la credential du profil, demandez-lui d'en émettre une nouvelle +* Exécutez `/status` pour confirmer la source de credential active et le nom du profil +* Pour arrêter d'utiliser le profil, déconfigurez `ANTHROPIC_PROFILE` si vous l'avez défini, puis authentifiez-vous d'une autre manière, comme `/login` ou `ANTHROPIC_API_KEY` -

- Le prompt est trop long +

+ Exigence de portée OAuth

-La conversation plus les fichiers joints dépassent la fenêtre de contexte du modèle. +Le jeton enregistré est antérieur à une portée de permission qu'une fonctionnalité plus récente nécessite. Vous voyez cela le plus souvent de `/usage` et l'indicateur d'utilisation de la ligne d'état : ```text theme={null} -Prompt is too long +OAuth token does not meet scope requirement: user:profile ``` **À faire :** -* Exécutez `/compact` pour résumer les tours précédents et libérer de l'espace, ou `/clear` pour recommencer à zéro -* Exécutez `/context` pour voir une ventilation de ce qui consomme la fenêtre : prompt système, outils, fichiers mémoire et messages -* Désactivez les serveurs MCP que vous n'utilisez pas avec `/mcp disable ` pour supprimer leurs définitions d'outils du contexte -* Réduisez les fichiers mémoire `CLAUDE.md` volumineux, ou déplacez les instructions dans les [règles limitées au chemin](/docs/fr/memory#path-specific-rules) qui se chargent uniquement lorsqu'elles sont pertinentes -* Les sous-agents héritent de chaque définition d'outil MCP de la session parent, ce qui peut remplir leur fenêtre de contexte avant le premier tour. Désactivez les serveurs MCP que vous n'utilisez pas avant de générer des sous-agents. -* L'auto-compact est activé par défaut et empêche normalement cette erreur. Si vous avez défini [`DISABLE_AUTO_COMPACT`](/docs/fr/env-vars), réactivez-le ou exécutez `/compact` manuellement avant que la fenêtre ne se remplisse. +* Exécutez `/login` pour obtenir un nouveau jeton avec les portées actuelles. Vous n'avez pas besoin de vous déconnecter d'abord. -Consultez [Explorez la fenêtre de contexte](/docs/fr/context-window) pour une vue interactive de la façon dont le contexte se remplit. - -

- Erreur lors de la compaction : Conversation trop longue +

+ claude.ai a rejeté le jeton de session

-`/compact` lui-même a échoué car il n'y a pas assez d'espace libre dans le contexte pour contenir le résumé qu'il produit. +Une requête de [connecteur claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai) a échoué car claude.ai a rejeté le jeton de votre connexion Claude Code, généralement une connexion qui a expiré et n'a pas pu être rafraîchie. Le jeton rejeté est votre connexion, pas l'autorisation propre du connecteur dans claude.ai, donc autoriser le connecteur à nouveau ne le résout pas. Dans `/mcp`, le connecteur s'affiche comme `connected · session token rejected` et sa vue de détail se lit : ```text theme={null} -Error during compaction: Conversation too long. Press esc twice to go up a few messages and try again. +claude.ai rejected the session token. Run /login, then reconnect. ``` -Cela peut se produire lorsque la fenêtre est déjà pleine au moment où l'auto-compact se déclenche, ou lorsque vous exécutez `/compact` après avoir vu `Prompt is too long`. - **À faire :** -* Appuyez deux fois sur Échap pour ouvrir la liste des messages et revenir plusieurs tours en arrière. Cela supprime les messages les plus récents du contexte. Ensuite, exécutez `/compact` à nouveau. -* Si revenir en arrière ne libère pas assez d'espace, exécutez `/clear` pour démarrer une nouvelle session. Votre conversation précédente est conservée et peut être rouverte avec `/resume`. +* Exécutez `/login` pour vous reconnecter +* Reconnectez le connecteur à partir de `/mcp`, ou exécutez `/mcp reconnect `. La reconnexion avant de vous reconnecter laisse le connecteur dans le même état. L'option **Reconnect** du panneau `/mcp` signale `your claude.ai session token was rejected` ; la forme `/mcp reconnect ` tapée signale une reconnexion réussie même si le jeton est toujours rejeté. + +Avant v2.1.222, Claude Code marquait le connecteur comme ayant besoin d'authentification à la place, ce qui vous pointait vers le flux d'autorisation du connecteur même si le compléter ne résolvait pas l'état. -

- Requête trop volumineuse +

+ Le serveur MCP a besoin que vous vous reconnectiez

-Le corps de la requête brute a dépassé la limite d'octets de l'API avant la tokenisation, généralement en raison d'un fichier volumineux collé ou d'une pièce jointe. +Un [serveur MCP](/docs/fr/mcp) distant a rejeté la credential sur 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 manque d'une permission que l'outil nécessite. L'appel d'outil échoue, et `/mcp` marque le serveur comme [ayant besoin d'authentification](/docs/fr/mcp#authenticate-with-remote-mcp-servers). + +Pour un serveur auquel vous vous connectez à partir de Claude Code, y compris un connecteur claude.ai, la connexion a expiré ou a été révoquée : ```text theme={null} -Request too large (max 30 MB). Double press esc to go back and remove or shrink the attached content. +MCP server "" needs you to sign in again (run /mcp to re-authenticate) ``` -Il s'agit d'une limite de taille sur la requête HTTP, distincte de la [limite de la fenêtre de contexte](#prompt-is-too-long). +Exécutez `/mcp`, sélectionnez le serveur et reconnectez-vous à partir de son menu. -**À faire :** +Pour un serveur configuré avec un script [`headersHelper`](/docs/fr/mcp#use-dynamic-headers-for-custom-authentication), Claude Code a déjà réexécuté le helper et réessayé l'appel une fois avant d'afficher ceci : -* Appuyez deux fois sur Échap et revenez en arrière au-delà du tour qui a ajouté le contenu surdimensionné -* Référencez les fichiers volumineux par chemin au lieu de coller leur contenu, afin que Claude puisse les lire par morceaux -* Pour les images, consultez [L'image était trop volumineuse](#image-was-too-large) ci-dessous +```text theme={null} +MCP server "" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth) +``` -

- L'image était trop volumineuse -

+Vérifiez que le helper retourne une credential que le serveur accepte, puis reconnectez à partir de `/mcp`, qui réexécute le helper. -Une image collée ou jointe dépasse les limites de taille ou de dimension de l'API. +Pour un serveur avec un en-tête `Authorization` statique dans sa configuration : ```text theme={null} -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 +MCP server "" rejected the Authorization header in its config (update it, then run /mcp to reconnect) ``` -Claude Code remplace l'image non traitée par un espace réservé textuel et réessaie, de sorte que les messages suivants réussissent. Sur les versions antérieures à 2.1.142, une image collée pouvait rester dans la conversation et répéter la même erreur à chaque message suivant. Pour récupérer sur ces versions, appuyez deux fois sur Échap et revenez en arrière au-delà du tour où l'image a été ajoutée. +Mettez à jour la valeur d'en-tête où le serveur est configuré, puis reconnectez à partir de `/mcp`. + +Avant v2.1.273, les cas de connexion expirée, `headersHelper` et d'en-tête `Authorization` affichaient tous `MCP server "" requires re-authorization (token expired)`. + +Un serveur peut également refuser un appel d'outil avec HTTP 403 `insufficient_scope` pour vous demander d'autoriser une portée, parfois une que votre jeton liste déjà. Le message nomme cette portée : + +```text theme={null} +MCP server "" needs additional permissions (scope: "") — run /mcp to re-authenticate +``` + +Exécutez `/mcp`, sélectionnez le serveur et authentifiez-vous à nouveau à partir de son menu. + +Quand la configuration du serveur ne définit ni [`oauth.scopes`](/docs/fr/mcp#restrict-oauth-scopes) ni [`authServerMetadataUrl`](/docs/fr/mcp#override-oauth-metadata-discovery), Claude Code demande la portée que le serveur a nommée. Avec l'un ou l'autre paramètre, Claude Code demande plutôt les portées de ce paramètre. Si vous avez épinglé `oauth.scopes`, ajoutez la portée manquante à cette liste avant de vous authentifier à nouveau. + +Avant v2.1.274, ce cas affichait le message `needs you to sign in again`, et avant v2.1.273 il affichait `requires re-authorization (token expired)` comme les autres cas. + +

+ Incompatibilité d'émetteur dans la réponse d'autorisation +

+ +Pendant une [connexion OAuth MCP](/docs/fr/mcp#authenticate-with-remote-mcp-servers), le serveur d'autorisation a redirigé vers Claude Code avec un paramètre `iss` qui ne nomme pas l'émetteur que Claude Code attendait des métadonnées OAuth du serveur. Un mauvais émetteur à cette étape est à quoi ressemble une attaque de mélange de serveur d'autorisation, donc Claude Code échoue 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 du navigateur : + +```text theme={null} +Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com" +``` + +`expected` est l'émetteur des métadonnées OAuth du serveur, et `received` est la valeur `iss` que la redirection portait. Une connexion dont la redirection ne porte pas de paramètre `iss` réussit la vérification, à moins que les métadonnées du serveur définissent `authorization_response_iss_parameter_supported`, auquel cas Claude Code échoue la connexion. + +**À faire :** + +* Réessayez la connexion à partir de `/mcp` +* Si l'erreur se répète, signalez-la à l'opérateur du serveur. La correction est côté serveur : le serveur d'autorisation doit retourner le même émetteur dans le paramètre `iss` qu'il annonce dans ses métadonnées +* Pour vous connecter pendant que le serveur est en cours de correction, démarrez Claude Code avec [`MCP_SDK_GENERATION=v1`](/docs/fr/env-vars), dont le [runtime](/docs/fr/mcp#mcp-client-runtimes) n'exécute pas cette vérification. Cela supprime une protection contre les attaques de mélange, donc préférez la correction côté serveur + +Avant v2.1.232, Claude Code utilisait le runtime v2 uniquement dans un déploiement progressif ou quand vous définissiez `MCP_SDK_GENERATION=v2`. + +

+ Les credentials AWS ont expiré ou sont invalides +

+ +Votre jeton de session AWS a expiré ou a été rejeté. Ce message apparaît sur un 401 de [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws) ou du [point de terminaison Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint), c'est ainsi que ces fournisseurs signalent un jeton de sécurité expiré. + +L'indice d'action au milieu varie selon votre configuration. La partie stable est le début `AWS credentials expired or invalid` : + +```text theme={null} +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 v2.1.273, ce message n'apparaissait que quand `awsAuthRefresh` était configuré. + +**À faire :** + +* Si l'indice dit que les credentials sont gérées par cet environnement, l'application qui a lancé Claude Code possède la credential et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur +* Si [`awsAuthRefresh`](/docs/fr/amazon-bedrock#advanced-credential-configuration) est défini, exécutez la commande nommée dans le message, comme `aws sso login --profile myprofile`, dans un autre terminal et complétez la connexion du navigateur, puis réessayez. Sinon, rafraîchissez la credential AWS que vous utilisez vous-même : votre connexion SSO, les clés d'accès, la clé API ou le jeton proxy +* Avec `awsAuthRefresh` défini dans une session interactive, vous pouvez à la place 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 credentials AWS](/docs/fr/claude-platform-on-aws#1-configure-aws-credentials) +* Si l'erreur se répète après la réussite de la commande de rafraîchissement, confirmez que l'identité est valide en dehors de Claude Code avec `aws sts get-caller-identity` dans le même shell et profil + +

+ L'authentification AWS a échoué +

+ +Votre fournisseur AWS a retourné un 403, ou [Amazon Bedrock](/docs/fr/amazon-bedrock) a retourné un 401. + +Amazon Bedrock signale un jeton de sécurité expiré comme un 403, mais un 403 est aussi comment il signale un refus d'autorisation, comme un `AccessDeniedException` d'une permission IAM manquante. Claude Code ne peut pas distinguer ces deux causes. + +Un 401 d'Amazon Bedrock atterrit aussi ici plutôt que sous [Les credentials AWS ont expiré ou sont invalides](#aws-credentials-expired-or-invalid), car Amazon Bedrock ne signale pas un jeton expiré comme un 401. Un 401 de ce point de terminaison provient généralement de quelque chose d'autre dans le chemin de la requête, comme un proxy d'entreprise. + +Un rafraîchissement de credential corrige un jeton expiré et ne peut pas corriger les autres causes, donc le message offre les deux : + +```text theme={null} +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'indice d'action au milieu varie selon votre configuration. La partie stable est le début `AWS authentication failed`. + +Quand le 403 est la réponse d'Amazon Bedrock que vous n'avez pas accès au modèle avec l'ID de modèle spécifié, l'indice vous dit plutôt d'activer le modèle pour votre compte et région dans la console Amazon Bedrock. + +Avant v2.1.273, ce message n'apparaissait que quand `awsAuthRefresh` était configuré. + +**À faire :** + +* Si l'indice dit que les credentials sont gérées par cet environnement, l'application qui a lancé Claude Code possède la credential et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur +* Rafraîchissez vos credentials AWS au cas où une credential expirée serait la cause : exécutez la commande [`awsAuthRefresh`](/docs/fr/amazon-bedrock#advanced-credential-configuration) nommée dans le message quand une est définie, ou rafraîchissez votre connexion SSO, les clés d'accès, la clé API ou le jeton proxy vous-même +* Si vos credentials sont actuelles, confirmez que les permissions IAM dans [Configuration IAM](/docs/fr/amazon-bedrock#iam-configuration) sont attachées à l'identité que vous utilisez et que le modèle sélectionné est activé pour votre compte et région +* Exécutez `aws sts get-caller-identity` pour confirmer quelle identité vos requêtes utilisent ; un `AWS_PROFILE` obsolète ou un profil par défaut est une cause courante d'une incompatibilité de permission + +

+ Les credentials Google Cloud ont expiré ou sont invalides +

+ +Vos credentials Google Cloud pour [Agent Platform de Google Cloud](/docs/fr/google-vertex-ai) ont expiré ou ont été rejetées : la requête a retourné un 401, c'est ainsi qu'Agent Platform signale l'expiration des credentials. + +L'indice d'action au milieu varie selon votre configuration. La partie stable est le début `Google Cloud credentials expired or invalid` : + +```text theme={null} +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 ... +``` + +**À faire :** + +* Si l'indice dit que les credentials sont gérées par cet environnement, l'application qui a lancé Claude Code possède la credential et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur +* Si vous vous authentifiez avec les credentials par défaut de l'application, exécutez la commande [`gcpAuthRefresh`](/docs/fr/google-vertex-ai#advanced-credential-configuration) nommée dans le message, ou `gcloud auth application-default login`, et complétez la connexion, puis réessayez +* Si vous acheminez via une [passerelle LLM](/docs/fr/llm-gateway) avec `CLAUDE_CODE_SKIP_VERTEX_AUTH` défini, rafraîchissez le jeton de la passerelle dans `ANTHROPIC_AUTH_TOKEN` ou `ANTHROPIC_CUSTOM_HEADERS`, puis réessayez +* Si vous vous authentifiez avec un fichier de clé de compte de service, confirmez que `GOOGLE_APPLICATION_CREDENTIALS` pointe vers une clé valide. Consultez [Configurer les credentials GCP](/docs/fr/google-vertex-ai#3-configure-gcp-credentials) +* Si l'erreur se répète après un rafraîchissement, confirmez que l'identité fonctionne en dehors de Claude Code avec `gcloud auth application-default print-access-token` dans le même shell + +Avant v2.1.273, un 401 d'Agent Platform affichait le message générique `Please run /login` ou `Failed to authenticate` à la place, qui ne peut pas rafraîchir les credentials Google Cloud. + +

+ L'authentification Google Cloud a échoué +

+ +[Agent Platform de Google Cloud](/docs/fr/google-vertex-ai) a retourné un 403, qu'il utilise pour les refus d'autorisation plutôt que les credentials expirées. Généralement, l'identité avec laquelle vous vous authentifiez manque d'une permission IAM, ou le modèle n'est pas activé pour votre projet. + +L'indice d'action au milieu varie selon votre configuration. La partie stable est le début `Google Cloud authentication failed` : + +```text theme={null} +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 ... +``` + +**À faire :** + +* Si l'indice dit que les credentials sont gérées par cet environnement, l'application qui a lancé Claude Code possède la credential et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur +* Confirmez que les rôles dans [Configuration IAM](/docs/fr/google-vertex-ai#iam-configuration) sont accordés à l'identité avec laquelle vous vous authentifiez +* Confirmez que le modèle est activé pour votre projet. Consultez [Demander l'accès au modèle](/docs/fr/google-vertex-ai#2-request-model-access) + +Avant v2.1.273, un 403 d'Agent Platform affichait le message générique `Please run /login` ou `Failed to authenticate` à la place, qui ne peut pas rafraîchir les credentials Google Cloud. + +

+ L'authentification Microsoft Foundry a échoué +

+ +[Microsoft Foundry](/docs/fr/microsoft-foundry) a retourné un 401 ou 403 : la credential Azure sur la requête a été rejetée, ou l'identité derrière n'a pas accès à la ressource Foundry. `/login` ne peut pas émettre de credentials Azure. L'indice d'action au milieu varie selon votre configuration. La partie stable est le début `Microsoft Foundry authentication failed` : + +```text theme={null} +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 ... +``` + +**À faire :** + +* Si l'indice dit que les credentials sont gérées par cet environnement, l'application qui a lancé Claude Code possède la credential et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur +* Rafraîchissez la credential que vous avez configurée dans [Configurer les credentials Azure](/docs/fr/microsoft-foundry#2-configure-azure-credentials) : faites tourner `ANTHROPIC_FOUNDRY_API_KEY`, émettez un `ANTHROPIC_FOUNDRY_AUTH_TOKEN` frais, ou exécutez `az login` pour que la chaîne de credential Microsoft Entra par défaut puisse se reconnecter +* Si la credential est actuelle, confirmez que l'identité a accès à la ressource Foundry. Consultez [Configuration Azure RBAC](/docs/fr/microsoft-foundry#azure-rbac-configuration) + +Avant v2.1.273, un 401 ou 403 de Microsoft Foundry affichait le message générique `Please run /login` ou `Failed to authenticate` à la place, qui ne peut pas rafraîchir les credentials Azure. + +

+ Impossible de charger les credentials AWS ou Google Cloud +

+ +Claude Code n'a pas pu obtenir de credentials utilisables à partir de la chaîne de fournisseur de credentials AWS ou de vos credentials par défaut de l'application Google sur la machine sur laquelle il s'exécute, donc aucune requête n'a atteint votre fournisseur cloud. Claude Code efface ses credentials en cache et réessaie deux fois avant d'afficher ce message. Le détail après le `·` nomme la cause spécifique, comme une session SSO expirée, des credentials par défaut manquantes signalées comme `Could not load the default credentials`, ou une connexion révoquée signalée comme `invalid_grant` : + +```text theme={null} +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](/docs/fr/headless) avec `-p` et dans l'[Agent SDK](/docs/fr/agent-sdk/overview), le code d'erreur structuré est `cloud_credential_error`. Avant v2.1.267, le message affichait uniquement le texte de détail après `API Error:`, et le code structuré était `server_error` ou `unknown`. + +**À faire :** + +* Exécutez la commande de connexion de votre fournisseur, comme `aws sso login --profile myprofile` ou `gcloud auth application-default login`, puis réessayez. [Les credentials Bedrock, Agent Platform ou Foundry ne se chargent pas](/docs/fr/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) montre comment confirmer les credentials en dehors de Claude Code +* Si le détail se lit `AWS default-chain credential resolve timed out`, la chaîne a bloqué plutôt que d'échouer, donc suivez [Le délai d'expiration de la résolution des credentials de la chaîne par défaut AWS](#aws-default-chain-credential-resolve-timed-out) à la place + +

+ Le délai d'expiration de la résolution des credentials de la chaîne par défaut AWS +

+ +La chaîne de fournisseur de credentials par défaut AWS n'a pas produit de credentials dans les 60 secondes, donc Claude Code a arrêté la résolution et a échoué la requête. Ce délai d'expiration est une cause de [Impossible de charger les credentials AWS ou Google Cloud](#could-not-load-aws-or-google-cloud-credentials). L'échec est la résolution locale des credentials : la requête n'a jamais atteint [Amazon Bedrock](/docs/fr/amazon-bedrock), [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws) ou le [point de terminaison Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint). Claude Code efface son [cache de credentials](/docs/fr/amazon-bedrock#credential-caching-and-resolution-timeout) et réessaie avant que cette erreur ne fasse surface, donc au moment où vous la voyez, la chaîne s'est bloquée sur des tentatives répétées. + +```text theme={null} +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 entrée 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 v2.1.267, le message se lisait `API Error: AWS default-chain credential resolve timed out`. +Avant v2.1.207, une chaîne bloquée laissait la requête attendre indéfiniment au lieu d'échouer. + +**À faire :** + +* Exécutez `aws sts get-caller-identity` dans le même shell avec le même `AWS_PROFILE`. S'il bloque aussi, corrigez le profil ; une commande `credential_process` qui demande de manière interactive est une cause courante. +* Complétez l'étape de connexion avant de démarrer Claude Code, par exemple `aws sso login --profile myprofile`, pour que la chaîne se résolve à partir du cache SSO local au lieu d'attendre un flux de navigateur +* Si votre chaîne exécute une connexion interactive qui a légitimement besoin de plus de 60 secondes, comme SSO avec MFA via un wrapper comme `aws-vault`, augmentez la limite en millisecondes avec [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/fr/env-vars) + +

+ La vérification de la configuration de Bedrock a expiré en attendant AWS +

+ +Un appel à AWS pendant l'[assistant de configuration de Bedrock](/docs/fr/amazon-bedrock#sign-in-with-bedrock), comme la recherche de credentials ou la vérification d'identité, n'a pas terminé dans la limite de 60 secondes. L'assistant arrête d'attendre et échoue l'étape de vérification : + +```text theme={null} +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`](/docs/fr/env-vars). + +Les causes courantes sont un réseau ou un proxy qui bloque les requêtes à AWS, y compris le rafraîchissement du jeton SSO, et un helper de credential qui attend toujours une entrée que vous ne pouvez pas voir. Augmentez la limite uniquement quand l'helper a légitimement besoin de plus de temps. + +Une seule requête bloquée à AWS peut aussi échouer sur son propre délai d'expiration par requête, qui affiche un message plus court sur la même étape : + +```text theme={null} +A request to AWS timed out. Check your network and proxy settings, then try again. +``` + +Quand les mêmes délais d'expiration se produisent sur l'étape d'épinglage de modèle, l'assistant marque un modèle comme `unreachable` au lieu d'afficher l'un ou l'autre message. + +**À faire :** + +* Exécutez `aws sts get-caller-identity` dans le même shell. S'il bloque aussi, le blocage est en dehors de Claude Code, dans votre réseau, votre proxy ou l'helper de credential dans votre profil AWS ; corrigez cela d'abord. +* Complétez toute connexion interactive avant d'ouvrir l'assistant, par exemple `aws sso login --profile myprofile` +* Si un helper de credential dans votre profil AWS a légitimement besoin de plus de 60 secondes pour vous demander, augmentez la limite en millisecondes avec [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/fr/env-vars) + +

+ La session de la passerelle cloud a expiré +

+ +Vous vous êtes connecté via une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), et la session de la 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 que le [secret JWT de la passerelle soit remplacé](/docs/fr/claude-apps-gateway-deploy#jwt-secret-rotation). Si vous voyez cette ligne quand vous démarrez `claude` de manière interactive, la session s'est ouverte déconnectée de la passerelle : + +```text theme={null} +Cloud gateway session expired — run /login to reconnect. +``` + +La même ligne peut apparaître en cours de session quand la credential de la passerelle expire et Claude Code ne peut pas la renouveler. + +Dans une exécution [non-interactive](/docs/fr/headless), une session en arrière-plan ou autre sans surveillance, ou une sous-commande `claude` autre que `claude auth`, Claude Code se termine avec ce message à la place quand la passerelle n'accepte plus la session : + +```text theme={null} +Cloud gateway no longer accepts this session. Start `claude` and sign in again with /login. +``` + +**À faire :** + +* Exécutez `/login` dans la session et complétez la connexion du navigateur +* Pour un lancement non-interactif, démarrez `claude` dans le même environnement, exécutez `/login`, puis réexécutez votre commande + +

+ La passerelle a refusé la requête +

+ +Vous êtes connecté via une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), et une requête a retourné un 403 : la passerelle, ou l'amont derrière, l'a refusée. Se reconnecter ne change pas un refus, donc le message pointe vers votre administrateur de passerelle : + +```text theme={null} +Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ... +``` + +**À faire :** + +* Demandez à votre administrateur de passerelle de rechercher la requête. La queue `API Error:` porte le refus que la passerelle a retourné +* Pour les administrateurs : une [règle de contrôle d'accès](/docs/fr/claude-apps-gateway-config#http-tuning) sur la passerelle retourne un 403 que le [journal d'audit](/docs/fr/claude-apps-gateway-deploy#logs) enregistre avec sa raison, et un refus d'autorisation en amont passe par [Messages d'erreur en amont](/docs/fr/claude-apps-gateway-config#upstream-error-messages) + +Avant v2.1.273, un 403 sur une session de passerelle affichait le message générique `Please run /login` ou `Failed to authenticate` à la place, et se reconnecter ne changeait pas le refus. + +

+ Connexion non acceptée à la passerelle Cloud +

+ +Vous avez essayé de démarrer une [session cloud](/docs/fr/claude-code-on-the-web), et le serveur a refusé de la créer avec un 401 : il n'a pas accepté la connexion Claude que cette machine a envoyée, généralement parce que la connexion a expiré ou a été révoquée. + +La première partie de la ligne est la propre raison du serveur quand il en donne une. Sinon, la ligne se lit : + +```text theme={null} +Claude login not accepted · Run /login, then try again +``` + +**À faire :** + +* Exécutez `/login`, complétez la connexion, puis démarrez la session à nouveau + +

+ 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. + +

+ Impossible de se connecter à l'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 : + +```text theme={null} +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) +fetch failed +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, utilisez `curl.exe -I https://api.anthropic.com` pour que l'alias `Invoke-WebRequest` intégré ne soit pas utilisé. +* Si vous êtes derrière un proxy d'entreprise, définissez `HTTPS_PROXY` avant de lancer Claude Code et consultez [Configuration réseau](/docs/fr/network-config) +* Si vous routez via une passerelle LLM ou un relais, définissez [`ANTHROPIC_BASE_URL`](/docs/fr/env-vars) sur son adresse. Consultez [Connecter Claude Code à une passerelle LLM](/docs/fr/llm-gateway-connect) pour la configuration. +* Assurez-vous que votre pare-feu autorise les hôtes listés dans [Exigences d'accès réseau](/docs/fr/network-config#network-access-requirements) +* Les défaillances intermittentes sont [automatiquement réessayées](#automatic-retries) ; les défaillances persistantes pointent vers un problème réseau local + +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 : + +* Sur Linux et WSL, vérifiez `/etc/resolv.conf` pour 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 `ifconfig` pour les interfaces `utun` obsolè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é. + +

+ Impossible de se connecter aux services Anthropic +

+ +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. + +```text theme={null} +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](/docs/fr/network-config) 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](/docs/fr/managed-settings) définit [`forceLoginMethod`](/docs/fr/settings-reference#forceloginmethod) sur `"gateway"`, ou définit [`forceLoginGatewayUrl`](/docs/fr/settings-reference#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 points de terminaison d'Anthropic étaient inaccessibles. + +**À 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](/docs/fr/network-config). +* Parcourez les vérifications dans [Impossible de se connecter à l'API](#unable-to-connect-to-api). Le test `curl` et les conseils de pare-feu là s'appliquent à cette vérification aussi. +* Si votre organisation se connecte via une [passerelle cloud](/docs/fr/claude-apps-gateway) et cette erreur apparaît au premier lancement, mettez à jour vers Claude Code v2.1.247 ou ultérieur. +* Si votre réseau est ouvert et l'échec persiste, Claude Code peut ne pas être [disponible dans votre pays](https://www.anthropic.com/supported-countries) + +

+ 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 [Réessais automatiques](#automatic-retries). + +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](#unable-to-connect-to-api) et vérifiez la configuration du proxy dans [Configuration réseau](/docs/fr/network-config) + +

+ L'API a retourné une réponse vide ou malformée +

+ +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. + +```text theme={null} +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, comme `body is an HTML page` ou `empty 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, comme `nginx` ou `cloudflare`, ou porte des en-têtes intermédiaires, comme `cf-ray` ou `via`, 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é comme `nginx` ou `cloudflare` signifie que quelque chose entre Claude Code et l'API a répondu à sa place +* Si vous routez via une [passerelle LLM](/docs/fr/llm-gateway-connect#troubleshoot-gateway-errors), 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=1`](/docs/fr/env-vars#variables) pour qu'une requête qui échoue au milieu du flux aille au chemin de nouvelle tentative normal au lieu de ce secours, sauf lorsque le point de terminaison en streaming lui-même retourne `404`, où Claude Code se replie toujours + +

+ La réponse en streaming s'est terminée avant que des données complètes ne soient reçues +

+ +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. + +```text theme={null} +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](/docs/fr/amazon-bedrock), consultez [Erreurs de streaming derrière une passerelle ou un proxy](/docs/fr/amazon-bedrock#streaming-errors-behind-a-gateway-or-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](/docs/fr/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. + +```text theme={null} +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 :** -* Redimensionnez l'image avant de la coller. L'API accepte les images jusqu'à 8 000 pixels sur le côté le plus long pour une seule image, ou 2 000 pixels lorsque de nombreuses images sont en contexte. -* Prenez une capture d'écran plus serrée de la région pertinente au lieu de l'écran complet +* Configurez la passerelle pour passer le corps de la réponse `InvokeModelWithResponseStream` et son en-tête `Content-Type` sans 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=1`](/docs/fr/env-vars) masque cette erreur, mais Claude Code ne décode pas un corps binaire sous un en-tête réécrit, donc ces requêtes se replient sur un chemin plus lent sans streaming. Consultez [Erreurs de streaming derrière une passerelle ou un proxy](/docs/fr/amazon-bedrock#streaming-errors-behind-a-gateway-or-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. + +```text theme={null} +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 nouvelle tentative](#automatic-retries) 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, réessaient toujours. + +Pendant `/login` et la vérification de connectivité au démarrage, la même défaillance produit un message différent : + +```text theme={null} +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](/docs/fr/amazon-bedrock), les requêtes que Claude Code lui-même envoie à AWS, comme les appels 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](/docs/fr/amazon-bedrock#certificate-errors-behind-a-tls-inspecting-proxy). + +**À 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](/docs/fr/network-config#custom-ca-certificates) 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 routine a été bloquée par la politique réseau de l'environnement. + +```text theme={null} +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. + +Ce n'est pas un problème réseau côté client. Les sessions cloud et les [routines](/docs/fr/routines) 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](/docs/fr/cloud-environments) ; les [opérations GitHub](/docs/fr/cloud-environments#github-proxy) et le trafic du connecteur MCP utilisent des canaux séparés, c'est pourquoi ils peuvent continuer à fonctionner tandis que d'autres hôtes sont bloqués. L'environnement **Default** utilise l'accès **Trusted**, qui permet la [liste d'autorisation par défaut](/docs/fr/cloud-environments#default-allowed-domains) 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](/docs/fr/cloud-environments#organization-shared-environments) 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](https://claude.ai/admin-settings). + +* Ouvrez la routine pour l'édition, ou démarrez une session cloud. Sélectionnez l'icône cloud affichant le nom de votre environnement, comme **Default**, pour ouvrir le sélecteur. Survolez votre environnement et cliquez sur l'icône des paramètres. +* Dans la boîte de dialogue **Update 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](/docs/fr/cloud-environments#default-allowed-domains) 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. + +Consultez [Network access](/docs/fr/cloud-environments#network-access) 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 [artifact](/docs/fr/artifacts) via le proxy que vous avez défini dans `HTTPS_PROXY` ou une [variable proxy](/docs/fr/network-config#environment-variables) associée. Le contenu des artifacts 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 : + +```text theme={null} +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 [Basic authentication](/docs/fr/network-config#basic-authentication) le montre. +* `HTTP 403` : le proxy refuse de tunneler vers `*.frame.claudeusercontent.com`. Demandez à celui qui gère le proxy d'autoriser cet hôte, que [Network access requirements](/docs/fr/network-config#network-access-requirements) liste. +* 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 journaux 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 [Proxy configuration](/docs/fr/network-config#proxy-configuration) le décrit, 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écutez `curl.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 artifacts. +* Si votre réseau permet à Claude Code d'atteindre l'hôte des artifacts directement, ajoutez `.frame.claudeusercontent.com` à [`NO_PROXY`](/docs/fr/network-config#environment-variables). Gardez l'entrée étroite : une entrée `.claudeusercontent.com` plus large contourne également le proxy pour `bridge.claudeusercontent.com`, que les organisations avec [IP allowlisting](/docs/fr/network-config#organization-ip-allowlists-and-proxy-egress) 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](/docs/fr/cloud-environments) à plusieurs points, comme lorsque vous créez une session cloud à partir de la CLI ou exécutez [`/remote-env`](/docs/fr/cloud-environments#select-an-environment-from-the-cli). Lorsqu'il ne peut pas lire la réponse du serveur, il affiche l'un de ces messages : + +```text theme={null} +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](https://status.claude.com) pour les incidents actifs + +Avant la v2.1.236, Claude Code affichait une TypeError JavaScript brute au lieu de ces messages. + +

+ Impossible de se reconnecter à votre session Remote Control +

+ +```text theme={null} +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](/docs/fr/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-control` pour réessayer la connexion +* Démarrez une nouvelle session avec `claude --remote-control` pour créer une nouvelle session Remote Control +* Pour les autres messages de démarrage Remote Control, consultez [Troubleshoot Remote Control](/docs/fr/remote-control#troubleshooting) + +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`](/docs/fr/remote-control#previous-session-is-unavailable), selon [l'enregistrement de reconnexion de la conversation](/docs/fr/remote-control#resume-outcomes). De la v2.1.227 à la v2.1.231, Claude Code affichait un message qui commence par `Remote Control could not resume the previous session under the current login` à la place, et [les versions antérieures se comportaient différemment à nouveau](/docs/fr/remote-control#reconnect-history). + +

+ 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`](/docs/fr/remote-control#start-a-remote-control-session) 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. + +```text theme={null} +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-control` pour démarrer un environnement frais + +

+ Impossible de partager la transcription +

+ +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](/docs/fr/data-usage#session-quality-surveys), 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](/docs/fr/claude-apps-gateway), et lorsqu'aucune identifiant Anthropic n'est disponible. Ce message signifie que le partage ne s'est pas complété. + +```text theme={null} +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 uniquement 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 `/feedback` pour envoyer la transcription avec une description de ce qui s'est passé. Consultez [Report an error](#report-an-error) si `/feedback` n'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](#unable-to-connect-to-api) + +

+ Erreurs de requête +

+ +Ces erreurs concernent le contenu de votre requête. La plupart proviennent de l'API après qu'elle ait rejeté la requête ; quelques-unes sont produites localement par Claude Code avant l'envoi de toute requête. + +

+ L'invite est trop longue +

+ +La conversation plus les fichiers joints dépasse la fenêtre de contexte du modèle. + +```text theme={null} +Prompt is too long +``` + +Dans une session interactive, Claude Code affiche cette erreur comme : + +```text theme={null} +Context limit reached · /compact or /clear to continue +``` + +La ligne nomme uniquement `/clear` quand [`DISABLE_COMPACT`](/docs/fr/env-vars) est défini. Les formes plus longues de l'erreur, comme la forme d'échec de compaction ci-dessous, conservent le libellé `Prompt is too long ·`. Dans la sortie `-p` et la transcription, le texte reste `Prompt is too long`. + +Quand vous avez désactivé la compaction automatique dans vos [paramètres utilisateur](/docs/fr/settings-reference#autocompactenabled), la ligne dit aussi : + +```text theme={null} +Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on +``` + +Le bouton **Auto-compact** dans `/config` écrit `autoCompactEnabled` dans les paramètres utilisateur. L'indice n'apparaît que quand une modification `/config` prendrait effet. Par exemple, il n'apparaît pas quand [`DISABLE_AUTO_COMPACT`](/docs/fr/env-vars) ou [`DISABLE_COMPACT`](/docs/fr/env-vars) a désactivé la compaction automatique. Il n'apparaît pas non plus quand une portée de priorité plus élevée, comme les paramètres de projet ou gérés, définit `autoCompactEnabled` à `false`. Avant v2.1.235, la ligne ne contenait aucun indice de compaction automatique. + +Amazon Bedrock signale cette condition comme `Input is too long for requested model.`, que Claude Code traite de la même manière. Avant v2.1.217, Claude Code ne reconnaissait pas le libellé Bedrock, donc la compaction automatique ne s'est jamais déclenchée et `/compact` a échoué avec la même erreur. + +Une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway-config#upstream-error-messages) signale cette condition comme `capability_rejected: prompt_too_long` quand une source cloud en amont rejette la requête dans la forme d'erreur propre du fournisseur. Claude Code traite le jeton de la même manière que `Prompt is too long`. Avant v2.1.228, Claude Code ne reconnaissait pas le jeton, donc la compaction automatique ne s'est pas déclenchée. + +Quand 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 une défaillance d'authentification, le message nomme cette erreur après un séparateur : + +```text theme={null} +Prompt is too long · automatic compaction failed: +``` + +Résolvez d'abord l'erreur nommée ; `/compact` échoue sur la même erreur jusqu'à ce que vous le fassiez. Avant v2.1.229, une compaction automatique échouée affichait `Prompt is too long` sans la cause. + +Quand 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 : + +* Quand il ne peut pas résumer un échange complet, Claude Code conserve votre invite la plus récente mot pour mot et résume tout ce qui la précède. +* Dans ce cas, quand la conversation ne se termine pas par votre invite, Claude Code résume la conversation entière à la place. + +Claude Code ignore cette récupération quand le contenu qu'il porterait en avant ne contient aucune réponse du modèle et moins d'environ 1 000 jetons de votre propre texte, comme une courte nouvelle tentative envoyée après un collage surdimensionné. Exécutez `/clear` pour recommencer. Avant v2.1.269, la compaction échouait chaque fois qu'elle ne pouvait pas résumer un échange complet, donc une session dans cet état rencontrait cette erreur à chaque tour. + +Une conversation à un seul échange n'a pas de tours antérieurs à résumer. Quand la compaction automatique aurait dû s'exécuter sur un, Claude Code ignore la tentative et explique ce qui remplit la requête à la place. Quand l'API ne signale pas les nombres de jetons dans son erreur, le message se lit : + +```text theme={null} +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. +``` + +Quand l'API signale les nombres de jetons dans son erreur, Claude Code les compare avec sa propre estimation de la taille de la conversation pour dire lequel est la majorité de la requête : le contenu propre de la conversation, ou le contenu du message système, des définitions d'outils et des pièces jointes que Claude Code envoie avec. Quand le contenu propre de la conversation est la majorité de la requête, le message se lit : + +```text theme={null} +Prompt is too long · the request is ~ tokens (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). +``` + +Quand la majorité de la requête est en dehors de la conversation, le message se lit : + +```text theme={null} +Prompt is too long · the request is ~ tokens (limit ) but this conversation is only ~ 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 v2.1.162, Claude Code tentait la compaction de toute façon et affichait le `Prompt is too long` nu quand il échouait. + +**Que faire :** + +* Exécutez `/compact` pour résumer les tours antérieurs et libérer de l'espace, ou `/clear` pour recommencer. Si `/compact` répond `Not enough messages to compact.`, la conversation est un échange unique sans rien d'antérieur à résumer, donc l'espace est occupé par cette invite et ce que Claude Code envoie avec chaque requête : exécutez `/clear` et renvoyez avec moins de texte collé ou des pièces jointes plus petites, ou réduisez les définitions d'outils et les fichiers mémoire en utilisant les étapes ci-dessous +* Exécutez `/context` pour voir une ventilation de ce qui consomme la fenêtre : message système, outils, fichiers mémoire et messages +* Désactivez les serveurs MCP que vous n'utilisez pas avec `/mcp disable ` pour supprimer leurs définitions d'outils du contexte +* Réduisez les fichiers mémoire `CLAUDE.md` volumineux, ou déplacez les instructions dans les [règles à portée de chemin](/docs/fr/memory#path-specific-rules) qui se chargent uniquement quand pertinent +* Les sous-agents héritent de chaque définition d'outil MCP de la session parent, ce qui peut remplir leur fenêtre de contexte avant le premier tour. Désactivez les serveurs MCP que vous n'utilisez pas avant de générer des sous-agents. +* La compaction automatique est activée par défaut et prévient normalement cette erreur. Si vous l'avez désactivée dans `/config` ou avec [`DISABLE_AUTO_COMPACT`](/docs/fr/env-vars), réactivez-la. Si vous la gardez désactivée, exécutez `/compact` vous-même avant que la fenêtre se remplisse. + +Voir [Explorez la fenêtre de contexte](/docs/fr/context-window) pour une vue interactive de la façon dont le contexte se remplit. + +

+ Le contexte dépasse la limite de jetons +

+ +`/context` affiche cet avertissement en haut de sa sortie quand la conversation a dépassé la fenêtre de contexte du modèle. Les requêtes échouent avec [`Prompt is too long`](#prompt-is-too-long) jusqu'à ce que vous libériez de l'espace. Une session interactive affiche cette erreur comme la ligne `Context limit reached`. + +```text theme={null} +Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue. +``` + +Quand la limite que vous avez dépassée est une fenêtre de compaction, comme la limite 200K sur les modèles 1M-contexte, l'avertissement se lit différemment. Une fenêtre de compaction peut se situer en dessous de la fenêtre de contexte du modèle, donc les requêtes au-delà peuvent encore réussir. + +```text theme={null} +Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage. +``` + +Les deux formes nomment `/clear` au lieu de `/compact` quand vous avez défini [`DISABLE_COMPACT`](/docs/fr/env-vars). + +**Que faire :** + +* Dans une conversation multi-tours, exécutez `/compact` pour résumer les tours antérieurs et libérer de l'espace. Pour recommencer à la place, exécutez `/clear` +* Pour plus de façons de réduire l'utilisation, voir [L'invite est trop longue](#prompt-is-too-long) + +Avant v2.1.216, `/context` affichait l'utilisation au-dessus de 100 % sans ligne d'avertissement expliquant ce que cela signifiait ou comment récupérer. + +

+ Erreur lors de la compaction : Conversation trop longue +

+ +`/compact` lui-même a échoué parce qu'il n'y a pas assez de contexte libre pour contenir le résumé qu'il produit. + +```text theme={null} +Error during compaction: Conversation too long. Press esc twice to go up a few messages and try again. +``` + +Cela peut se produire quand la fenêtre est déjà pleine au moment où la compaction automatique se déclenche, ou quand vous exécutez `/compact` après avoir vu [`Prompt is too long`](#prompt-is-too-long). Dans une session interactive, cette erreur est la ligne `Context limit reached`. + +**Que faire :** + +* Appuyez deux fois sur Échap pour ouvrir la liste des messages et revenir plusieurs tours en arrière. Cela supprime les messages les plus récents du contexte. Puis exécutez `/compact` à nouveau. +* Si revenir en arrière ne libère pas assez d'espace, exécutez `/clear` pour démarrer une nouvelle session. Votre conversation précédente est préservée et peut être rouverte avec `/resume`. + +Ce message et d'autres défaillances `/compact` s'affichent dans le style d'erreur. Avant v2.1.216, ils s'affichaient dans le même style atténué que la sortie de commande réussie, donc vous pouviez lire une compaction échouée comme un succès. + +

+ Requête trop grande +

+ +Le corps de la requête brute a dépassé la limite de 32 Mo de l'API avant la tokenisation, généralement en raison de contenu collé volumineux, de résultats d'outils ou de pièces jointes. Cette limite est distincte de la [fenêtre de contexte](#prompt-is-too-long). + +```text theme={null} +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. +``` + +Quand 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. 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).` : les images ou documents ont poussé la requête au-delà de la limite. Claude Code réessaie en les supprimant. +* `Request too large for the API's 32MB request limit` : les messages seuls dépassent la limite, donc le message dit `compacting cannot make it fit` et Claude Code ne réessaie pas. En [mode non-interactif](/docs/fr/headless), le message vous dit de réduire l'entrée ou de démarrer une nouvelle session à la place. + +Avant v2.1.212, les conversations avec assez 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 v2.1.229, Claude Code affichait le conseil sur les pièces jointes pour chaque rejet, même quand la compaction ne pouvait pas aider. + +**Que faire :** + +* Si le message dit `compacting cannot make it fit`, appuyez deux fois sur Échap pour revenir en arrière au-delà du tour qui a ajouté le contenu volumineux, ou exécutez `/clear` pour recommencer +* Sinon, exécutez `/compact`, qui supprime les images et pièces jointes accumulées +* Référencez les fichiers volumineux par chemin au lieu de coller leur contenu, afin que Claude puisse les lire par morceaux +* Pour les images, voir [L'image était trop grande](#image-was-too-large) ci-dessous + +

+ L'image était trop grande +

+ +Une image collée ou jointe dépasse les limites de taille ou de dimension de l'API. + +```text theme={null} +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 +``` + +Claude Code remplace l'image non traitée par un espace réservé textuel et réessaie, donc les messages suivants réussissent. Sur les versions antérieures à 2.1.142, une image collée pouvait rester dans la conversation et répéter la même erreur à chaque message suivant. Pour récupérer sur ces versions, appuyez deux fois sur Échap et revenir en arrière au-delà du tour où l'image a été ajoutée. + +**Que faire :** + +* Redimensionnez l'image avant de la coller. L'API accepte les images jusqu'à 8 000 pixels sur le côté le plus long pour une seule image, ou 2 000 pixels quand de nombreuses images sont en contexte. +* Prenez une capture d'écran plus serrée de la région pertinente au lieu de l'écran complet + +

+ Impossible de redimensionner l'image +

+ +Claude Code n'a pas pu réduire une image jointe avant de l'envoyer à l'API. + +```text theme={null} +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 grandes images automatiquement. Ces erreurs signifient que l'image n'a pas pu être décodée ou redimensionnée pour tenir dans 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. Claude Code peut vérifier les dimensions pour ces formats à partir de l'en-tête du fichier, sans décoder l'image. +* Si le message signale une limite de dimension 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 que le message suggère et joignez-la à nouveau. + +

+ Erreurs PDF +

+ +Le PDF que vous avez joint n'a pas pu être traité. Les messages sont affichés ici dans leur forme non-interactive ; dans une session interactive, ils vous invitent plutôt à appuyer deux fois sur Échap et à réessayer. + +```text theme={null} +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 surdimensionnés, 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 `pdftotext` et référencez le fichier de sortie par chemin +* Pour les PDF protégés ou invalides, supprimez le mot de passe ou réexportez le fichier depuis son application source, puis réessayez + +

+ Les entrées supplémentaires ne sont pas autorisées +

+ +Un proxy ou une passerelle LLM entre Claude Code et l'API a supprimé l'en-tête de requête `anthropic-beta`, donc l'API a rejeté les champs qui en dépendent. + +```text theme={null} +API Error: 400 ... Extra inputs are not permitted ... context_management +API Error: 400 ... Unexpected value(s) for the `anthropic-beta` header +``` + +Claude Code envoie des champs bêta uniquement comme `context_management` et `effort` aux côtés d'un en-tête `anthropic-beta` qui les active. Quand une passerelle transfère le corps mais supprime l'en-tête, l'API voit des champs qu'elle ne reconnaît pas. + +**Que faire :** + +* Configurez votre passerelle pour transférer l'en-tête `anthropic-beta`. Voir [transmission de fonctionnalités](/docs/fr/llm-gateway-protocol#feature-pass-through) pour ce que les passerelles doivent transférer. +* En dernier recours, définissez [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/fr/env-vars) avant de lancer. [Désactiver les capacités de pré-version](/docs/fr/llm-gateway-protocol#disable-pre-release-capabilities) couvre la portée exacte. + +

+ Le schéma d'entrée de l'outil est invalide +

+ +Un outil dans la requête a déclaré un `input_schema` qui échoue la validation JSON Schema de l'API, donc l'API a rejeté la requête entière. Le nombre après `tools.` est la position de l'outil défaillant dans la liste d'outils de la requête, pas un nom que vous pouvez rechercher. + +```text theme={null} +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 brouillon JSON Schema valide 2020-12. La seconde signifie qu'un nom de propriété de niveau supérieur ne correspond pas au motif que le message cite. + +Claude Code [exclut les outils MCP dont le schéma d'entrée échouerait cette validation](/docs/fr/mcp#tools-with-invalid-input-schemas) quand il charge les outils d'un serveur, donc les requêtes ne contiennent normalement jamais un. + +Sur un [déploiement où la récupération de drapeaux est désactivée](/docs/fr/env-vars#features-that-need-feature-flag-fetching), ou sur une machine dont les drapeaux ne sont jamais arrivés, Claude Code enregistre dans le journal du serveur quel outil serait rejeté mais l'envoie de toute façon, donc cette erreur peut toujours se produire. + +L'erreur peut aussi se produire pour un outil dont le schéma déclare un dialecte JSON Schema autre que le brouillon 2020-12 dans `$schema`. Claude Code ne vérifie pas ces schémas par rapport au méta-schéma JSON Schema, bien que la vérification du nom de propriété de niveau supérieur s'applique toujours. + +Avant 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 à v2.1.216, exécutez `claude update`. +* Supprimez ou [désactivez](/docs/fr/mcp#disable-a-server-without-removing-it) le serveur MCP qui déclare le schéma invalide. L'erreur nomme l'outil uniquement par position. Sur v2.1.216 ou ultérieur, vérifiez le journal de chaque serveur pour une ligne nommant un outil dont le schéma d'entrée serait rejeté. Si aucun journal n'en nomme un, désactivez les serveurs un par un. +* Si vous maintenez le serveur, corrigez le `input_schema` de l'outil. Le schéma doit être un JSON Schema valide, et les noms de propriété de niveau supérieur doivent faire 1 à 64 caractères et utiliser uniquement des lettres ASCII et des chiffres, `_`, `.` et `-`. Voir [Outils avec schémas d'entrée invalides](/docs/fr/mcp#tools-with-invalid-input-schemas). + +

+ Il y a un problème avec le modèle sélectionné +

+ +Le nom du modèle configuré n'a pas été reconnu ou votre compte n'a pas accès à celui-ci. À partir de v2.1.160, l'indice de fin, affiché ici dans sa forme interactive, varie selon la surface. + +```text theme={null} +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 interactif** : exécutez `/model` pour choisir parmi les modèles disponibles pour votre compte. +* **Mode non-interactif (`-p`)** : passez `--model` avec un alias ou un ID valide, ou définissez [`ANTHROPIC_MODEL`](/docs/fr/env-vars). Le texte d'erreur affiche `Run --model` sur cette surface. +* **Agent SDK** : le texte d'erreur omet l'indice car le modèle est défini par programmation. Définissez [`model` sur `Options`](/docs/fr/agent-sdk/typescript#options) en TypeScript ou [`ClaudeAgentOptions(model=...)`](/docs/fr/agent-sdk/python#claudeagentoptions) en Python, et gérez l'erreur structurée `model_not_found` pour afficher votre propre nouvelle tentative ou sélecteur de modèle. +* Utilisez un alias comme `sonnet` ou `opus` au lieu d'un ID complet versionné. Les alias se résolvent à une valeur par défaut maintenue afin qu'ils ne deviennent pas obsolètes. Voir [Configuration du modèle](/docs/fr/model-config). +* Si le mauvais modèle continue de revenir dans le CLI, un ID obsolète est défini quelque part. Vérifiez les endroits où vous pouvez définir un modèle dans [l'ordre de priorité](/docs/fr/model-config#setting-your-model) et supprimez la valeur obsolète. +* Un modèle nouvellement lancé peut être disponible sur l'API Anthropic avant qu'Amazon Bedrock, la plateforme d'agent de Google Cloud ou Microsoft Foundry ne l'offre. Si vous avez épinglé un nouvel ID de modèle sur l'un de ces fournisseurs et voyez cette erreur, vérifiez le catalogue de modèles de votre fournisseur pour la disponibilité dans votre région, et gardez la version précédente épinglée jusqu'à ce que la nouvelle apparaisse là. +* Claude Code signale une connexion claude.ai expirée comme [Connexion expirée](#login-expired), pas comme cette erreur. Avant v2.1.206, une connexion expirée qui ne pouvait plus être actualisée échouait chaque modèle avec cette erreur ; exécutez `/login` si vous voyez cela sur une version plus ancienne. +* Pour les déploiements de la plateforme d'agent de Google Cloud, voir [Dépannage de la plateforme d'agent de Google Cloud](/docs/fr/google-vertex-ai#troubleshooting). + +

+ Le modèle n'est pas un ID de modèle reconnu +

+ +La chaîne de modèle que vous avez passée à un changement de modèle n'est pas un alias de modèle, un ID de modèle que cette version de Claude Code connaît, ou un ID qui commence par `claude-`. Les causes habituelles sont une faute de frappe dans l'ID, un nom d'affichage comme `Sonnet 5` où l'ID `claude-sonnet-5` est attendu, ou un alias que seules les versions plus récentes de Claude Code reconnaissent. Claude Code rejette le changement immédiatement. Avant v2.1.200, Claude Code enregistrait la chaîne et échouait à la requête suivante avec [Il y a un problème avec le modèle sélectionné](#theres-an-issue-with-the-selected-model). + +```text theme={null} +Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'? +``` + +L'indice de fin nomme l'alias ou l'ID de modèle le plus proche. Quand rien n'est assez proche, il se lit `Run /model to see available models.` à la place. + +Claude Code produit cette erreur localement au moment où le changement est demandé, avant toute requête API. Elle s'applique quand un modèle est défini via la méthode [Agent SDK](/docs/fr/agent-sdk/typescript) `setModel()`, par une application comme l'[application de bureau](/docs/fr/desktop) qui exécute le CLI Claude Code pour vous, ou quand vous choisissez un modèle à partir d'un appareil connecté via [Contrôle à distance](/docs/fr/remote-control). Avant v2.1.260, la vérification ne couvrait pas les choix de contrôle à distance, donc Claude Code appliquait le choix et la requête suivante échouait avec [Il y a un problème avec le modèle sélectionné](#theres-an-issue-with-the-selected-model). + +**Que faire :** + +* Exécutez `/model` sans argument pour ouvrir le sélecteur et choisir parmi les modèles disponibles pour votre compte, puis passez l'alias ou l'ID affiché là +* Si vous avez utilisé un alias qu'une version plus récente de Claude Code supporte, exécutez `claude update`. Un ID complet qui commence par `claude-` passe cette vérification locale même quand le modèle est plus récent que votre version de Claude Code. Le serveur peut toujours exiger une version minimale pour ce modèle ; voir [Claude Code ne supporte pas ce modèle](#claude-code-does-not-support-this-model). +* Un modèle enregistré avant v2.1.200 n'est pas réparé par cette vérification. Si une valeur obsolète continue de revenir, supprimez-la des emplacements listés sous [Définir votre modèle](/docs/fr/model-config#setting-your-model). +* La vérification s'exécute uniquement sur l'API Anthropic. Sur tout autre fournisseur ou passerelle, y compris un `ANTHROPIC_BASE_URL` personnalisé, le fournisseur définit les noms de modèles, donc Claude Code accepte n'importe quelle chaîne et la transmet. Claude Code peut toujours écrire la [ligne de diagnostic de modèle non reconnu](#unrecognized-model-id-on-a-request) au moment de la requête, sur chaque fournisseur. + +

+ Modèle non trouvé +

+ +Vous avez choisi un modèle avec `/model ` et Claude Code n'a pas pu confirmer qu'un modèle avec ce nom existe. Quand le nom n'est pas un [alias de modèle](/docs/fr/model-config#model-aliases) ou une autre orthographe que Claude Code accepte localement, `/model` le vérifie avec une requête API minimale, et cette erreur est généralement la réponse de votre point de terminaison API. Un nom qui ne peut pas du tout être un ID de modèle, comme un contenant des espaces, obtient le même message. + +```text theme={null} +Model 'claude-opus-9' not found +``` + +Sur les fournisseurs avec des ID de modèle spécifiques au fournisseur, le message peut ajouter une suggestion `Try '...' instead` qui nomme l'ID de votre fournisseur pour un modèle de secours. + +**Que faire :** + +* Exécutez `/model` sans argument et choisissez parmi les modèles disponibles pour votre compte, ou utilisez un [alias de modèle](/docs/fr/model-config#model-aliases) comme `sonnet`, qui se résout à une valeur par défaut maintenue +* Si vous avez tapé un ID complet, vérifiez-le par rapport au catalogue de modèles de votre fournisseur. Un modèle nouvellement lancé peut être disponible sur l'API Anthropic avant que votre fournisseur ou région ne l'offre. +* Avant v2.1.265, `/model` rejetait aussi l'orthographe d'alias `opusplan[1m]` avec cette erreur. Sur ces versions, mettez à jour Claude Code, ou définissez le modèle dans [paramètres](/docs/fr/model-config#setting-your-model) ou avec `--model` à la place. + +

+ Claude Opus n'est pas disponible avec le plan Claude Pro +

+ +Votre plan d'abonnement actif n'inclut pas le modèle que vous avez sélectionné. + +```text theme={null} +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. +``` + +**Que faire :** + +* Exécutez `/model` et sélectionnez un modèle que votre plan inclut +* Si vous avez mis à niveau votre plan récemment et voyez toujours cela, exécutez `/logout` puis `/login`. Le jeton stocké reflète votre plan au moment où vous vous êtes connecté, donc la mise à niveau sur claude.ai ne prend effet dans une session existante que jusqu'à ce que vous vous réauthentifiiez. +* Voir [claude.com/pricing](https://claude.com/pricing) pour savoir quels modèles chaque plan inclut + +

+ Claude Code ne supporte pas ce modèle +

+ +L'API a refusé la requête avec un 400 parce que votre version de Claude Code est en dessous d'un minimum requis. Soit le modèle que vous avez sélectionné nécessite une version plus récente, que le serveur vérifie par modèle, soit la politique de votre organisation en nécessite une. Le 400 porte le code d'erreur `claude_code_version_too_old`, et le message dit quel minimum s'applique. + +```text theme={null} +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. +``` + +Le libellé de la politique organisationnelle se lit : + +```text theme={null} +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. +``` + +**Que faire :** + +* Exécutez `claude update`, ou mettez à jour l'application de bureau Claude, puis démarrez une nouvelle session +* Pour le libellé par modèle, vous pouvez continuer à travailler dans la session actuelle en basculant vers un autre modèle avec `/model` +* Pour le libellé de la politique organisationnelle, mettez à jour avant de continuer + +

+ Le modèle est restreint par les paramètres de votre organisation +

+ +Votre administrateur d'organisation a désactivé ce modèle dans la console d'administration claude.ai, ou il est exclu par une liste d'autorisation [`availableModels`](/docs/fr/model-config#restrict-model-selection) dans les paramètres gérés. Quand le modèle restreint a été défini avec `--model`, `ANTHROPIC_MODEL` ou le paramètre `model`, Claude Code substitue un modèle autorisé et continue. Taper `/model ` pour un modèle restreint est rejeté avec `Run /model to choose a different model.` et la session garde son modèle actuel. L'avis de substitution peut aussi apparaître en milieu de session après qu'un administrateur désactive le modèle sur lequel une session s'exécute dans la console d'administration claude.ai. + +```text theme={null} +Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead. +``` + +Un avis préfixé avec un nom d'agent, de compétence ou de commande signifie que la restriction s'appliquait au [modèle demandé du sous-agent](/docs/fr/sub-agents#choose-a-model) : le sous-agent s'exécute sur le modèle substitué et le modèle de votre session est inchangé. Avant v2.1.223, Claude Code affichait l'avis uniquement pour les sous-agents lancés avec l'outil Agent. + +Claude Code traite un alias de famille de modèles, l'un de `opus`, `sonnet`, `haiku` ou `fable`, comme une demande pour cette famille plutôt que pour sa version la plus récente. Sur l'API Anthropic et sur [Claude Platform on AWS](/docs/fr/claude-platform-on-aws), un alias de famille restreint se résout à la version la plus récente de la famille que votre organisation et la liste d'autorisation `availableModels` permettent, et l'avis de substitution nomme cette version. Claude Code rejette `/model ` uniquement quand chaque version de la famille est restreinte. Avant v2.1.205, un alias de famille était substitué ou rejeté en fonction de sa version la plus récente seule, même quand une version plus ancienne de la même famille était autorisée. + +**Que faire :** + +* Exécutez `/model` pour choisir parmi les modèles que votre organisation autorise. Les modèles restreints sont masqués du sélecteur. +* Si le modèle restreint a été défini dans `--model`, `ANTHROPIC_MODEL`, le champ `model` d'un fichier de paramètres, ou le frontmatter `model` d'un [sous-agent](/docs/fr/sub-agents#choose-a-model), d'une compétence ou d'une commande, supprimez ou mettez à jour cette valeur afin que l'avis ne se reproduise pas +* Si vous avez besoin d'accès au modèle restreint, demandez à votre administrateur d'organisation de l'activer. Voir [Restrictions de modèle organisationnel](/docs/fr/model-config#organization-model-restrictions). + +

+ Le changement de modèle a été bloqué par un hook PreModelSwitch +

+ +Un hook [PreModelSwitch](/docs/fr/hooks#premodelswitch) n'a pas approuvé le changement de modèle que vous ou un client avez demandé, donc la session garde son modèle actuel. Quand le changement provenait d'un hôte [Agent SDK](/docs/fr/agent-sdk/overview) ou [Contrôle à distance](/docs/fr/remote-control) plutôt que d'une commande que vous avez tapée, le message se lit `Model switch blocked by a PreModelSwitch hook` sans nommer le modèle cible. + +```text theme={null} +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 le deux-points dit ce qui a refusé le changement : + +* **Une raison qu'un hook a écrite** : un hook PreModelSwitch a fourni cette raison quand il a [refusé le changement ou demandé une confirmation](/docs/fr/hooks#premodelswitch-decision-control). Adressez ce qu'il demande, ou choisissez un modèle que vos hooks autorisent. +* **`PreModelSwitch hook did not respond before its timeout`** : un hook qui ne répond pas avant son [délai d'expiration](/docs/fr/hooks#timeouts) bloque le changement. Corrigez la commande qui pend ou augmentez le `timeout` de ce hook, puis changez à nouveau. +* **`confirmation required, and this session cannot ask`** : un hook a répondu `ask` sans raison, et une demande de contrôle n'a aucun moyen d'afficher l'invite de confirmation. Un changement `/model` dans une exécution [`-p`](/docs/fr/headless) signale la même condition avec `(run /model interactively to confirm)` après la raison. Effectuez le changement à partir d'une session interactive, ou changez la décision du hook pour ce modèle. +* **`so organization-managed PreModelSwitch hooks could not be checked`** : Claude Code n'a pas pu dire quels hooks PreModelSwitch vos [plugins gérés](/docs/fr/settings-reference#enabledplugins) d'organisation livrent, par exemple parce qu'un plugin géré n'a pas pu se charger. L'un de ces hooks pourrait bloquer le changement, donc Claude Code refuse plutôt que d'appliquer le changement non vérifié. Le début de la raison nomme ce qui a échoué. Claude Code re-vérifie à chaque tentative de changement, donc une défaillance qui a depuis été effacée cesse de bloquer ; si elle continue d'échouer, exécutez `claude --debug` et changez à nouveau pour capturer les détails, puis corrigez le plugin ou demandez à votre administrateur de le corriger. +* **`a PreModelSwitch hook failed before answering`** ou **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`** : l'exécution du hook s'est terminée sans verdict, et Claude Code ne traite pas cela comme une approbation. Exécutez `claude --debug` pour voir ce qui a échoué, puis changez à nouveau. + +Avant v2.1.260, le refus du plugin géré se lisait `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. Claude Code a réessayé le chargement du plugin une fois puis a refusé les changements ultérieurs dans la session, même quand votre organisation ne gérait aucun plugin. Redémarrez la session pour exécuter le chargement du plugin à nouveau sur ces versions. + +

+ Impossible de l'enregistrer comme valeur par défaut +

+ +Vous avez choisi un modèle à enregistrer comme valeur par défaut, par exemple avec `/model ` ou `Entrée` dans le sélecteur `/model`, et Claude Code n'a pas pu écrire le choix dans votre fichier de paramètres utilisateur, `~/.claude/settings.json`. Le changement lui-même s'est appliqué, donc la session actuelle s'exécute 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. + +```text theme={null} +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 dit ce qui a échoué : + +* **`can't be written ()`** : l'écriture a échoué avec le code d'erreur du système d'exploitation entre parenthèses, comme `EROFS` quand le fichier, ou le fichier auquel il se lie, se trouve sur un système de fichiers qui refuse les écritures. Rendez le fichier inscriptible et changez à nouveau. Si un autre outil génère le fichier, définissez la clé `model` dans cet outil à la place ; voir [Un changement que vous avez fait dans Claude Code est perdu dans les nouvelles sessions](/docs/fr/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions). +* **`isn't valid JSON`** : le fichier sur le disque ne s'analyse pas, et Claude Code le laisse intact plutôt que de remplacer le contenu qu'il ne peut pas relire. Corrigez l'erreur de syntaxe, puis changez à nouveau ; voir [Corriger un fichier de paramètres cassé](/docs/fr/settings#fix-a-broken-settings-file). + +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'avait pas terminé après trois secondes. Elle continue en arrière-plan, donc la valeur par défaut peut toujours être enregistrée ; vérifiez quel modèle votre session suivante démarre, ou exécutez `/model ` à nouveau. + +Avant v2.1.265, l'avis disait que le modèle était `saved as your default for new sessions` même quand l'écriture a échoué. + +

+ thinking.type.enabled n'est pas supporté pour ce modèle +

+ +Votre version de Claude Code est plus ancienne que le minimum pour le modèle sélectionné. Le CLI a envoyé une configuration de réflexion que le modèle n'accepte plus. + +```text theme={null} +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 update` et redémarrez Claude Code. Opus 4.7 nécessite v2.1.111 ou ultérieur. Opus 4.8 nécessite v2.1.154 ou ultérieur. Sonnet 5 nécessite v2.1.197 ou ultérieur. Opus 5 nécessite v2.1.219 ou ultérieur. Opus 5.5 nécessite v2.1.280 ou ultérieur +* Si vous ne pouvez pas mettre à jour, exécutez `/model` et sélectionnez Opus 4.6 ou Sonnet 4.6 à la place +* Si vous rencontrez cela dans l'[Agent SDK](/docs/fr/agent-sdk/overview), mettez à jour le package SDK à la place. Opus 4.8 nécessite TypeScript SDK v0.3.154 ou ultérieur et Python SDK v0.2.88 ou ultérieur. Sonnet 5 nécessite TypeScript SDK v0.3.197 ou ultérieur. Opus 5 nécessite TypeScript SDK v0.3.219 ou ultérieur. Opus 5.5 nécessite TypeScript SDK v0.3.280 ou ultérieur + +

+ L'effort n'est pas disponible avec la réflexion désactivée +

+ +Vous avez désactivé la [réflexion étendue](/docs/fr/model-config#extended-thinking) et avez exécuté à un [niveau d'effort](/docs/fr/model-config#adjust-effort-level) au-dessus de `high`. Le modèle n'accepte pas cette combinaison, donc l'API a rejeté la requête. + +```text theme={null} +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) +``` + +**Que faire :** + +* [Abaissez le niveau d'effort](/docs/fr/model-config#set-the-effort-level) à `high` ou en dessous. +* Réactivez la réflexion, par exemple en désactivant [`MAX_THINKING_TOKENS`](/docs/fr/env-vars) ou en supprimant [`"alwaysThinkingEnabled": false`](/docs/fr/settings-reference#alwaysthinkingenabled) de vos paramètres. + +Avant v2.1.242, Claude Code affichait le message propre de 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 v2.1.251, Claude Code envoyait la requête au niveau d'effort que vous avez défini, donc Opus 5 rejetait chaque requête au-dessus de `high` avec la réflexion désactivée. Claude Code envoie maintenant l'effort `high` à la place aux modèles qu'il sait rejeter la combinaison, comme Opus 5, donc sur v2.1.251 ou ultérieur cette erreur vous atteint uniquement à partir d'un modèle que Claude Code ne sait pas rejeter. + +

+ Le budget de réflexion dépasse la limite de sortie +

+ +Le budget de réflexion étendue configuré dépasse la longueur de réponse maximale, donc il n'y a pas de place pour la réponse réelle. + +```text theme={null} +API Error: 400 ... max_tokens must be greater than thinking.budget_tokens +``` + +Claude Code ajuste ces valeurs automatiquement sur l'API Anthropic. Vous voyez généralement cette erreur sur Amazon Bedrock ou la plateforme d'agent de Google Cloud quand [`MAX_THINKING_TOKENS`](/docs/fr/env-vars) est défini plus haut que la limite de sortie du fournisseur, ou quand le mode plan augmente le budget de réflexion. + +**Que faire :** + +* Abaissez `MAX_THINKING_TOKENS`, ou augmentez [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/fr/env-vars) au-dessus du budget de réflexion +* Voir [Réflexion étendue](/docs/fr/model-config#extended-thinking) pour la façon dont le budget interagit avec la longueur de sortie + +

+ Décalage de bloc d'utilisation d'outil ou de réflexion +

+ +L'historique de conversation a atteint l'API dans un état incohérent, généralement après qu'un appel d'outil ait été interrompu ou qu'un tour ait été édité en milieu de flux. + +```text theme={null} +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 +``` + +Tous les variantes signifient la même chose : la séquence de blocs `tool_use`, `tool_result` et `thinking` dans l'historique ne correspond plus à ce que l'API attend. + +**Que faire :** + +* Si vous utilisez Opus 4.7 ou Opus 4.8, exécutez d'abord `claude update`. Les versions antérieures à v2.1.156 peuvent déclencher cette erreur lors de l'utilisation normale d'outils, et `/rewind` ne la supprime pas. +* Exécutez `/rewind`, ou appuyez deux fois sur Échap, pour revenir à un point de contrôle avant le tour corrompu et continuer à partir de là. Voir [Points de contrôle](/docs/fr/checkpointing) pour la façon dont les points de contrôle sont créés et restaurés. + +

+ Contenu d'outil non supporté supprimé +

+ +Quand 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 où le contenu supprimé s'asseyait entre deux blocs de réflexion : + +```text theme={null} +[Unsupported tool content removed] +``` + +Un tel contenu atteint un fichier de session quand quelque chose d'autre que l'API Anthropic a répondu dans le format de l'API, généralement un proxy tiers défini via [`ANTHROPIC_BASE_URL`](/docs/fr/env-vars) qui traduit les appels d'outils d'un autre fournisseur. Claude Code le supprime uniquement quand la session se connecte directement à l'API Anthropic, et charge l'historique enregistré tel qu'il est quand la session s'exécute via un proxy ou sur un autre fournisseur. Avant 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 comme `messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ...`. + +**Que faire :** + +* Aucune action nécessaire quand vous voyez la ligne d'espace réservé. La session continue sans le contenu supprimé. +* Si chaque tour d'une session reprise échoue avec l'erreur 400 à la place, exécutez `claude update` et reprenez la session à nouveau. Les versions antérieures à v2.1.246 ne suppriment pas le contenu. + +

+ Refus de la politique d'utilisation +

+ +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](https://www.anthropic.com/legal/aup). Le message inclut un ID de requête que vous pouvez citer au support si vous pensez que le refus est incorrect. + +```text theme={null} +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 nomme le modèle qui a refusé, ou `Claude` quand aucun modèle n'est enregistré. + +La vérification évalue la conversation complète, pas seulement votre invite la plus récente, donc envoyer un nouveau message dans la même session réactive généralement le même refus. La même chose s'applique après la sortie et la réouverture de la session avec `--continue` ou `--resume`, puisque la transcription sur le disque contient toujours le contenu déclencheur. Sur [Amazon Bedrock](/docs/fr/amazon-bedrock), [la plateforme d'agent de Google Cloud](/docs/fr/google-vertex-ai) et [Microsoft Foundry](/docs/fr/microsoft-foundry), ce message couvre aussi les requêtes que les mesures de sécurité du modèle ont signalées comme un sujet de cybersécurité. Voir [Les mesures de sécurité ont signalé un sujet de cybersécurité](#safety-measures-flagged-a-cybersecurity-topic). + +Avant v2.1.219, le message se lisait `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 Échap ou exécutez `/rewind` pour revenir à un point de contrôle avant le tour qui a déclenché le refus, puis reformulez ou prenez une approche différente. Voir [Points de contrôle](/docs/fr/checkpointing). +* Si vous ne pouvez pas identifier quel tour l'a causé, exécutez `/clear` pour démarrer une conversation nouvelle dans le même projet. Votre conversation précédente est préservée sur le disque et reste disponible dans `/resume`. +* En [mode non-interactif](/docs/fr/headless) (`-p`), où la rembobinage est indisponible, réessayez avec une invite reformulée dans une nouvelle session sans `--continue`. Les vérifications de politique varient selon le modèle, donc basculer vers un modèle différent avec `--model` peut aussi résoudre le refus dans certains cas. + +

+ Les mesures de sécurité ont signalé un sujet de cybersécurité +

+ +Les mesures de sécurité du modèle ont signalé le contenu de la conversation comme un sujet de cybersécurité. Le message nomme le modèle qui a signalé la requête : + +```text theme={null} +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. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude +``` + +Le message se lie au [Programme de vérification de cybersécurité](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), qui accorde l'accès pour le travail de cybersécurité légitime. Sur Opus 5.5, qui nécessite v2.1.280 ou ultérieur, le message s'ouvre avec `Opus 5.5's safeguards flagged this session` à la place. Quand la catégorie signalée a un modèle de secours disponible, Claude Code [bascule les modèles](/docs/fr/model-config#automatic-model-fallback) plutôt que d'afficher cette erreur. + +Sur [Amazon Bedrock](/docs/fr/amazon-bedrock), [la plateforme d'agent de Google Cloud](/docs/fr/google-vertex-ai) et [Microsoft Foundry](/docs/fr/microsoft-foundry), un drapeau de cybersécurité produit le message de [refus de la politique d'utilisation](#usage-policy-refusal) à la place. + +La protection elle-même est côté serveur et antérieure à v2.1.203 ; les versions client depuis lors ont changé uniquement le libellé du message. +De v2.1.203 à v2.1.218, le message se lisait ` 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 du centre d'aide, et les sessions interactives ajoutaient `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.` +Avant v2.1.203, il se lisait `'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 de formulaire d'exemption. + +**Que faire :** + +* Si votre travail nécessite ce contenu, postulez pour l'accès via le [Programme de vérification de cybersécurité](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude) +* Si votre requête n'était pas sur un sujet de cybersécurité, exécutez `/feedback` pour signaler le faux positif +* Pour continuer à travailler dans la même session, appuyez deux fois sur Échap ou exécutez `/rewind` pour revenir à un point de contrôle avant le tour qui a déclenché le drapeau, puis prenez une approche différente. Voir [Points de contrôle](/docs/fr/checkpointing). + +

+ Erreurs d'installation +

+ +Ces erreurs apparaissent lors de l'installation ou de la mise à jour de Claude Code, à partir du [script d'installation](/docs/fr/setup#install-claude-code), `claude install`, ou `claude update`. Pour les problèmes de `command not found`, PATH, permission et TLS lors de la configuration, consultez [Dépannage de l'installation et de la connexion](/docs/fr/troubleshoot-install). + +

+ L'installation a été interrompue avant de pouvoir se terminer +

+ +Le script d'installation signale quand l'étape `claude install` est terminée par un signal. Sur Linux, le code de sortie 137 signifie que le processus a reçu SIGKILL, et sur un hôte avec peu de mémoire, c'est généralement le tueur de mémoire insuffisante (OOM) du noyau. Le script affiche cette explication et se termine avec le code 137 : + +```text theme={null} +Installation was killed before it could finish (exit code 137). This usually means the system ran out of memory. +Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again. +``` + +Pour tout autre signal fatal, et pour le code de sortie 137 sur macOS, le script affiche `Installation was killed before it could finish (exit code )` avec le code de sortie réel et omet l'explication sur la mémoire insuffisante. Le message provient du script d'installation que macOS et Linux utilisent, qui couvre également les installations à l'intérieur de WSL ; les scripts d'installation Windows natifs ne l'affichent jamais. Avant la v2.1.200, le script se terminait avec seulement la ligne `Killed` brute du shell. + +**Que faire :** + +* Arrêtez les autres processus pour libérer de la mémoire, puis relancez le programme d'installation +* Ajoutez de l'espace d'échange ou passez à une instance plus grande. Consultez [Installation interrompue sur les serveurs Linux avec peu de mémoire](/docs/fr/troubleshoot-install#install-killed-on-low-memory-linux-servers) pour les commandes de fichier d'échange. + +

+ La connexion s'est interrompue lors du téléchargement de la mise à jour +

+ +La connexion au serveur de téléchargement s'est fermée pendant que `claude install`, `claude update`, ou le [programme de mise à jour automatique](/docs/fr/setup#auto-updates) téléchargeait le binaire Claude Code, et les tentatives de reconnexion n'ont pas fonctionné. Claude Code réessaie le téléchargement quand la connexion s'interrompt, le transfert s'arrête, ou le fichier téléchargé échoue sa somme de contrôle, jusqu'à trois tentatives au total. Une erreur HTTP complète, comme un 404, n'est pas réessayée car le serveur a déjà répondu. Avant la v2.1.202, une seule connexion interrompue échouait le téléchargement immédiatement avec l'erreur brute `aborted` au lieu de réessayer. + +```text theme={null} +The connection dropped while downloading the update (attempt 3/3: aborted). Check your network — proxies sometimes cut off large downloads. +``` + +Le texte entre parenthèses indique quelle tentative a échoué et l'erreur réseau sous-jacente. `claude update` précède le message avec `Error: Failed to install native update` sur stderr. + +Un téléchargement qui reste connecté mais ne se termine pas dans les 10 minutes échoue avec `Download timed out: exceeded the total deadline` à la place. Claude Code ne réessaie pas un téléchargement qui a expiré, car une connexion trop lente pour se terminer dans le délai imparti ne se terminera pas lors d'une tentative immédiate non plus. Les étapes ci-dessous s'appliquent aux deux messages. + +La cause habituelle est un proxy ou une passerelle qui ferme un long transfert avant qu'il ne se termine. Le binaire Claude Code est un gros téléchargement, donc une limite de connexion proxy qui n'affecte jamais le trafic API normal peut quand même l'interrompre. + +**Que faire :** + +* Exécutez `claude update` à nouveau. Sur un réseau par ailleurs sain, le téléchargement réussit généralement à la prochaine exécution. Pour le message d'expiration, exécutez-le à nouveau à partir d'un réseau plus rapide ou moins limité. +* Si votre réseau nécessite un proxy, définissez `HTTPS_PROXY` avant d'exécuter le programme d'installation ou `claude update`. Consultez [Vérifier la connectivité réseau](/docs/fr/troubleshoot-install#check-network-connectivity). +* Si un proxy d'entreprise continue de fermer le transfert, demandez à votre équipe réseau d'autoriser le téléchargement complet depuis `downloads.claude.ai`. Consultez [Exigences d'accès réseau](/docs/fr/network-config#network-access-requirements). +* Exécutez `claude doctor` à partir de votre shell pour les diagnostics d'installation + +

+ 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 à l'invite, et de commandes telles que `/security-review` qui rassemblent le contexte en exécutant des commandes shell avant l'exécution de leur invite. Elles proviennent également de `/tui`, qui relance l'interface de ligne de commande. + +

+ Conflit entre --bg et --print +

+ +Ce message nécessite Claude Code v2.1.198 ou version ultérieure. Vous avez combiné `--bg` avec `-p` ou `--print` dans la même invocation `claude`. `--bg` démarre une [session en arrière-plan](/docs/fr/agent-view#from-your-shell) à laquelle vous vous connectez ultérieurement avec `claude agents`, tandis que `--print` s'exécute [de manière non interactive](/docs/fr/headless) et ne démarre jamais la session interactive à laquelle `claude agents` se connecte. Avant la v2.1.198, cette combinaison créait silencieusement une tâche en arrière-plan qui ne pouvait jamais être attachée. + +```text theme={null} +--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 ''`. +``` + +**Que faire :** + +* Supprimez `-p` ou `--print`. `--bg` prend l'invite comme argument positionnel, donc `claude --bg ""` est la commande complète. Voir [Dispatcher de nouveaux agents depuis votre shell](/docs/fr/agent-view#from-your-shell). +* Pour exécuter l'invite de manière non interactive et imprimer le résultat au lieu de créer une session en arrière-plan, supprimez `--bg` et exécutez `claude -p ""` + +

+ Configuration --agents invalide +

+ +La valeur que vous avez transmise à `--agents` est invalide, donc `claude` se termine avec le code 1 au lieu de démarrer la session. Lorsque vous transmettez `--safe-mode`, `--resume`, ou `--continue`, ou définissez [`CLAUDE_CODE_SAFE_MODE`](/docs/fr/env-vars#variables), Claude Code ne vérifie pas la valeur et démarre la session. Avant la v2.1.242, Claude Code démarrait la session de toute façon et omettait les définitions qu'il ne pouvait pas charger. + +```text theme={null} +Error: Invalid --agents configuration: + +``` + +Ce qui suit la première ligne dépend de la façon 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 a deux types de problème, vous ne voyez le second qu'après avoir corrigé le premier : + +1. Lorsque la valeur ne s'analyse pas en JSON, Claude Code imprime une ligne `invalid JSON:` portant le message du parseur JSON lui-même +2. Lorsqu'elle s'analyse mais qu'une définition d'agent ne correspond pas au schéma pour les [sous-agents définis par CLI](/docs/fr/sub-agents#choose-the-subagent-scope), Claude Code imprime une ligne par problème +3. Lorsqu'un nom d'agent commence par `-`, Claude Code imprime `: agent names must not start with '-'` + +Lorsqu'il y a plus de 20 lignes de problème, Claude Code imprime les 20 premières et remplace le reste par `…and N more`. + +**Que faire :** + +* Corrigez chaque problème que le message énumère, puis exécutez la commande à nouveau. Voir [les champs qu'un sous-agent défini par CLI prend](/docs/fr/sub-agents#choose-the-subagent-scope). + +

+ Les sessions cloud ne peuvent pas être créées à partir d'une session --restricted +

+ +Lorsque vous démarrez une session avec [`--restricted`](/docs/fr/cli-reference#cli-flags), Claude Code refuse de créer des [sessions cloud](/docs/fr/claude-code-on-the-web#from-terminal-to-cloud) à partir de celle-ci, car la nouvelle session s'exécuterait en dehors du processus restreint et n'appliquerait pas le mode restreint. Claude Code refuse du côté client, avant de contacter le serveur, donc aucune session cloud n'est créée : + +```text theme={null} +Cloud sessions cannot be created from a --restricted session: they would not enforce it. +``` + +**Que faire :** + +* Exécutez la tâche localement dans la session restreinte +* Si vous contrôlez la façon dont la session a été lancée, démarrez une nouvelle session `claude` sans `--restricted` et créez la session cloud à partir de là + +Avant la v2.1.248, Claude Code n'avait pas d'indicateur `--restricted` ; les versions antérieures rejettent l'indicateur lui-même avec une erreur d'option inconnue. + +

+ Les sessions cloud sont désactivées par la politique de votre organisation +

+ +La politique `allow_remote_sessions` de votre organisation est désactivée, donc les [sessions cloud](/docs/fr/claude-code-on-the-web) et les commandes qui les utilisent ne sont pas disponibles : + +```text theme={null} +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 à partir du terminal](/docs/fr/claude-code-on-the-web#from-terminal-to-cloud) et lorsque vous soumettez une commande qui a besoin de sessions cloud, telle que `/teleport`, `/remote-env`, ou `/web-setup`. Avant la v2.1.268, soumettre l'une de ces commandes renvoyait [`Unknown command`](#unknown-command) à la place. + +Il s'agit d'une politique d'organisation côté serveur, elle ne peut donc pas être remplacée par des paramètres locaux, des variables d'environnement ou des indicateurs CLI. + +Si Claude Code n'a pas encore chargé la politique de votre organisation ou ne peut pas la récupérer, ces commandes répondent `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.` à la place. + +**Que faire :** + +* Demandez à un [Propriétaire](/docs/fr/server-managed-settings#access-control) de votre organisation d'activer les sessions cloud dans les paramètres d'administration Claude Code à [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) +* Si le message indique qu'il n'a pas pu vérifier la politique, vérifiez votre connexion réseau, puis redémarrez Claude Code et réessayez + +

+ La valeur --json-schema n'est pas un schéma JSON valide +

+ +Le schéma que vous avez transmis à [`--json-schema`](/docs/fr/cli-reference#cli-flags) en [mode non interactif](/docs/fr/headless#get-structured-output) a échoué la compilation du schéma JSON, donc `claude` se termine avec le code 1 au lieu d'exécuter l'invite. 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. + +```text theme={null} +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 deuxième deux-points est le diagnostic du validateur et nomme le mot-clé ou l'emplacement qui a échoué. Les schémas qui utilisent le mot-clé `format`, tels que `"format": "email"`, sont valides : Claude Code accepte `format` comme annotation et ne l'applique pas. + +Claude Code exécute deux vérifications avant la compilation du schéma : il rejette une valeur qui n'est pas analysable en JSON avec `Error: --json-schema is not valid JSON`, et un JSON valide qui n'est pas un objet avec `Error: --json-schema must be a JSON object`. + +**Que faire :** + +* Corrigez la partie du schéma que le diagnostic nomme, puis réexécutez la commande +* Si le diagnostic est `schema too large`, réduisez l'imbrication du schéma et la réutilisation de `$ref` +* Voir [Obtenir une sortie structurée](/docs/fr/headless#get-structured-output) pour un schéma et une commande fonctionnels + +

+ Le fichier de paramètres dépasse la limite de 2 Mio +

+ +Le fichier que vous avez transmis à [`--settings`](/docs/fr/cli-reference#cli-flags) est plus grand que 2 Mio, donc `claude` se termine avec le code 1 au démarrage au lieu de le charger. Un fichier de paramètres est un petit document JSON, donc un fichier de cette taille signifie généralement que le chemin pointe vers le mauvais fichier. Avant la v2.1.214, Claude Code lisait le fichier sans vérification de taille, et un fichier de plusieurs gigaoctets ou un fichier de périphérique tel que `/dev/zero` augmentait la mémoire sans limite. + +```text theme={null} +Error: Settings file exceeds the 2MiB limit: /path/to/settings.json +``` + +Claude Code rejette un chemin `--settings` qui n'est pas un fichier régulier de la même manière : un périphérique, FIFO ou socket signale `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` suivi du chemin, et un répertoire signale une raison `EISDIR`. + +**Que faire :** + +* Pointez `--settings` vers un fichier de paramètres JSON régulier inférieur à 2 Mio. Voir [Paramètres](/docs/fr/settings) pour le format. + +

+ Le répertoire courant n'existe plus +

+ +Vous avez démarré `claude` à partir d'un répertoire qui a été supprimé ou déplacé après que votre shell y soit entré, par exemple un worktree ou un répertoire temporaire qu'un autre shell a supprimé. 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 et [non interactif](/docs/fr/headless) également. Avant la v2.1.239, Claude Code s'écrasait avec une source de bundle minifiée et une pile `ENOENT ... uv_cwd` brute sur stderr au lieu de ce message. + +```text theme={null} +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 correction sont les mêmes pour les deux formes. + +Lorsque Claude Code ne peut pas lire le répertoire de travail pour une autre raison, telle qu'un changement de permissions, le message nomme le code d'erreur à la place : `Can't read the current directory (EACCES). Start Claude Code from a different directory.` + +Sur macOS, `EPERM` pour un répertoire dans `~/Desktop`, `~/Documents`, `~/Downloads`, ou iCloud Drive signifie généralement que macOS bloque votre application terminal de ce dossier. D'autres commandes qui lisent ce dossier échouent de la même manière : `ls` là-bas signale `Operation not permitted`, même avec `sudo`. + +**Que faire :** + +* Changez vers un répertoire qui existe, tel que votre répertoire personnel ou de projet, puis exécutez `claude` à nouveau +* Si le répertoire a été recréé au même chemin, votre shell tient toujours le répertoire supprimé. Exécutez `cd "$PWD"` ou quittez et réentrez le répertoire, puis exécutez `claude` à nouveau +* Pour `EPERM` sur macOS, quittez votre application terminal avec Cmd+Q, ouvrez-la à nouveau, retournez à ce dossier, et exécutez `claude`. Si `ls` dans ce dossier échoue toujours, ouvrez **Paramètres système > Confidentialité et sécurité > Fichiers et dossiers**, activez le dossier pour votre application terminal, puis rouvrez le terminal + +

+ Le répertoire n'a pas pu être résolu à un emplacement réel +

+ +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 le répertoire à son emplacement réel. + +Vous avez déjà accès aux fichiers d'un sous-répertoire du répertoire de travail, donc `/add-dir` charge uniquement ses skills, commandes et agents. Avant de les charger, Claude Code vérifie que l'emplacement réel du répertoire, avec tous les 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 : + +```text theme={null} +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. +``` + +**Que faire :** + +* Vérifiez que le chemin nomme un répertoire réel à l'intérieur du répertoire de travail, puis exécutez `/add-dir` à nouveau +* Le message ne change pas votre accès aux fichiers ; il signale uniquement que le contenu `.claude/` du répertoire n'a pas été chargé + +Avant la v2.1.261, ce message apparaissait également pour chaque `/add-dir ` lorsque le répertoire de travail était sur un automontage `/net/`, où Claude Code refuse de résoudre les chemins par conception ; le répertoire était correct et réessayer ne pouvait pas aider. + +

+ Espace de travail non approuvé au démarrage du contrôle à distance +

+ +Vous avez démarré le mode serveur [Contrôle à distance](/docs/fr/remote-control) avec `claude remote-control` ou son alias `claude rc` dans un répertoire que vous n'avez pas approuvé. La commande n'affiche pas elle-même la boîte de dialogue d'approbation de l'espace de travail, elle se termine donc avec le code 1 et nomme la correction : + +```text theme={null} +Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog. +``` + +Dans votre répertoire personnel, le message est différent, car la boîte de dialogue d'approbation de l'espace de travail ne sauvegarde jamais l'approbation pour le répertoire personnel, donc l'accepter là-bas ne peut pas satisfaire cette vérification. Avant la v2.1.214, le répertoire personnel affichait le message ci-dessus, dont les conseils ne peuvent pas réussir là-bas. + +```text theme={null} +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). +``` + +**Que faire :** + +* Exécutez `claude` dans le répertoire, acceptez la [boîte de dialogue d'approbation de l'espace de travail](/docs/fr/permissions#project-allow-rules-and-workspace-trust), puis exécutez `claude remote-control` à nouveau +* Dans votre répertoire personnel, changez vers un répertoire de projet et démarrez le contrôle à distance là-bas + +

+ Non reporté aux sessions que le contrôle à distance démarre +

+ +Vous avez démarré [Contrôle à distance](/docs/fr/remote-control) avec un indicateur global `claude` avant le verbe `remote-control`, un qui restreindrait ou configurerait les sessions que le contrôle à distance démarre, tel que `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools`, ou `--mcp-config`. Un indicateur placé avant le verbe n'atteint jamais ces sessions. Claude Code refuse de démarrer à la place, en nommant l'indicateur : + +```text theme={null} +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 indicateurs globaux qui sont inoffensifs à supprimer, tels que `--verbose`, `--model`, ou un `--session-id` ou `--plugin-dir` injecté par wrapper : il les ignore et le contrôle à distance démarre. + +Claude Code refuse également de démarrer pour un indicateur global qu'il ne reconnaît pas encore comme inoffensif, donc un indicateur ajouté dans une version plus récente peut apparaître dans ce message jusqu'à ce qu'une version ultérieure le marque comme inoffensif. + +**Que faire :** + +* Supprimez l'indicateur avant le verbe et transmettez [les options propres du contrôle à distance](/docs/fr/remote-control#start-a-remote-control-session) après ; `claude remote-control --help` les énumère +* Lorsque l'indicateur refusé est `--permission-mode`, exécutez `claude remote-control --permission-mode ` pour définir le mode de permission pour les sessions que le contrôle à distance démarre + +Avant la v2.1.248, `claude remote-control` n'acceptait pas ses propres indicateurs lorsqu'un indicateur global venait en premier, et la commande échouait avec une erreur d'option inconnue. + +

+ claude import n'est pas encore disponible dans cette version +

+ +Vous avez exécuté [`claude import`](/docs/fr/cli-reference#cli-commands), et Claude Code a trouvé le flux d'importation désactivé, donc la commande se termine avec le code 1 au lieu de démarrer l'importation. Avant la v2.1.222, une version avec le flux d'importation désactivé traitait `import` comme une invite et démarrait une session interactive au lieu d'imprimer ce message. + +```text theme={null} +`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 indicateur de fonctionnalité qu'il récupère auprès d'Anthropic et met en cache sur le disque. Ce message signifie que la valeur mise 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é l'indicateur. Le premier `claude import` peut imprimer ceci même lorsque la fonctionnalité vous est disponible. +* Vous utilisez Claude Code via Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou Claude Platform sur AWS, ou via une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway#availability-and-limitations). Claude Code ne récupère pas les indicateurs de fonctionnalité dans ces sessions, donc `claude import` reste indisponible. +* Vous avez défini `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK`, ou [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/fr/env-vars), qui désactivent la récupération des indicateurs de fonctionnalité, donc `claude import` reste indisponible. + +**Que faire :** + +* Sur une installation nouvelle, démarrez `claude`, attendez que la session se charge, quittez, et exécutez `claude import` à nouveau +* Où la récupération des indicateurs de fonctionnalité reste désactivée, configurez la configuration vous-même : ajoutez des serveurs MCP avec [`claude mcp add`](/docs/fr/mcp#installing-mcp-servers), et créez les [fichiers `CLAUDE.md`](/docs/fr/memory#how-claude-md-files-load), [skills et commandes](/docs/fr/skills#where-skills-live), et [sous-agents](/docs/fr/sub-agents#choose-the-subagent-scope) que vous souhaitez reporter. Le message nomme également `~/.claude/settings.json`. De la configuration que `claude import` reporte, ce fichier ne contient que le [mode de permission](/docs/fr/settings-reference#permission-settings) ; Claude Code ne lit pas les serveurs MCP à partir de celui-ci. + +

+ Impossible de lire la configuration Claude Code +

+ +Vous avez exécuté [`claude import`](/docs/fr/cli-reference#cli-commands) tandis que Claude Code ne pouvait pas analyser `~/.claude.json`, le fichier où il stocke votre connexion 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 que la session interactive affiche, elle se termine donc 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 gérait le fichier. + +```text theme={null} +Could not read Claude Code config — run `claude` with no arguments to recover it. +``` + +**Que faire :** + +* Exécutez `claude` sans arguments. Claude Code détecte le fichier invalide et propose de le réinitialiser. Puis exécutez `claude import` à nouveau. +* Pour conserver les modifications manuelles que vous avez apportées, corrigez la syntaxe JSON dans `~/.claude.json` dans un éditeur à la place, puis réexécutez `claude import` + +

+ Impossible d'importer un serveur depuis 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 toujours les autres serveurs sélectionnés et imprime une ligne par serveur qu'elle n'a pas pu ajouter. Avant la v2.1.205, le premier serveur qui a échoué a arrêté l'importation et aucun des serveurs sélectionnés n'a été ajouté. + +```text theme={null} +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 les caractères dans les noms de serveur, tels que les espaces et les points, que `claude mcp` restreint aux lettres, chiffres, traits d'union et traits de soulignement. D'autres raisons incluent une configuration de serveur qui échoue la validation et un serveur bloqué par la [politique MCP](/docs/fr/managed-mcp) de votre organisation. + +**Que faire :** + +* Renommez le serveur dans `claude_desktop_config.json` pour utiliser uniquement des lettres, des chiffres, des traits d'union et des traits de soulignement, puis exécutez `claude mcp add-from-claude-desktop` à nouveau +* Ajoutez ce serveur directement avec `claude mcp add` ou `claude mcp add-json` sous un nom valide. Voir [Importer les serveurs MCP depuis Claude Desktop](/docs/fr/mcp#import-mcp-servers-from-claude-desktop). + +

+ Impossible d'ajouter un serveur MCP à la portée gérée +

+ +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`](/docs/fr/settings-reference#managedmcpservers). Claude Code les lit à partir des paramètres gérés uniquement, donc la commande ne peut pas écrire un serveur dans cette portée. + +```text theme={null} +Cannot add MCP server to scope: managed +``` + +**Que faire :** + +* Ajoutez le serveur à une portée dans laquelle vous pouvez écrire : `local`, `user`, ou `project`. Sans `--scope`, la commande utilise `local`. Voir [Portées d'installation MCP](/docs/fr/mcp#mcp-installation-scopes) +* Pour fournir le serveur à chaque utilisateur de votre organisation, ajoutez-le à [`managedMcpServers`](/docs/fr/settings-reference#managedmcpservers) dans les paramètres gérés que vous déployez + +

+ Impossible de lire .mcp.json +

+ +Une commande qui lit le [`.mcp.json`](/docs/fr/mcp#project-scope) du projet, telle que `claude mcp add` ou `claude mcp add-json` avec `--scope project`, ou `claude mcp remove`, a trouvé que le fichier dans votre répertoire courant n'est pas un fichier régulier ou est plus grand que 2 Mio, elle se termine donc avec cette erreur au lieu de lire le fichier. + +```text theme={null} +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, un FIFO à `.mcp.json` laissait la commande attendre indéfiniment sans sortie, et un lien symbolique vers un fichier de périphérique tel que `/dev/zero` augmentait la mémoire jusqu'à ce que le processus soit tué. + +**Que faire :** + +* Vérifiez ce qui se trouve à `.mcp.json` dans votre répertoire courant. Remplacez-le par un fichier JSON ordinaire au [format de portée de projet](/docs/fr/mcp#project-scope), ou supprimez-le, puis exécutez la commande à nouveau. + +

+ Le serveur est hébergé par Anthropic et ne supporte pas OAuth local +

+ +Vous avez démarré 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 à partir du panneau `/mcp` et de `claude mcp login`, car [leur connexion fonctionne uniquement via claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai). + +```text theme={null} +"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. +``` + +Claude Code correspond à ces hôtes par URL, donc le message apparaît lorsqu'un serveur que vous avez ajouté avec `claude mcp add` ou dans `.mcp.json` pointe vers l'un d'eux. + +**Que faire :** + +* Supprimez votre entrée avec `claude mcp remove `, afin qu'elle ne puisse pas masquer le connecteur claude.ai à la même URL +* Après l'avoir supprimée, connectez le service à [claude.ai/customize/connectors](https://claude.ai/customize/connectors), tout en étant connecté au compte que vous utilisez dans Claude Code. Une fois connecté, [le connecteur apparaît dans Claude Code automatiquement](/docs/fr/mcp#use-mcp-servers-from-claude-ai) si votre méthode d'authentification active est une connexion d'abonnement claude.ai + +

+ Le serveur a rejeté l'en-tête Authorization créé par le headersHelper configuré +

+ +Un serveur MCP dont le [`headersHelper`](/docs/fr/mcp#use-dynamic-headers-for-custom-authentication) fournit l'en-tête `Authorization` a répondu à la connexion avec HTTP 401 ou 403, donc Claude Code signale la connexion comme échouée. Parce que le helper fournit l'en-tête `Authorization`, Claude Code [ne revient pas à OAuth](/docs/fr/mcp#authenticate-with-remote-mcp-servers) pour le serveur : + +```text theme={null} +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, tel qu'une course de rotation de jeton, peut réussir avec une nouvelle credential. + +**Que faire :** + +* Exécutez la commande `headersHelper` vous-même de la façon que Claude Code l'exécute : à partir du [répertoire où Claude Code l'exécute](/docs/fr/mcp#where-the-helper-runs), avec les [variables d'environnement que Claude Code définit pour elle](/docs/fr/mcp#use-dynamic-headers-for-custom-authentication), et sans les [variables de credential que Claude Code supprime](/docs/fr/mcp#which-variables-a-helper-can-read) pour un serveur à partir d'un `.mcp.json` de projet, d'un plugin, ou d'un fichier d'agent de projet. Vérifiez qu'elle imprime une valeur `Authorization` que le point de terminaison du serveur accepte +* Après avoir corrigé le helper ou sa source de credential, sélectionnez le serveur dans `/mcp` et choisissez **Reconnect** + +Avant la v2.1.248, Claude Code exécutait 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 la credential rejetée. + +

+ Outil d'invite de permission MCP non trouvé +

+ +L'outil que vous avez transmis à [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags) ne figurait pas parmi les outils MCP connectés lorsque l'exécution a d'abord eu besoin d'une décision de permission, soit parce que son serveur ne s'est jamais connecté, soit parce qu'aucun serveur connecté n'expose un outil portant ce nom. Claude Code envoie toujours votre invite : l'exécution [non interactive](/docs/fr/headless) se termine avec cette erreur, et le code de sortie 1, au premier appel d'outil qui a besoin d'approbation, donc elle ne produit aucune réponse même si la demande a été faite. Avant la première invite, Claude Code attend jusqu'au délai d'expiration de la connexion par serveur de 30 secondes défini par [`MCP_TIMEOUT`](/docs/fr/env-vars) pour que ce serveur se connecte. Avant la v2.1.206, le démarrage n'attendait pas que le serveur finisse de se connecter, donc un serveur qui démarre lentement mais sain produisait également cette erreur. + +```text theme={null} +Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none +``` + +La liste après `Available MCP tools:` nomme les outils MCP qui étaient connectés lorsque l'attente s'est terminée. + +**Que faire :** + +* Vérifiez que le serveur démarre et reste connecté : exécutez `claude mcp list` dans 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____` que le serveur expose +* Si le serveur a besoin de plus de 30 secondes pour démarrer, augmentez [`MCP_TIMEOUT`](/docs/fr/env-vars) + +

+ Le port de rappel OAuth est déjà en cours d'utilisation +

+ +Lorsque vous vous connectez à un serveur MCP distant avec OAuth, Claude Code démarre un écouteur local pour recevoir le rappel de connexion. Si le port dont cet écouteur a besoin est détenu par un autre processus, la connexion échoue avec ce message. Cela se produit principalement avec un [port de rappel fixe](/docs/fr/mcp#use-a-fixed-oauth-callback-port) défini via la variable [`MCP_OAUTH_CALLBACK_PORT`](/docs/fr/env-vars) ou `--callback-port`, car sans celui-ci Claude Code choisit un port disponible. + +```text theme={null} +OAuth callback port is already in use — another process may be holding it. Run `lsof -ti: -sTCP:LISTEN` to find it. +``` + +Sur Windows, la commande suggérée est `netstat -ano | findstr :` à la place. + +**Que faire :** + +* Exécutez la commande du message pour trouver le processus qui détient le port, et arrêtez-le ou attendez qu'il se termine +* Si un autre programme a besoin de ce port de manière permanente, enregistrez un URI de redirection différent auprès du serveur et définissez son port avec `MCP_OAUTH_CALLBACK_PORT` ou `--callback-port`, selon celui que vous utilisez +* Puis démarrez la connexion à nouveau, par exemple en sélectionnant le serveur dans `/mcp` + +

+ Aucun port disponible pour la redirection OAuth +

+ +Lorsque vous vous connectez à un serveur MCP distant avec [OAuth](/docs/fr/mcp#authenticate-with-remote-mcp-servers), Claude Code démarre un écouteur local pour recevoir le rappel de connexion. La connexion échoue avec ce message lorsque Claude Code ne peut pas lier un port local pour cela. Quelque chose sur la machine empêche d'écouter sur `127.0.0.1`, par exemple un logiciel de sécurité ou une politique de sandbox qui refuse les écouteurs locaux. + +```text theme={null} +No available ports for OAuth redirect +``` + +Avant la v2.1.268, Claude Code ne revenait pas à un port assigné par le système d'exploitation, donc le message apparaissait également lorsque seuls ses ports auto-sélectionnés ne pouvaient pas être liés. Cela peut se produire sur les hôtes Windows où Hyper-V réserve des plages de ports qui couvrent les ports que Claude Code choisit. + +**Que faire :** + +* Vérifiez si un logiciel de sécurité ou une politique de sandbox bloque les processus d'écoute sur `127.0.0.1`, et autorisez Claude Code à lier un port local +* Puis démarrez la connexion à nouveau, par exemple en sélectionnant le serveur dans `/mcp` + +

+ /security-review échoue sans origin/HEAD +

+ +[`/security-review`](/docs/fr/commands#all-commands) construit son contexte d'examen en comparant votre branche avec `origin/HEAD`, la référence locale qui enregistre quelle branche est la branche par défaut sur votre télécommande `origin`. Lorsque cette référence n'existe pas, les commandes git qui rassemblent la comparaison échouent et l'examen s'arrête avant de commencer. + +```text theme={null} +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 [...] -- [...]' +``` + +Le message peut citer `git log` ou une `git diff` différente à la place. Git crée `origin/HEAD` uniquement lorsque la télécommande annonce une branche par défaut et que votre refspec de récupération la couvre, ce qu'un `git clone` complet d'une télécommande avec des commits fait. La référence manque dans ces configurations : + +* Un checkout à branche unique ou CI, qui récupère un refspec trop étroit +* Une télécommande dont le HEAD côté serveur pointe vers une branche que personne n'a poussée +* Un référentiel sans télécommande `origin`, ou une que vous n'avez jamais récupérée + +Claude Code affiche la même erreur pour tout skill qui [injecte du contexte dynamique](/docs/fr/skills#when-an-injected-command-fails), et une commande injectée échouée abandonne l'invocation de ce skill. Deux chaînes sœurs se déclenchent avant 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. [Les vérifications de permission sur les commandes injectées](/docs/fr/skills#permission-checks-on-injected-commands) couvrent quels résultats abandonnent dans chaque mode de permission et comment pré-approuver une commande avec `allowed-tools` +* ``Skill requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: le frontmatter du skill exige bash sur une machine sans celui-ci. Installez Git pour Windows ou changez le frontmatter en `shell: powershell`. Voir [Comment les commandes injectées s'exécutent](/docs/fr/skills#how-injected-commands-run) + +**Que faire :** + +* Créez la référence en nommant la branche par défaut de votre télécommande : `git remote set-head origin `. Cela fonctionne chaque fois que la référence de suivi locale `origin/` existe. Si ce n'est pas le cas, comme dans les clones à branche unique, récupérez d'abord la branche : exécutez `git remote set-branches --add origin `, puis `git fetch origin`, puis réexécutez la commande set-head. Réexécutez `/security-review`. +* Si vous préférez ne pas nommer la branche, exécutez `git fetch origin` puis `git remote set-head origin --auto`, qui demande à la télécommande quelle branche est sa branche par défaut. Elle échoue avec `error: Cannot determine remote HEAD` lorsque la télécommande n'annonce aucune branche par défaut, car elle est vide ou son HEAD pointe vers une branche que personne n'a poussée ; nommez la branche explicitement à la place. Elle échoue avec `error: Not a valid ref` lorsque votre clone ne récupère pas cette branche ; élargissez le refspec comme ci-dessus d'abord. +* Si le référentiel n'a pas de télécommande, ajoutez-en une avec `git remote add origin ` et récupérez avant de créer la référence. Si la télécommande est vide, poussez votre branche d'abord avec `git push -u origin HEAD` et nommez cette branche dans la commande set-head ; `origin/HEAD` pointe alors vers la branche que vous venez de pousser, donc `/security-review` voit une comparaison vide jusqu'à ce que la branche diverge de celle-ci. + +

+ L'entrée doit être fournie lors de l'utilisation de --print +

+ +Le `claude` nu a besoin que stdout soit un terminal pour démarrer l'interface utilisateur interactive. Lorsque stdout est redirigé, ou que la console n'est pas un vrai terminal, tel que PowerShell ISE et certains volets de sortie IDE, `claude` s'exécute [de manière non interactive](/docs/fr/headless) à la place. C'est le même mode que `claude -p`, qui nécessite une invite, donc le message nomme `--print` même si vous n'avez pas transmis l'indicateur. Transmettre `-p`/`--print` sans invite et rien canalisé sur stdin produit la même erreur n'importe où. + +```text theme={null} +Error: Input must be provided either through stdin or as a prompt argument when using --print +``` + +**Que faire :** + +* Pour une utilisation interactive, exécutez `claude` dans un vrai terminal : Windows Terminal ou la console PowerShell plutôt que ISE, et le terminal intégré de votre IDE plutôt qu'un volet de sortie +* Pour une utilisation ponctuelle, transmettez l'invite : `claude -p "your question"`, ou canalisez-la avec `echo "your question" | claude -p` + +

+ L'entrée contenait uniquement des espaces blancs +

+ +En [mode non interactif](/docs/fr/headless), Claude Code refuse une invite composée 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 l'endroit d'où provient l'invite vide : + +* **Argument d'invite ou stdin canalisé pour `claude -p`** : `claude` se termine avec `Error: 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-json` ou [Agent SDK](/docs/fr/agent-sdk/overview) en cours d'exécution** : Claude Code termine le tour sans appeler le modèle et la session reste utilisable. Le refus arrive comme un message informatif et comme le 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 contenant uniquement des espaces blancs à l'API, qui rejetait la demande avec une erreur 400. + +**Que faire :** + +* Incluez du texte visible dans l'invite. Si un script construit l'invite à partir d'une variable ou d'un fichier, vérifiez que la source n'est pas vide avant d'appeler Claude Code. + +

+ L'entrée stream-json a porté plus de 256 M caractères sans nouvelle ligne +

+ +Votre programme a envoyé plus de 268 435 456 caractères sur stdin sans nouvelle ligne à une exécution `claude -p --input-format stream-json`, donc Claude Code imprime cette erreur sur stderr et se termine avec le code 1 au lieu de mettre en mémoire tampon plus d'entrée. Le message énonce ce budget comme `256M`. Avant la v2.1.257, Claude Code mettait en mémoire tampon une telle entrée sans limite, augmentant la mémoire jusqu'à ce que le processus s'écrase ou soit tué. + +```text theme={null} +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 nouvelle ligne signifie généralement que le producteur n'est pas du tout un producteur stream-json, tel qu'un fichier binaire ou une sortie de journal ordinaire canalisée par accident. Un seul message dépassant le budget échoue la même vérification. + +**Que faire :** + +* Vérifiez ce qui est canalisé sur stdin. Avec [`--input-format stream-json`](/docs/fr/cli-reference#cli-flags), chaque message doit être une ligne JSON terminée par une nouvelle ligne +* Pour envoyer du texte ordinaire à la place, supprimez `--input-format stream-json` ; `claude -p` lit une invite en texte ordinaire à partir de stdin par défaut + +

+ Commande inconnue +

+ +Dans une session de terminal interactive, vous avez soumis un nom `/` qui ne correspond à aucune commande dans cette session, donc Claude Code signale le nom au lieu d'exécuter quoi que ce soit : + +```text theme={null} +Unknown command: /hepl. Did you mean /help? +``` + +Claude Code suggère le nom de commande ou l'alias le plus proche que le menu énumère dans cette session. Lorsque rien n'est proche, le message se termine après le nom. La cause est généralement l'une des suivantes : + +* Une faute de frappe, telle que `/hepl` pour `/help`. [Comment le menu de commande correspond à ce que vous tapez](/docs/fr/commands#how-the-command-menu-matches-what-you-type) couvre le choix d'une correspondance proche avant de soumettre +* Une commande qui existe mais n'est pas disponible dans cette session car une exigence n'est pas satisfaite, telle que votre plateforme, plan ou méthode d'authentification. Les entrées de dépannage pour [`/web-setup`](/docs/fr/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) et [`/schedule`](/docs/fr/routines#schedule-returns-unknown-command) parcourent deux cas courants. Certaines commandes répondent avec leur propre message lorsque la politique de votre organisation les désactive, telles que [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy) +* Une commande d'un [plugin](/docs/fr/plugins) ou [serveur MCP](/docs/fr/mcp#use-mcp-prompts-as-commands) qui n'est pas installé ou connecté dans cette session + +Claude Code répond à un nom `/` non appairé de cette manière uniquement dans une session de terminal interactive. Dans toute autre session, il envoie l'invite à Claude comme un message normal à la place, avec une note que la commande n'a pas s'exécutée et une liste de commandes que Claude peut exécuter dans la session. Ces sessions incluent : + +* Les exécutions `-p` +* Les applications [Agent SDK](/docs/fr/agent-sdk/overview) +* L'onglet Code de l'[application Desktop](/docs/fr/desktop) +* Le panneau de chat de l'[extension VS Code](/docs/fr/vs-code) +* Les [sessions cloud](/docs/fr/claude-code-on-the-web) et [routines](/docs/fr/routines) + +Pour une commande intégrée qui ne peut pas s'exécuter dans l'une de ces sessions, Claude Code répond toujours que la commande n'est pas disponible au lieu de l'envoyer à Claude. Avant la v2.1.274, seules les sessions cloud et les routines envoyaient un nom non appairé à Claude. Avant la v2.1.273, elles répondaient également `Unknown command`. + +Claude Code ne traite pas chaque invite qui commence par `/` comme une commande. Il envoie l'invite à Claude comme un message normal lorsque le premier mot après le `/` commence par la ponctuation, telle que le `/--` qui ouvre un commentaire de document Lean, ou est un chemin tel que `/var/log/syslog`. + +Avant la v2.1.236, si vous aviez appuyé sur `Entrée` tandis que le menu de commande énumérait une correspondance proche du nom que vous aviez tapé, Claude Code exécutait cette correspondance, donc une faute de frappe telle que `/hepl` exécutait `/help` au lieu de produire ce message. + +**Que faire :** + +* Exécutez le nom suggéré, ou tapez `/` suivi d'une partie du nom pour voir ce qui est disponible dans cette session +* Si Claude Code signale une commande documentée comme inconnue, vérifiez sa ligne dans la [référence des commandes](/docs/fr/commands) pour l'exigence qu'elle nomme + +

+ La comparaison est trop grande pour ultrareview +

+ +La comparaison entre votre branche et la branche de base, y compris les modifications non validées et mises en scène, dépasse les limites de taille pour un [ultrareview](/docs/fr/ultrareview), donc `/code-review ultra` et la sous-commande `claude ultrareview` refusent l'examen avant le démarrage de la session cloud. Un examen refusé n'utilise pas une exécution gratuite et ne facture pas les crédits d'utilisation. Le message nomme les limites en vigueur, la taille de votre comparaison et les fichiers qui contribuent le plus de lignes modifiées. Avant la v2.1.216, le message affichait uniquement les statistiques de comparaison brutes. + +```text theme={null} +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 `) to narrow the scope, or split the change. +``` + +L'examen d'une demande de tirage applique les mêmes limites ; cette forme du message commence par `PR # is too large for ultrareview` et nomme les comptes de fichiers et de lignes de la demande de tirage. + +**Que faire :** + +* Transmettez une branche de base plus proche de votre travail, telle que `/code-review ultra develop`, afin que l'examen couvre uniquement la comparaison par rapport à cette branche +* Divisez la modification en branches plus petites et examinez chacune. Les fichiers que le message nomme contribuent le plus de lignes modifiées, donc commencez par déplacer ceux-ci vers leur propre branche. + +

+ Impossible de trouver la base de fusion avec la branche de base +

+ +`/code-review ultra` et la sous-commande `claude ultrareview` examinent la comparaison entre votre branche et une branche de base, ce qui nécessite un commit que les deux partagent. Lorsque `git merge-base` n'en trouve aucun, Claude Code refuse l'examen avant le démarrage de la session cloud. Sur un clone que Claude Code peut vérifier comme complet, avec au moins une branche, il revient à [examiner chaque fichier suivi](/docs/fr/ultrareview#diff-limits-and-fallbacks) au lieu de refuser. Vous voyez ce refus lorsque la branche de base ne peut pas être trouvée du tout, lorsque Claude Code ne peut pas vérifier que votre clone est complet, ou dans le rare référentiel où la comparaison de l'arborescence entière n'est pas possible, telle que le format d'objet SHA-256. + +```text theme={null} +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'indice après la première phrase dépend de ce que Claude Code a observé : + +* **Vous n'avez pas transmis une branche de base** : Claude Code a comparé par rapport à la branche par défaut du référentiel et suggère de transmettre votre base explicitement, comme dans l'exemple ci-dessus +* **Vous avez transmis une branche de base qui était déjà dans votre clone** : l'indice lit ``Make sure exists locally or on origin (try `git fetch origin `)`` +* **Vous avez transmis une branche de base qui n'était pas dans votre clone** : Claude Code l'a récupérée à partir de origin avant de comparer. L'indice lit `` was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra `)``; lorsque Claude Code ne peut pas dire si votre clone est superficiel, il suggère `git fetch --unshallow origin` à la place. Avant la v2.1.221, l'indice suggérait `git fetch --unshallow origin` pour chaque branche de base récupérée, et sur un clone complet cette commande échoue avec `fatal: --unshallow on a complete repository does not make sense`. + +**Que faire :** + +* Si une autre branche est votre vraie base, transmettez-la explicitement : `/code-review ultra ` +* Si votre clone pourrait ne pas avoir l'historique complet, exécutez `git fetch --unshallow origin` et réexécutez l'examen + +

+ Votre checkout n'a pas de branches +

+ +Un checkout peut avoir des commits mais pas de branches : si vous exécutez `git init` suivi de `git fetch ` et `git checkout FETCH_HEAD`, vous obtenez un HEAD détaché sans références. Claude Code empaquette votre référentiel en tant que bundle git pour le télécharger pour un [ultrareview](/docs/fr/ultrareview), et il ne peut pas empaqueter un référentiel qui n'a pas de branches ou d'autres références, donc `/code-review ultra` et la sous-commande `claude ultrareview` refusent l'examen avant le démarrage de la session cloud. + +```text theme={null} +Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b ` — then rerun /code-review ultra. +``` + +Avant la v2.1.221, Claude Code tentait d'examiner chaque fichier suivi dans ce checkout, et le téléchargement échouait. + +**Que faire :** + +* Créez une branche à votre commit courant avec `git checkout -b `, puis réexécutez l'examen + +

+ Aucun compte GitHub n'est connecté à votre compte Claude +

+ +Vous avez exécuté `/code-review ultra ` ou `claude ultrareview `, et avant de créer la session cloud Claude Code demande au serveur si [le compte GitHub connecté à votre compte Claude](/docs/fr/ultrareview#review-a-pull-request) peut atteindre le référentiel de la demande de tirage. Aucun compte n'est connecté, ou la connexion a expiré, donc le clone cloud échouerait et Claude Code refuse le lancement. Claude Code ne dépense pas une exécution gratuite ou ne facture pas les crédits d'utilisation pour un lancement refusé. + +```text theme={null} +Ultrareview clones / 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`](/docs/fr/web-quickstart#connect-from-your-terminal) n'est pas disponible dans votre session, le message nomme uniquement le lien claude.ai. + +**Que faire :** + +* Exécutez `/web-setup` pour connecter votre connexion GitHub CLI à votre compte Claude, ou connectez un compte à [claude.ai/connect-github](https://claude.ai/connect-github) +* Réexécutez l'examen une minute après la connexion + +Avant la v2.1.248, Claude Code ne vérifiait pas cela avant le lancement. + +

+ Votre compte GitHub connecté ne peut pas voir le référentiel +

+ +Vous avez exécuté `/code-review ultra ` ou `claude ultrareview `, et [le compte GitHub connecté à votre compte Claude](/docs/fr/ultrareview#review-a-pull-request) ne peut pas lire le référentiel de la demande de tirage, donc le clone cloud échouerait et Claude Code refuse le lancement. Claude Code ne dépense pas une exécution gratuite ou ne facture pas les crédits d'utilisation pour un lancement refusé. + +```text theme={null} +Your connected GitHub account can't see / — usually the Claude GitHub app isn't installed on 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`](/docs/fr/web-quickstart#connect-from-your-terminal) n'est pas disponible dans votre session, le message nomme uniquement l'installation de l'application. + +**Que faire :** + +* Si votre CLI `gh` local peut lire le référentiel, exécutez `/web-setup` pour connecter cette connexion à votre compte Claude +* Réexécutez l'examen après la modification + +Avant la v2.1.248, Claude Code ne vérifiait pas cela avant le lancement. + +

+ La vérification préalable de l'application GitHub a échoué de manière transitoire +

+ +Vous avez démarré une [session cloud](/docs/fr/claude-code-on-the-web) à partir d'un référentiel local, et deux étapes ont échoué ensemble. Claude Code n'a pas pu construire ou télécharger le bundle de votre référentiel. Avant le téléchargement, il a vérifié si le service cloud peut cloner le référentiel à partir de GitHub, et plutôt qu'une réponse définitive, cette vérification s'est terminée par une erreur qu'une nouvelle tentative pourrait clarifier, telle qu'une erreur réseau, un délai d'expiration ou une erreur serveur temporaire. Le message complet commence par ce qui a arrêté le bundle, par exemple `Could not upload repo bundle ()`, et se termine par la phrase de vérification préalable : + +```text theme={null} +Could not upload repo bundle (). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead +``` + +**Que faire :** + +* Réexécutez 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, donc le téléchargement échoué ne bloque plus le lancement +* Si les nouvelles tentatives continuent d'échouer, le début du message nomme ce qui a arrêté le téléchargement. Lorsque cette cause est quelque chose que vous pouvez corriger, corrigez-la afin que la session puisse démarrer à partir de votre référentiel local à la place + +Avant la v2.1.251, Claude Code terminait le message avec `Please set up GitHub on https://claude.ai/code` même lorsque la vérification GitHub a échoué uniquement de manière transitoire, et les conseils de configuration ne peuvent pas clarifier un échec transitoire. + +

+ GitHub n'est pas connecté à votre compte Claude +

+ +Vous avez démarré une [session cloud](/docs/fr/claude-code-on-the-web) à partir de votre référentiel local, par exemple avec `/autofix-pr`. Aucun compte GitHub n'est connecté à votre compte Claude, ou la connexion a expiré, donc Claude Code refuse le lancement : + +```text theme={null} +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 routine avec [`/schedule`](/docs/fr/routines), le même message apparaît comme une note de configuration qui nomme le référentiel ; la note ne bloque pas la création de la routine. + +**Que faire :** + +* Exécutez `/web-setup` pour connecter votre connexion GitHub CLI à votre compte Claude, ou connectez un compte à [claude.ai/connect-github](https://claude.ai/connect-github). Voir [Options d'authentification GitHub](/docs/fr/claude-code-on-the-web#github-authentication-options) pour voir comment les deux diffèrent. +* Réexécutez la commande une minute après la connexion + +Avant la v2.1.268, Claude Code signalait ceci comme un échec temporaire de la vérification de l'application GitHub Claude et suggérait de réessayer ou d'installer l'application ; aucun des deux ne connecte un compte GitHub. + +

+ Autorisation d'authentification unique requise +

+ +Vous avez exécuté [`/install-github-app`](/docs/fr/github-actions#quick-setup) et choisi un référentiel dont l'organisation applique l'authentification unique SAML. Avant la configuration, Claude Code vérifie votre accès au référentiel avec l'interface de ligne de commande GitHub, et GitHub a refusé cette vérification car votre jeton `gh` n'est pas encore autorisé pour l'organisation. L'assistant affiche l'avertissement avec les étapes à suivre : + +```text theme={null} +Single sign-on authorization needed +/ 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 connexion GitHub CLI avec les portées `repo` et `workflow` en exécutant `gh auth refresh -h github.com -s repo,workflow`, et autorisez l'organisation lorsque GitHub vous invite à l'authentification unique +* Si vous vous authentifiez avec un jeton d'accès personnel dans `GH_TOKEN`, ouvrez [github.com/settings/tokens](https://github.com/settings/tokens), sélectionnez **Configure SSO** sur le jeton, et autorisez l'organisation +* Exécutez `/install-github-app` à nouveau + +Avant la v2.1.273, Claude Code affichait l'avertissement `Admin permissions required` pour cette condition à la place. + +

+ Impossible de reprendre la conversation +

+ +Claude Code n'a pas pu lire ou traiter la transcription enregistrée pour la session que vous avez sélectionnée dans le [sélecteur `claude --resume`](/docs/fr/sessions#use-the-session-picker), il termine donc le processus plutôt que de continuer dans un état partiellement chargé. Le message inclut la commande pour réessayer : + +```text theme={null} +Failed to resume the conversation. +Run claude --resume 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` à l'intérieur d'une session en cours signale `Failed to resume conversation` dans la conversation à la place, et votre session actuelle continue de s'exécuter. Avant la v2.1.216, une reprise échouée du sélecteur `claude --resume` restait sur le spinner `Resuming conversation…` indéfiniment au lieu d'afficher ce message. + +**Que faire :** + +* Exécutez `claude --resume ` avec l'ID de session du message pour réessayer +* Si chaque nouvelle tentative échoue de la même manière, exécutez `claude update` et reprenez à nouveau. Les versions antérieures à v2.1.275 échouent la reprise lorsque la transcription enregistrée contient une entrée qu'elles ne peuvent pas lire. +* Si la nouvelle tentative échoue à nouveau, exécutez `claude` pour démarrer une nouvelle session + +

+ Aucune conversation trouvée avec l'ID de session +

+ +Vous avez transmis un ID de session à `claude --resume ` et aucune transcription enregistrée ne l'a appairé : + +```text theme={null} +No conversation found with session ID: +``` + +Claude Code se termine avec le code 1 après avoir affiché le message. Claude Code [recherche d'abord le projet courant, puis chaque autre projet sur cette machine](/docs/fr/sessions#resume-a-session) pour l'ID. Avant la v2.1.223, la recherche s'arrêtait au répertoire du projet courant et ses worktrees git, donc reprendre à partir du répertoire où la session a travaillé en dernier. + +Les causes courantes : + +* **ID mal saisi** : pour une exécution non interactive, l'ID est le champ `session_id` de la sortie [`--output-format json`](/docs/fr/headless#get-structured-output) +* **Transcription supprimée** : Claude Code supprime les transcriptions après la [période de rétention](/docs/fr/sessions#where-transcripts-are-stored), 30 jours par défaut, suivant les [règles de balayage de rétention](/docs/fr/claude-directory#cleaned-up-automatically) +* **Machine différente** : Claude Code stocke les transcriptions localement, donc reprenez 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/projects` afin que deux transcriptions portent le même ID, Claude Code signale ce message plutôt que de reprendre une copie arbitrairement + +**Que faire :** + +* Pour une session interactive, ouvrez le [sélecteur de session](/docs/fr/sessions#use-the-session-picker) avec `claude --resume` et appuyez sur `Ctrl+A` pour l'élargir à chaque projet sur cette machine, puis sélectionnez la session +* Les sessions créées avec `claude -p` ou le [Agent SDK](/docs/fr/agent-sdk/overview) n'apparaissent pas dans le sélecteur, donc revérifiez l'ID par rapport au `session_id` que votre exécution d'origine a imprimé + +

+ Impossible de changer de renderers dans cette session +

+ +Lorsque vous changez de renderers, Claude Code redémarre son processus. Vous avez exécuté [`/tui`](/docs/fr/fullscreen#enable-fullscreen-rendering) dans une session que Claude Code refuse de redémarrer, elle ne change donc pas et ne sauvegarde rien. Le message que vous voyez vous indique la cause : + +* `Cannot switch renderers while work is running in the background` : vous avez du travail en arrière-plan en cours d'exécution qu'un redémarrage abandonnerait, tel qu'un shell en arrière-plan ou un sous-agent. Attendez que le travail se termine ou arrêtez-le avec [`/tasks`](/docs/fr/commands), puis exécutez `/tui fullscreen` ou `/tui default` à nouveau +* `Cannot switch renderers in this session` : la session a des restrictions que Claude Code ne peut pas transmettre au processus redémarré. Avant la v2.1.234, Claude Code redémarrait de toute façon et la session relancée s'exécutait sans elles + +Dans le message des restrictions, la partie entre parenthèses nomme les restrictions que Claude Code a trouvées : + +```text theme={null} +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 indicateur que Claude Code ne transmet pas au processus redémarré. Ces indicateurs incluent [`--system-prompt`](/docs/fr/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, une liste d'autorisation [`--tools`](/docs/fr/cli-reference#cli-flags), [`--setting-sources`](/docs/fr/cli-reference#cli-flags), et [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags) +* `permission rules set for this session only` : une [mise à jour de permission](/docs/fr/hooks#permission-update-entries) d'un hook ou d'un appelant SDK a ajouté des règles de refus ou de demande avec la destination `session`. Les règles d'autorisation à portée de session ne déclenchent pas le refus. Un redémarrage les supprime, et Claude Code demande à nouveau à la place +* `ask-before-running rules with no command-line form` : une mise à jour de permission d'un hook ou d'un appelant SDK a ajouté des règles de demande aux côtés des règles que Claude Code transmet comme `--allowed-tools` et `--disallowed-tools`. Aucun indicateur n'existe pour les règles de demande +* `permission rules a command line cannot carry intact` et `added directories a command line cannot carry intact` : une mise à jour de permission a ajouté une règle ou un chemin de répertoire en milieu de session. La ligne de commande du processus redémarré ne peut pas porter son texte comme la même valeur + +**Que faire :** + +* Dans une session démarrée sans ces restrictions, exécutez `/tui fullscreen`, ou `/tui default` pour revenir. Claude Code sauvegarde le [paramètre `tui`](/docs/fr/settings-reference#tui) là-bas + +

+ Couldn't open Claude Desktop +

+ +Vous avez exécuté [`/desktop`](/docs/fr/desktop#coming-from-the-cli), ou son alias `/app`, et la commande système que Claude Code utilise pour ouvrir Claude Desktop a échoué. La session reste dans le terminal. + +```text theme={null} +Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session= with error -10814). Open Claude Desktop and run /desktop again. +``` + +**Que faire :** + +* Ouvrez Claude Desktop vous-même, puis exécutez `/desktop` à nouveau +* Pour lire la sortie d'erreur complète de cette commande, activez la journalisation de débogage avec `/debug`, exécutez `/desktop` à nouveau, et vérifiez le journal de débogage + +Avant la v2.1.275, le message était `Failed to open Claude Desktop. Please try opening it manually.` et ne disait pas ce qui a échoué. + +

+ /terminal-setup a laissé votre keymap Zed inchangée +

+ +Vous avez exécuté [`/terminal-setup`](/docs/fr/terminal-config#enter-multiline-prompts) dans Zed, et Claude Code n'a pas pu terminer la mise à jour de votre Zed `keymap.json`, il a donc laissé le fichier tel qu'il était. + +Chaque message nomme le chemin vers votre keymap et se termine avec le bloc de liaison de clé à ajouter vous-même : + +```text theme={null} +Couldn't update your Zed keymap, so it was left unchanged. +To add the binding yourself, add this block to the keymap array in : +{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } } +``` + +La première ligne du message nomme 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 de permissions de fichier +* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.` : le fichier s'est bien lu mais ne s'analyse pas comme un tableau de blocs de liaison de clé, même avec les commentaires `//` et les virgules finales autorisés +* `Couldn't back up your Zed keymap; not modifying it.` : Claude Code n'a pas pu copier le fichier vers une sauvegarde `.bak` à côté, il n'a donc rien changé +* `Couldn't update your Zed keymap, so it was left unchanged.` : le résultat fusionné n'a pas vérifié comme un keymap valide portant la liaison, donc Claude Code l'a rejeté au lieu de l'écrire. Un bloc de liaison de clé avec une clé dupliquée peut causer ceci + +**Que faire :** + +* Copiez le bloc du message dans le tableau de niveau supérieur dans votre `keymap.json` au chemin que le message nomme +* Pour `isn't a readable list of keybindings`, corrigez l'erreur de syntaxe, ou rendez la valeur de niveau supérieur du fichier un tableau, puis exécutez `/terminal-setup` à nouveau + +Avant la v2.1.247, `/terminal-setup` ne pouvait pas analyser un keymap Zed qui utilisait des commentaires `//` ou des virgules finales, et il remplaçait le fichier entier par uniquement sa propre liaison tout en signalant la liaison comme installée. Pour restaurer un keymap qu'une version antérieure a remplacé, utilisez le fichier de sauvegarde `.bak` décrit sous [Entrer des invites multiligne](/docs/fr/terminal-config#enter-multiline-prompts). + +

+ Les rapports d'utilisation des skills ne sont pas disponibles sur cette connexion +

+ +Vous avez exécuté [`/skill-doctor`](/docs/fr/skills#find-unused-skills) sur [Contrôle à distance](/docs/fr/remote-control), à partir de votre téléphone ou navigateur. Claude Code n'envoie pas le rapport d'utilisation des skills sur le contrôle à distance et répond avec ce message à la place : + +```text theme={null} +Skill usage reports are not available on this connection. +``` + +**Que faire :** + +* Exécutez `/skill-doctor` dans le terminal sur la machine où la session s'exécute, ou exécutez `claude -p "/skill-doctor"` là-bas + +

+ Les styles de sortie personnalisés ne peuvent pas être sélectionnés sur le contrôle à distance +

+ +Vous avez exécuté [`/output-style`](/docs/fr/output-styles#change-your-output-style) à partir de l'application mobile ou web via [Contrôle à distance](/docs/fr/remote-control), ou la commande est arrivée dans un message relayé dans la session. Parce qu'un tel tour peut ne pas provenir du propriétaire du compte, Claude Code énumère et sélectionne uniquement les [styles intégrés](/docs/fr/output-styles#built-in-output-styles) sur celui-ci, et ajoute cet avis chaque fois que la commande énumère les styles ou ne reconnaît pas le nom que vous avez donné. Un nom de [style personnalisé](/docs/fr/output-styles#create-a-custom-output-style) reçoit la même réponse qu'un nom qui n'existe pas : + +```text theme={null} +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 [`outputStyle`](/docs/fr/settings-reference#outputstyle) dans le `.claude/settings.local.json` du projet, ou exécutez `/output-style