Riferimento degli errori
Consulta i messaggi di errore di runtime di Claude Code con il significato di ciascuno e come risolverli.
Questa pagina elenca gli errori di runtime che Claude Code visualizza e come recuperare da ciascuno, oltre a cosa controllare quando le risposte sembrano non corrette senza un errore. Per gli errori di installazione come command not found o errori TLS durante la configurazione, vedi Risoluzione dei problemi di installazione e accesso.
Ad eccezione degli errori di Wrapper e IDE, che il programma di avvio stampa piuttosto che Claude Code stesso, questi errori e i comandi di recupero si applicano su CLI, l'app Desktop e le sessioni cloud, poiché tutti e tre avvolgono lo stesso CLI di Claude Code. Per altri problemi specifici della superficie, vedi la sezione di risoluzione dei problemi nella pagina di quella superficie.
[!NOTE]
Claude Code chiama l'API Claude per le risposte del modello, quindi la maggior parte degli errori di runtime si mappano a un codice di errore API sottostante. Questa pagina copre cosa significa ogni errore all'interno di Claude Code e come recuperare. Per le definizioni del codice di stato HTTP grezzo, vedi il riferimento degli errori della piattaforma Claude.
Trova il tuo errore
Abbina il messaggio che vedi a una sezione qui sotto.
| Messaggio | Sezione |
|---|---|
API Error: 500 Internal server error |
Errori del server |
API Error: Repeated 529 Overloaded errors |
Errori del server |
Opus is experiencing high load / Fable is experiencing high load |
Errori del server |
Request timed out |
Errori del server, oppure Rete se il messaggio menziona la tua connessione internet |
API Error: No response from API |
Errori del server |
API Error: Stream idle timeout - no chunks received |
Watchdog di inattività dello streaming, oppure Il ragionamento lungo termina con timeout del proxy dietro un gateway delle app Claude |
Server error mid-response. The response above may be incomplete. |
Errori del server |
Connection lost mid-response / Your computer went to sleep mid-response / The response stopped arriving |
Errori del server |
Connection closed mid-response / Response stalled mid-stream |
Errori del server |
Part of the response never arrived / The response stream was malformed |
Errori del server |
API Error: Content block not found / API Error: Content block already closed / API Error: Stream event unreadable |
Errori del server |
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 |
Tentativi automatici |
Connection closed while thinking / Response stalled while thinking |
Tentativi automatici |
Connection lost while your computer was asleep |
Tentativi automatici |
The model's tool call could not be parsed (retry also failed). |
Tentativi automatici |
<model> is temporarily unavailable, so auto mode cannot determine the safety of... |
Errori del server |
Auto mode could not evaluate this action and is blocking it for safety |
Errori del server |
Not run · auto mode's check had no usable answer |
Errori del server |
Auto mode classifier transcript exceeded context window |
Errori del server |
Agent aborted: auto mode classifier request refused by the safety safeguard |
Errori del server |
The server-side auto mode classifier gave no verdict |
Errori del server |
<tool> was not reviewed and did not run: the conversation is too long for auto mode's classifier |
Errori del server |
Auto mode is unavailable — the server returned no safety verdict for the last 10 responses |
Errori del server |
Agent terminated early due to an API error |
Errori del server |
You've hit your session limit / You've hit your weekly limit / You've hit your Opus limit / You've hit your Sonnet limit |
Limiti di utilizzo |
Usage credits required for 1M context |
Limiti di utilizzo |
the prompt to confirm went unanswered — nothing was sent |
Limiti di utilizzo |
Server is temporarily limiting requests |
Limiti di utilizzo |
Request rejected (429) |
Limiti di utilizzo |
Credit balance is too low |
Limiti di utilizzo |
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 |
Limiti di utilizzo |
Could not update your spend limit |
Limiti di utilizzo |
spend limit reached / spend limit unavailable / This request exceeds your group's budget |
Limiti di utilizzo |
Not logged in · Please run /login |
Autenticazione |
Couldn't save your login |
Autenticazione |
Sign in again to take your previous account or API key off the config file. |
Autenticazione |
Your account or API key may still be in the config file. Run claude auth logout. |
Autenticazione |
Authentication required · Sign in again to continue |
Autenticazione |
Could not resolve authentication method |
Autenticazione |
Invalid API key |
Autenticazione |
Your apiKeyHelper script is failing |
Autenticazione |
Your organization's settings need an update |
Autenticazione |
Couldn't load your organization's settings. Check your connection |
Autenticazione |
Restart Claude Code to finish signing in |
Autenticazione |
Invalid auth token · Fix external auth token |
Autenticazione |
Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable |
Autenticazione |
Invalid request header from the environment · Fix the environment variable |
Autenticazione |
This organization has been disabled |
Autenticazione |
Your organization has disabled API key authentication |
Autenticazione |
Your organization has disabled Claude subscription access |
Autenticazione |
Scheduled tasks are off for your organization |
Autenticazione |
Routines are off for your organization |
Autenticazione |
Remote Control is only available when using Claude via api.anthropic.com |
Autenticazione |
OAuth token refresh failed — run /login to re-authenticate |
Autenticazione |
JWT refresh failed: no OAuth token — run /login |
Autenticazione |
Claude.ai login expired |
Autenticazione |
Claude.ai login was rejected — run /login, then /remote-control |
Autenticazione |
OAuth token unavailable — run /login to restore Remote Control |
Autenticazione |
Signed out of Claude — run /login, then /remote-control |
Autenticazione |
Remote Control could not renew this computer's connection |
Autenticazione |
signed-in claude.ai account or organization changed on this machine |
Autenticazione |
Remote Control stopped — the app running this session is now signed in to a different Claude account |
Autenticazione |
Remote Control stopped — the app running this session is signed out of Claude |
Autenticazione |
Couldn't verify your organization's policy for remote control |
Risoluzione dei problemi di Remote Control |
Remote Control is disabled by your organization's policy |
Risoluzione dei problemi di Remote Control |
Remote Control was turned off by your organization's policy |
Risoluzione dei problemi di Remote Control |
Session failed: working folder not found: |
Risoluzione dei problemi di Remote Control |
The program file this Remote Control started from is gone |
Risoluzione dei problemi di Remote Control |
Session failed: spawn error: seguito da un messaggio ENOENT |
Risoluzione dei problemi di Remote Control |
OAuth token revoked / OAuth token has expired |
Autenticazione |
Failed to authenticate: OAuth token revoked |
Autenticazione |
Your account does not have access to Claude. Please login again or contact your administrator. |
Autenticazione |
API Error: 401 Invalid authentication credentials |
Autenticazione |
Login expired · Please run /login |
Autenticazione |
The browser can't return the sign-in to Claude Code automatically |
Autenticazione |
Couldn't start the local listener that receives the browser sign-in. Try again. |
Autenticazione |
Failed to start OAuth callback server |
Autenticazione |
Claude login not accepted · Run /login, then try again |
Autenticazione |
Artifacts need a claude.ai login |
Autenticazione |
Not signed in to the Cloud gateway — run /login. |
Autenticazione |
Administrator policy requires a Cloud gateway sign-in on this machine |
Autenticazione |
Failed to authenticate: OAuth session expired and could not be refreshed |
Autenticazione |
Could not refresh your login because another Claude Code process is refreshing it |
Autenticazione |
Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh |
Autenticazione |
Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full |
Autenticazione |
Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full |
Autenticazione |
Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted |
Autenticazione |
Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted |
Autenticazione |
Anthropic profile login expired · Re-authenticate your Anthropic profile |
Autenticazione |
Login expired · Run /login to sign in again, or re-authenticate your Anthropic profile |
Autenticazione |
Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile |
Autenticazione |
does not meet scope requirement user:profile |
Autenticazione |
claude.ai rejected the session token / session token rejected |
Autenticazione |
MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate) |
Autenticazione |
rejected the credential from its headersHelper / rejected the Authorization header in its config |
Autenticazione |
(check the helper, then start a new task or chat) / (update it, then start a new task or chat) |
Autenticazione |
MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate |
Autenticazione |
MCP server "<name>" requires re-authorization (token expired) |
Autenticazione |
Couldn't read the stored credentials for MCP server "<name>", so the request didn't run |
Autenticazione |
A request to MCP server "<name>" was sent without your stored credentials |
Autenticazione |
This server's URL is missing or not a valid URL, so sign-in can't start |
Autenticazione |
Issuer mismatch in authorization response (RFC 9207) |
Autenticazione |
Refusing to send credentials to non-https token endpoint / <short-name> from the MCP SDK for <server-url> |
Autenticazione |
Cloud gateway session expired — run /login to reconnect. |
Autenticazione |
Cloud gateway <url> no longer accepts this session |
Autenticazione |
Sign-in timed out while waiting for you to continue. Try again. |
Autenticazione |
AWS credentials expired or invalid |
Autenticazione |
AWS authentication failed |
Autenticazione |
Google Cloud credentials expired or invalid |
Autenticazione |
Google Cloud authentication failed |
Autenticazione |
Microsoft Foundry authentication failed |
Autenticazione |
Gateway refused the request |
Autenticazione |
Could not load AWS credentials / Could not load Google Cloud credentials |
Autenticazione |
AWS default-chain credential resolve timed out |
Autenticazione |
Timed out after 60s waiting for AWS |
Autenticazione |
A request to AWS timed out. Check your network and proxy settings, then try again. |
Autenticazione |
Could not load the default credentials on Google Cloud's Agent Platform |
Autenticazione |
Unable to connect to API |
Rete |
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 |
Rete |
Unable to connect to Anthropic services during setup |
Rete |
Socket is closed |
Rete |
Waiting for API response · will retry in |
Tentativi automatici, oppure Rete se persiste |
API returned an empty or malformed response |
Rete |
Streaming response ended before any complete data was received |
Rete |
Bedrock streaming response has content-type "..."; expected "application/vnd.amazon.eventstream" |
Rete |
SSL certificate verification failed |
Rete |
SSL certificate error (...) during login or startup |
Rete |
unable to get local issuer certificate |
Rete |
403 con x-deny-reason: host_not_allowed in una sessione cloud o in un'attività pianificata cloud |
Rete |
proxy refused the connection |
Rete |
403 with GitHub GraphQL is not available from Claude Code sessions in a cloud session |
GitHub proxy |
The cloud environments service returned an empty response / The cloud environments service returned a response in an unexpected format |
Rete |
Failed to fetch session from Sessions API: Failed to fetch session logs |
Rete |
Couldn't reconnect to your Remote Control session |
Rete |
N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed. |
Rete |
Couldn't share the transcript. |
Rete |
Couldn't send feedback |
Rete |
Feedback payload too large. Try again without the transcript, or shorten the details. |
Rete |
MCP server "<name>" connection timed out. Your computer went to sleep or its clock changed while connecting. |
Rete |
Prompt is too long / Input is too long for requested model |
Errori di richiesta |
Prompt is too long · automatic compaction failed: |
Errori di richiesta |
Prompt is too long · this conversation is a single exchange / A single-exchange conversation cannot be compacted |
Errori di richiesta |
Context limit reached · /compact or /clear to continue |
Errori di richiesta |
Context limit reached · /clear to continue |
Errori di richiesta |
capability_rejected: prompt_too_long on a Claude apps gateway session |
Errori di richiesta |
upstream rejected the request / request too large for this upstream on a Claude apps gateway session |
Messaggi di errore upstream |
upstream rate limit exceeded on a Claude apps gateway session |
Messaggi di errore upstream |
all upstreams failed (N attempted) on a Claude apps gateway session |
Messaggi di errore upstream |
Claude Code may not be enabled for your organization after a Claude apps gateway sign-in |
Risoluzione dei problemi del gateway delle app Claude |
Context exceeds the ...-token limit by ... tokens in /context output |
Errori di richiesta |
Request too large |
Errori di richiesta |
Request too large for the API's 32MB request limit |
Errori di richiesta |
Image was too large |
Errori di richiesta |
API Error: an image in the conversation could not be processed and was removed |
Errori di richiesta |
An image in the conversation exceeds the dimension limit for many-image requests |
Errori di richiesta |
Unable to resize image |
Errori di richiesta |
Request rejected as unprocessable by the model |
Errori di richiesta |
PDF too large / PDF is password protected / pdftoppm is not installed |
Errori di richiesta |
Extra inputs are not permitted |
Errori di richiesta |
API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid / Property keys should match pattern |
Errori di richiesta |
Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128 |
Errori di richiesta |
tools.N.custom.name: String should have at most 128 characters |
Errori di richiesta |
tool_use.name: String should have at most 200 characters |
Errori di richiesta |
There's an issue with the selected model |
Errori di richiesta |
Model ... is not a recognized model id |
Errori di richiesta |
Model ... not found |
Errori di richiesta |
Couldn't confirm model ... with the API |
Errori di richiesta |
API error: ... · model not changed |
Errori di richiesta |
Claude Opus is not available with the Claude Pro plan |
Errori di richiesta |
Claude Code ... does not support this model; version ... or newer is required |
Errori di richiesta |
Claude Code ... is older than the minimum version required by your organization's policy |
Errori di richiesta |
Model ... is restricted by your organization's settings |
Errori di richiesta |
Model ... is not available. Your organization restricts model selection. |
Errori di richiesta |
Can't switch to the default model |
Errori di richiesta |
Model switch ... blocked by a PreModelSwitch hook |
Errori di richiesta |
couldn't save it as your default / couldn't confirm it was saved as your default |
Errori di richiesta |
is less capable than the current main model / Advisor will not activate on the main model / cannot advise |
Errori di richiesta |
thinking.type.enabled is not supported for this model |
Errori di richiesta |
Effort '<level>' isn't available with thinking turned off on this model |
Errori di richiesta |
effort '<level>' is not supported when thinking is disabled |
Errori di richiesta |
max_tokens must be greater than thinking.budget_tokens |
Errori di richiesta |
Claude's response exceeded the ... output token maximum |
Errori di richiesta |
API Error: 400 due to tool use concurrency issues |
Errori di richiesta |
API Error: 400 orphaned tool_result in conversation history |
Errori di richiesta |
API Error: 400 duplicate tool_use ID in conversation history |
Errori di richiesta |
Invalid data in redacted_thinking block |
Errori di richiesta |
[Unsupported tool content removed] |
Errori di richiesta |
role 'system' must precede an 'assistant' message |
Errori di richiesta |
Invalid encrypted_content in search_result block / Invalid encrypted_index in text block / Failed to decrypt web search result content |
Errori di richiesta |
Invalid encrypted_stdout in encrypted_code_execution_result block |
Errori di richiesta |
server_tool_use.name: Input should be on every turn of a resumed session |
Errori di richiesta |
<model> can't help with this. Start a new session to continue |
Errori di richiesta |
Claude Code is unable to respond to this request, which appears to violate our Usage Policy |
Errori di richiesta |
<model>'s safeguards flagged this message |
Errori di richiesta |
<model>'s safeguards flagged this session |
Errori di richiesta |
<model> has safety measures that flagged this message for a cybersecurity topic |
Errori di richiesta |
Details: `[reasoning_extraction]` |
Errori di richiesta |
API Error: Output blocked by content filtering policy |
Errori di richiesta |
Installation was killed before it could finish (exit code 137) |
Risoluzione dei problemi di installazione e accesso |
The connection dropped while downloading the update |
Risoluzione dei problemi di installazione e accesso |
Download timed out: exceeded the total deadline |
Risoluzione dei problemi di installazione e accesso |
Release verification failed for Claude Code <version> (<reason>). The update was not installed. |
Risoluzione dei problemi di installazione e accesso |
Auto-update failed · Run claude doctor |
Risoluzione dei problemi di installazione e accesso |
--bg and --print conflict |
Errori della riga di comando |
Couldn't tell whether --bg is a flag or text here, so nothing was started |
Errori della riga di comando |
Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one. |
Errori della riga di comando |
Cloud sessions cannot be created from a --restricted session |
Errori della riga di comando |
Cloud sessions are disabled by your organization's policy |
Errori della riga di comando |
Cloud sessions use your claude.ai login, alla fine di un rifiuto della policy che nomina una credenziale |
Errori della riga di comando |
Couldn't verify your organization's policy for cloud sessions |
Errori della riga di comando |
Cloud sessions aren't available: seguito dal motivo per cui non è stato possibile caricare la policy della tua organizzazione |
Errori della riga di comando |
Cloud sessions aren't available with this Console sign-in. They need a claude.ai sign-in. |
Unable to get organization UUID |
Cloud sessions need a claude.ai sign-in |
Unable to get organization UUID |
Nothing was stashed: "<path>" is now a folder in place of a tracked file or link / are now folders in place of tracked files or links |
Errori della riga di comando |
Error: --json-schema is not a valid JSON Schema |
Errori della riga di comando |
Error: Invalid --agents configuration: |
Errori della riga di comando |
Error: --agents takes a JSON object, or a file path only with --print (-p) |
Errori della riga di comando |
Error: --agents file not found |
Errori della riga di comando |
Error: Settings file exceeds the 2MiB limit |
Errori della riga di comando |
Configuration error in |
Errori della riga di comando |
Claude configuration file at <path> was empty and no backup holds anything: starting with defaults. |
Errori della riga di comando |
The current directory no longer exists (it was deleted or moved) / Can't read the current directory |
Errori della riga di comando |
Temp directory <dir> ... Refusing to use it / Claude Code's temporary directory <dir> could not be created |
Errori della riga di comando |
ENOSPC: no space left on device, mkdir '<dir>' |
Errori della riga di comando |
Error: Claude Code could not save ... because the disk is full (ENOSPC) / because your disk quota is used up (EDQUOT) |
Errori della riga di comando |
couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded |
Errori della riga di comando |
Error: Workspace not trusted when starting Remote Control |
Errori della riga di comando |
Error: Workspace not trusted quando esegui claude ultrareview |
Errori della riga di comando |
Ultrareview did not start |
Errori della riga di comando |
Remote Control did not start: "<question>" got no answer |
Errori della riga di comando |
`<flag>` before `remote-control` is not carried over to the sessions Remote Control starts |
Errori della riga di comando |
--sandbox is not supported by claude remote-control / --no-sandbox is not supported by claude remote-control |
Errori della riga di comando |
`claude import` is not yet available in this build |
Errori della riga di comando |
Could not read Claude Code config |
Errori della riga di comando |
Could not import <server>: <reason> |
Errori della riga di comando |
Cannot add MCP server to scope: managed |
Errori della riga di comando |
Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide |
Errori della riga di comando |
is Anthropic-hosted and doesn't support local OAuth |
Errori della riga di comando |
Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes |
Errori della riga di comando |
MCP server "<name>" was not saved to / was not removed from |
Errori della riga di comando |
MCP server "<name>" may not have been saved / may not have been removed |
Errori della riga di comando |
Server rejected the Authorization header minted by the configured headersHelper |
Errori della riga di comando |
This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability |
Errori della riga di comando |
Error: MCP tool <name> (passed via --permission-prompt-tool) not found |
Errori della riga di comando |
OAuth callback port <port> is already in use — another process may be holding it |
Errori della riga di comando |
No available ports for OAuth redirect |
Errori della riga di comando |
Shell command failed for pattern "...", from /security-review or any skill that injects dynamic context |
Errori della riga di comando |
Shell command permission check failed for pattern "...", from a skill that injects dynamic context |
Errori della riga di comando |
Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found |
Errori della riga di comando |
No shell command in <name> was run, because the <tool> tool does not accept one of them |
Errori della riga di comando |
Input must be provided either through stdin or as a prompt argument when using --print |
Errori della riga di comando |
Claude Code can't read the keyboard here: stdin is not a terminal |
Errori della riga di comando |
Error: Input contained only whitespace |
Errori della riga di comando |
Blank prompt — the message was only whitespace, so nothing was sent to the model. |
Errori della riga di comando |
Error: stream-json input carried over 256M characters with no newline |
Errori della riga di comando |
Unknown command: /<name>, with or without a Did you mean suggestion |
Errori della riga di comando |
Diff is too large for ultrareview / PR #<N> is too large for ultrareview |
Errori della riga di comando |
Could not find merge-base with <branch> |
Errori della riga di comando |
Your checkout has no branches (detached HEAD only) |
Errori della riga di comando |
Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected |
Errori della riga di comando |
Your connected GitHub account can't see <owner>/<repo> |
Errori della riga di comando |
The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead |
Errori della riga di comando |
Not uploading this working tree with the upload cannot follow that setting |
Errori della riga di comando |
GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud |
Errori della riga di comando |
Your GitHub organization has an IP allowlist that is blocking Claude |
Errori della riga di comando |
Your GitHub organization requires single sign-on |
Errori della riga di comando |
Your GitHub organization's identity provider (Microsoft Entra ID) has a Conditional Access policy that is blocking Claude |
Errori della riga di comando |
Single sign-on authorization needed |
Errori della riga di comando |
Failed to resume the conversation |
Errori della riga di comando |
No conversation found with session ID: <session-id> |
Errori della riga di comando |
Windows reported an error (EBADF) when Claude Code read this session's transcript file |
Errori della riga di comando |
Cannot switch renderers in this session |
Errori della riga di comando |
Cannot switch renderers while work is running in the background |
Errori della riga di comando |
Can't restart while work is running in the background — wait for it to finish (or stop it via /tasks), then try again. |
Errori della riga di comando |
Can't restart while Remote Control is connected. To use the installed version, exit and start Claude Code again, then run /resume. |
Errori della riga di comando |
Claude Code couldn't restart |
Errori della riga di comando |
Couldn't open Claude Desktop |
Errori della riga di comando |
Failed to open Claude Desktop. Please try opening it manually. |
Errori della riga di comando |
Couldn't read your Zed keymap / Couldn't back up your Zed keymap / Couldn't update your Zed keymap |
Errori della riga di comando |
Your Zed keymap isn't a readable list of keybindings |
Errori della riga di comando |
Skill usage reports are not available on this connection. |
Errori della riga di comando |
Custom output styles can't be selected over Remote Control or from a relayed message |
Errori della riga di comando |
Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load |
Errori della riga di comando |
/recap only runs when you ask for it yourself in this session |
Errori della riga di comando |
/feedback is disabled by your organization's policy, oppure lo stesso per /bug o /share |
Errori della riga di comando |
`plugin eval` is currently in early access / `plugin eval` is currently unavailable |
Errori dei plugin |
cannot be evaluated where sessions load it |
Testa i plugin con le eval |
Marketplace "<name>" is registered from an untrusted source |
Errori dei plugin |
Claude Code refuses the marketplace name "<name>" |
Errori dei plugin |
Marketplace name impersonates an official Anthropic/Claude marketplace |
Errori dei plugin |
Marketplace "<name>" is already added from a different source |
Errori dei plugin |
"<name>" is another spelling of "<reserved>", a reserved marketplace name |
Errori dei plugin |
Cannot add marketplace "<name>": Claude Code cannot install plugins from a marketplace with this name |
Risoluzione dei problemi dei plugin |
Cannot add marketplace "<name>": Claude Code reserves this name and cannot register a marketplace under it |
Risoluzione dei problemi dei plugin |
Marketplace "<name>" is added but ignored |
Risoluzione dei problemi dei plugin |
Marketplace "<name>" is registered but was refused (see the debug log) |
Risoluzione dei problemi dei plugin |
references ${user_config.*} in a shell-form command |
Errori dei plugin |
Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command |
Errori dei plugin |
headersHelper for MCP server '<name>' references ${user_config.*} |
Errori dei plugin |
Plugin archive integrity check failed |
Errori dei plugin |
An npm plugin source must name a registry package |
Risoluzione dei problemi dei plugin |
The packages it lists are not installed / The packages it lists were not installed, because |
Risoluzione dei problemi dei plugin |
does not load (...), so Claude Code ignores the whole file |
Risoluzione dei problemi dei plugin |
path escapes plugin directory |
Errori dei plugin |
path not read: <path> is absolute or has a ".." part |
Errori dei plugin |
Plugin not loaded: its manifest <path> was not read |
Errori dei plugin |
path could not be checked |
Errori dei plugin |
its marketplace entry path does not stay inside the marketplace directory |
Errori dei plugin |
Plugin source path refused |
Errori dei plugin |
Failed to load marketplace configuration |
Errori dei plugin |
Marketplace configuration file is corrupted |
Errori dei plugin |
Plugin "<name>@synced" is required by your organization and can't be disabled here |
Errori dei plugin |
"<plugin>" was not uninstalled: it is still switched on in <file> |
Errori dei plugin |
"<plugin>" was not uninstalled: <file> is there and could not be read |
Errori dei plugin |
Plugin "<plugin>" was not uninstalled: installed_plugins.json |
Risoluzione dei problemi dei plugin |
Plugin directory does not exist: <path> |
Risoluzione dei problemi dei plugin |
Skipping connection (recent failure cached; retries automatically in 15 min, or edit the plugin config to retry now) |
Errori dei plugin |
Error: No such tool available: <tool name> |
Errori degli strumenti |
MCP server "<name>" connection closed before the tool call was answered |
Errori degli strumenti |
MCP server "<name>" is disabled — re-enable it via /mcp to use its tools |
Errori degli strumenti |
MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit. |
Errori degli strumenti |
Permission prompt tool returned an invalid result |
Errori degli strumenti |
would be spawned with zero tools — refusing |
Errori degli strumenti |
File is covered by a Read deny rule in your permission settings |
Errori degli strumenti |
<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories |
Errori degli strumenti |
<path>: Writes outside the working directories are blocked (permissions.blockWritesOutsideWorkingDirectories) |
Errori degli strumenti |
Writes to Claude Code settings files are blocked while permissions.blockWritesOutsideWorkingDirectories is on |
Errori degli strumenti |
cannot contain null bytes (\0) |
Errori degli strumenti |
Path contains null bytes |
Errori degli strumenti |
command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run |
Errori degli strumenti |
This call was not run. The command was approved before Claude Code restarted |
Errori degli strumenti |
File is too large to read as an image (the limit is 128MB) |
Errori degli strumenti |
Cannot read this as an image: <path> is a pipe or a device |
Errori degli strumenti |
subagent_type is required: the general-purpose agent is not available in this session |
Errori degli strumenti |
Error: this write left the memory index at MEMORY.md at ..., over its ... read limit |
Errori degli strumenti |
Sandbox is required but failed to initialize: <reason> |
Risoluzione dei problemi del sandboxing |
Sandbox is required (sandbox.failIfUnavailable) and stopped being available in this session: <reason> |
Risoluzione dei problemi del sandboxing |
pkill: refusing to run |
Errori degli strumenti |
Failed to write to <name>'s inbox — nothing was sent |
Errori degli strumenti |
Failed to write the plan approval request to the lead's inbox — plan not submitted |
Errori degli strumenti |
Its agent definition was not restored: the folder its definition file came from is not trusted |
Errori degli strumenti |
Only a teammate can approve a shutdown request |
Errori degli strumenti |
A command-line deny rule cannot be handed to a teammate intact |
Errori degli strumenti |
Message too large for cross-session delivery |
Errori degli strumenti |
Too many messages to this session just now |
Errori degli strumenti |
Cross-session message was dropped at the recipient session's inbox |
Errori degli strumenti |
Refusing to send: reply target is a symlink / Refusing to send: cannot vet reply target |
Errori degli strumenti |
Refusing to read <path>: its symlink resolution changed after permission was checked (<reason>) / Refusing to search <path>: its symlink resolution changed after permission was checked |
Errori degli strumenti |
Refusing to write <path>: its parent-directory symlink resolution changed after permission was checked / Refusing to write <path>: it is a symbolic link. Write to the link's target path instead |
Errori degli strumenti |
Refusing to write through symlink: <path> / Refusing to write into symlinked directory: <path> |
Errori degli strumenti |
Refusing to write <path>: where it leads on disk could not be determined / Refusing to read <path>: where it leads on disk could not be determined |
Errori degli strumenti |
Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared / Refusing to search <path>: it could not be opened |
Errori degli strumenti |
its permission check expired before it ran (too many concurrent file operations) / ripgrep was found only by name on PATH |
Errori degli strumenti |
The search failed, so this is not a "no matches" result: matches may exist |
Errori degli strumenti |
task output swap refused (tasks dir moved or linked) |
Errori degli strumenti |
Command killed: its output file was replaced or could no longer be verified |
Errori degli strumenti |
Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free / Nearly out of inodes: this computer's volume holding <dir> |
Errori degli strumenti |
Disk full: a test write beside this command's output file / Disk quota used up: a test write beside this command's output file |
Errori degli strumenti |
The command was not started: this computer's disk is full (ENOSPC) / the user's disk quota is used up (EDQUOT) |
Errori degli strumenti |
Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT) / The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC) |
Errori degli strumenti |
Command output was lost: the temp filesystem at <dir> is full / is out of inodes |
Errori degli strumenti |
File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary |
Errori degli strumenti |
git is not installed on this Mac. To install it, run xcode-select --install, then try again. |
Errori degli strumenti |
Refusing to apply edits to <path>: a hook is configured for file edits in this session |
Errori degli strumenti |
the source file is not valid UTF-8 text / the source file is not valid UTF-16 text |
Errori degli strumenti |
the source file has the replacement character U+FFFD |
Errori degli strumenti |
Not published: that file is on a network share |
Errori degli strumenti |
Not published: Claude sent the same content again after a newer version of the artifact turned it away / Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away |
Errori degli strumenti |
Reading a local file from outside this session's connected folders, or through a link, needs the approval card |
Errori degli strumenti |
cannot read file_path (...) — the file could not be examined, and no one can answer the approval card |
Errori degli strumenti |
WebFetch cannot fetch localhost or other hostnames without a dot |
Errori degli strumenti |
The safety check for domain ... is rate-limited |
Errori degli strumenti |
The safety check for domain ... is temporarily rate-limited |
Errori degli strumenti |
Unable to verify if domain ... is safe to fetch |
Errori degli strumenti |
MCP tool "<tool>" on server "<server>" gave no answer that could be read / answered without its text |
Come viene letto il risultato di un hook di strumento MCP |
Can't open MCP settings while no terminal is attached to this background session |
Errori della sessione in background |
Can't open MCP settings in a background session |
Errori della sessione in background |
blocked because the path is spelled in a form that cannot be safely resolved |
Errori della sessione in background |
blocked because the path is network-shaped |
Errori della sessione in background |
is isolated in the worktree <path>, but this command <reason>. Refusing to run it |
Errori della sessione in background |
too complex to verify that it stays inside the worktree |
Errori della sessione in background |
This session has no saved transcript |
Errori della sessione in background |
Can't open — this session is running in another terminal |
Errori della sessione in background |
This conversation is already open in another running Claude session |
Errori della sessione in background |
This session's saved conversation is no longer on disk |
Errori della sessione in background |
This forked session could not be started. Fork the conversation again to retry. |
Errori delle sessioni in background |
Bypass permissions was requested at launch and ignored |
Bypass permissions ignorato in una sessione in background |
kept <id> — its worktree is still at <path> |
Errori delle sessioni in background se la riga successiva del messaggio menziona commit non inviati, altrimenti Cosa rimuove l'eliminazione di una sessione |
kept <id> — <n> unpushed commits on <branch> |
Errori della sessione in background |
kept <id> — worktree has commits that are not pushed anywhere |
Errori della sessione in background |
terminal host process died — press Enter to restart / This session's terminal host process died |
Errori della sessione in background |
Session isn't responding / Press enter again to restart this session — it isn't responding |
Errori della sessione in background |
Session <id> was stopped while the respawn was in flight |
Errori della sessione in background |
This session was running agent '<name>', which is no longer available |
Errori della sessione in background |
This session restarted <time> after its next /loop wakeup was due, so that wakeup will not fire |
Errori della sessione in background |
No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder |
Errori della sessione in background |
No LLM gateway: opened from another folder · respawn from <folder> |
Errori della sessione in background |
CLAUDE_CODE_PROCESS_WRAPPER: launcher ... |
Errori della sessione in background |
EUNKNOWN: unknown error, uv_spawn |
Errori della sessione in background |
EACCES: permission denied, posix_spawn |
Errori della sessione in background |
exited before it became reachable |
Errori della sessione in background |
Couldn't start a background session (working directory no longer exists or is not accessible: ...) |
Errori della sessione in background |
Workspace not trusted. when starting or restarting a background session |
Errori della sessione in background |
Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...) |
Errori della sessione in background |
Claude Code process exited with code N |
Errori del wrapper e dell'IDE |
The connection to Claude Code ended before this message completed |
Errori del wrapper e dell'IDE |
Could not locate the Claude CLI on PATH |
Errori del wrapper e dell'IDE |
The Claude Code program for this computer, the <build> build, could not be found |
Errori di wrapper e IDE |
Restored the code, but skipped N files |
Avvisi e errori di Rewind |
No files were restored: N files failed (backup missing, or the file could not be updated) |
Avvisi e errori di Rewind |
The file backups are still being copied. Nothing was changed. Try again in a moment. |
Seleziona di nuovo lo stesso punto in /rewind. Quando ripristini il codice subito dopo /branch, Claude Code potrebbe ancora star copiando i backup dei file nella nuova sessione. |
Transcript writes are failing (...) |
Avvisi di salvataggio della sessione |
Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set |
Avvisi di salvataggio della sessione |
Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker |
Avvisi di salvataggio della sessione |
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 |
Fullscreen rendering |
Claude Code exited after an unrecoverable interface error (...) |
Avvisi di configurazione |
Agent descriptions are over the 15.0k-token limit |
Avvisi di configurazione |
hook needs quotes around a path with a space |
Avvisi di configurazione |
Instruction file not loaded |
Avvisi di configurazione |
Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account |
Avvisi di configurazione |
N skill or command names refused: run with --debug to see which ([names]), rename, then restart |
Avvisi di configurazione |
Ignoring N permissions.allow entries from ... this workspace has not been trusted |
Avvisi di configurazione |
Two Claude Code config files exist: this run uses <path>, not <path> |
Avvisi di configurazione |
Make this change again later: <path> could not be updated, so it applies to this session only |
Avvisi di configurazione |
is a network path, which cannot be added as a working directory |
Avvisi di configurazione |
Remote managed settings failed to load (<cause>) |
Avvisi di configurazione |
Your organization requires remote managed settings to load, but they could not be loaded |
Imporre l'avvio fail-closed |
Remote managed settings are still loading |
Avvisi di configurazione |
Remote managed settings did not load |
Avvisi di configurazione |
Claude Code couldn't load your organization's settings / Claude Code couldn't reach Anthropic to load your organization's settings / requires them before a session can start |
Avvisi di configurazione |
Claude Code can't start this session yet |
Avvisi di configurazione |
Your Claude session has expired. Sign in again to continue (claude auth login). |
Avvisi di configurazione |
Managed settings were not approved; exiting without applying them. |
Avvisi di configurazione |
Your organization's managed settings need your approval, which couldn't be asked for here. |
Avvisi di configurazione |
Claude Code can't start: your organization's managed settings block the default model / Claude Code can't start: your organization allows only the models listed in "availableModels" |
Avvisi di configurazione |
Your organization's managed settings allow Claude Code to use: <providers> |
Avvisi di configurazione |
Your organization's managed settings allow Claude Code to use no API provider at all |
Avvisi di configurazione |
MCP server <name> is blocked by enterprise managed policy |
Avvisi di configurazione |
"<name>" is a reserved MCP server name and was not loaded |
Avvisi di configurazione |
Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it. |
Avvisi di configurazione |
Managed settings drop-in directory could not be read |
Avvisi di configurazione |
Unable to read managed policy settings |
Avvisi di configurazione |
Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry: |
Avvisi di configurazione |
otelHeadersHelper failed; telemetry is not being exported. See /status: ... |
Avvisi di configurazione |
"crossSessionInbound" must be one of "accept", "hold", "refuse" |
Avvisi di configurazione |
API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name |
Avvisi di configurazione |
headersHelper not run — this workspace has no persisted trust |
Avvisi di configurazione |
Invalid permission rule "..." was skipped: Malformed Tool(content) rule |
Avvisi di configurazione |
matches no tool · check for typos / matches no known tool — check for typos |
Avvisi di configurazione |
... is not matched by file permission checks |
Avvisi di configurazione |
Write(<path>) never matches · use Edit(<path>) / Glob(<path>) never matches · use Read(<path>) |
Avvisi di configurazione |
... has a wildcard before the rest of the command |
Avvisi di configurazione |
allows any option at its * · use an exact value |
Avvisi di configurazione |
Denying Bash also turns off the PowerShell tool, so Claude has neither |
Avvisi di configurazione |
CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced |
Avvisi di configurazione |
CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" reads as <N> tokens, so Claude Code treats it as the 100k minimum |
Valori e avvisi per CLAUDE_CODE_AUTO_COMPACT_WINDOW |
CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" is too large, so Claude Code treats it as the 1M maximum |
Valori e avvisi per CLAUDE_CODE_AUTO_COMPACT_WINDOW |
CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" isn't a usable size, so Claude Code ignores it |
Valori e avvisi per CLAUDE_CODE_AUTO_COMPACT_WINDOW |
Model "<model>" isn't recognized · context assumed to be 200k tokens |
Correggi la finestra per un gateway o un ID modello personalizzato |
Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens |
Correggi la finestra per un gateway o un ID modello personalizzato |
Model "<model>" isn't recognized · did you mean "<suggestion>"? / Claude Code doesn't recognize the model "<model>". Did you mean "<suggestion>"? |
Correggere un nome di modello digitato male |
[claude-code:unrecognized_model] |
Avvisi di configurazione |
is ignored — managed settings set allowManagedReadPathsOnly / is ignored — managed settings set allowManagedDomainsOnly |
Avvisi di configurazione |
Sandbox mask files left behind at write-deny paths |
Avvisi di configurazione |
Stale sandbox mask files left by a killed session |
Avvisi di configurazione |
Ubuntu's AppArmor restriction on user namespaces stops bubblewrap here |
Risoluzione dei problemi del sandboxing |
bwrap: setting up uid map: Permission denied / bwrap: loopback: Failed RTM_NEWADDR: Operation not permitted |
Risoluzione dei problemi del sandboxing |
| Le risposte sembrano di qualità inferiore al solito | Qualità della risposta |
Tentativi automatici
Claude Code ritenta i guasti transitori fino a 10 volte con backoff esponenziale prima di mostrarti un errore. Non sempre ritenta un guasto che arriva a metà della risposta di Claude. Quando vedi uno degli errori in questa pagina, Claude Code ha già effettuato i tentativi che si applicano a quel guasto.
Claude Code ritenta questi guasti:
- Errori del server, risposte sovraccariche e timeout delle richieste che arrivano prima che una qualsiasi risposta di Claude sia stata trasmessa.
- Un errore del server o una risposta sovraccarica che arriva dopo che Claude ha finito di pensare ma prima di aver iniziato un testo o una chiamata a uno strumento. Claude Code ritenta un errore del server a quel punto fino a due volte. Prima della v2.1.284, Claude Code terminava il turno con l'errore a quel punto.
- Connessioni interrotte. Quando una connessione si interrompe a metà di una richiesta prima che Claude abbia completato una qualsiasi parte della sua risposta, incluso il suo ragionamento, Claude Code invia nuovamente la richiesta con lo stesso backoff e il turno continua, anche se del testo aveva già iniziato a essere trasmesso. Quando si interrompe dopo che Claude ha finito di pensare ma prima di aver iniziato un testo o una chiamata a uno strumento, Claude Code invece invia nuovamente la richiesta fino a due volte in rapida successione, e termina il turno con
Connection lost before a response was producedse la connessione continua a interrompersi a quel punto. - Una connessione che Claude Code rileva è stata interrotta dal tuo computer che si è addormentato a metà di una richiesta. Claude Code la conta come una connessione interrotta secondo le regole sopra; una volta che l'etichetta di riprovazione nomina il motivo specifico, legge
Connection lost while your computer was asleep, e se il turno termina dopo che Claude ha finito di pensare ma prima di un testo o di una chiamata a uno strumento, il messaggio leggeYour computer went to sleep before a response was produced. - Un flusso di risposta bloccato, quando le intestazioni di risposta sono arrivate ma nessuna risposta di Claude è arrivata, o quando Claude ha finito di pensare ma non ha iniziato un testo o una chiamata a uno strumento: Claude Code interrompe la connessione bloccata e trasmette nuovamente la richiesta in streaming al massimo una volta. Se la risposta si blocca una seconda volta dopo che Claude ha finito di pensare ma prima di un testo o di una chiamata a uno strumento, Claude Code termina il turno con
The response stalled before a response was produced. - Una richiesta di streaming a cui l'API non risponde mai con intestazioni di risposta, su una connessione dove è attiva la scadenza del primo byte. Alla scadenza, Claude Code interrompe la richiesta e la invia nuovamente entro il budget di riprovazione. Se la scadenza scatta anche per un nuovo invio, il turno termina con No response from API. Quando imposti
CLAUDE_CODE_RETRY_WATCHDOG, Claude Code continua invece a inviarla nuovamente entro il budget. - Una risposta in streaming che il filtro dei contenuti di output dell'API interrompe prima che Claude abbia finito il suo ragionamento o iniziato un testo o una chiamata a uno strumento. Claude Code invia nuovamente la richiesta una volta, entro il budget di riprovazione, e mostra Output blocked by content filtering policy se il filtro interrompe anche la seconda risposta.
- Throttle 429 temporanei, ma non il
429del limite di spesa di un gateway, che non è un throttle; vedi Spend limit reached.- Quando sei connesso con un abbonamento claude.ai, questo include throttle 429 che non portano le intestazioni di quota del tuo piano. Prima della v2.1.199, Claude Code ritentava questi throttle solo per le chiavi API e gli accessi Enterprise.
- Una richiesta rifiutata perché l'input più
max_tokenssupera il limite di contesto. Inviarla nuovamente invariata fallirebbe allo stesso modo, quindi Claude Code ritenta con unmax_tokensridotto, e smette di ritentare e compatta invece in due casi:- Quando nessuna riduzione può adattarsi, ad esempio quando la conversazione stessa riempie quasi la finestra di contesto.
- Quando un tentativo non può ridurre ulteriormente
max_tokens. Prima della v2.1.218, Claude Code poteva inviare nuovamente una richiesta ridotta che ancora non si adattava, ad esempio quando il budget di ragionamento esteso superava il contesto rimanente, fino a quando il budget di riprovazione non si esauriva.
- Una risposta che indica che Claude sta chiamando uno strumento ma non contiene alcuna chiamata a uno strumento. Claude Code ritenta chiedendo a Claude la chiamata allo strumento, fino a due volte. Se entrambi i nuovi tentativi falliscono allo stesso modo, vedi
The model's tool call could not be parsed (retry also failed).e il turno termina. Per riprovare, invia un altro messaggio. Prima della v2.1.307, Claude Code ritentava una volta prima di terminare il turno. - Una credenziale Google Cloud scaduta o mancante su Google Cloud's Agent Platform, o credenziali AWS che non riescono a caricarsi sulla tua macchina. Claude Code scarta le sue credenziali memorizzate nella cache e ritenta fino a due volte, quindi segnala l'errore in modo che tu possa autenticarti di nuovo subito, come descritto in Could not load AWS or Google Cloud credentials. Prima della v2.1.228, Claude Code ritentava una credenziale Google Cloud non riuscita attraverso il budget di riprovazione completo prima di mostrare l'errore.
- Un
401o403dall'API Anthropic, direttamente o attraverso un LLM gateway, mentre uno scriptapiKeyHelperfornisce la credenziale. Claude Code esegue nuovamente lo script e ritenta con il suo output aggiornato, entro il budget di riprovazione completo. Quando lo script stesso fallisce al nuovo tentativo, Claude Code mostra Your apiKeyHelper script is failing invece.
Prima della v2.1.227, Connection lost before a response was produced leggeva Connection closed while thinking, before producing a response e The response stalled before a response was produced leggeva Response stalled while thinking, before producing a response.
Claude Code non ritenta questi guasti:
- Un errore di convalida del certificato TLS, come un proxy che ispeziona TLS, un bundle
NODE_EXTRA_CA_CERTSmancante, o un certificato scaduto. Claude Code segnala l'errore al primo tentativo, in modo che tu possa correggere subito la configurazione del certificato; vedi SSL certificate errors. Claude Code ritenta comunque condizioni TLS transitorie come un timeout di handshake. Prima della v2.1.199, Claude Code ritentava i guasti dei certificati attraverso il budget di riprovazione completo prima di mostrare l'errore. - Un errore del server, una connessione interrotta, o un flusso bloccato che arriva dopo che Claude ha completato un blocco di testo o una chiamata a uno strumento, o ne ha iniziato uno dopo aver finito il suo ragionamento, ma prima di finire la risposta. Claude Code non esegue nuovamente la richiesta, perché ciò potrebbe eseguire le stesse chiamate agli strumenti due volte. Mantiene ciò che Claude ha completato, esegue le chiamate agli strumenti che Claude ha finito, e continua il turno dai loro risultati. Per ciò che vedi in una sessione interattiva e in una non interattiva, leggi The response above may be incomplete. Prima della v2.1.199, Claude Code scartava l'output parziale e segnalava l'intero turno come un errore quando un errore del server arrivava a metà del flusso.
- Un guasto che arriva dopo che Claude ha finito la risposta: non c'è nulla da ritentare, quindi Claude Code mantiene la risposta completa e termina il turno normalmente.
- Una Amazon Bedrock streaming response with an unexpected content-type, perché il gateway o il proxy che riscrive la risposta riscriverebbero il tentativo allo stesso modo. Richiede Claude Code v2.1.208 o successivo.
- Un tentativo non in streaming di una richiesta in streaming non riuscita che ottiene uno stato di successo ma no Claude API message in the body. Claude Code termina il turno con quell'errore.
- Una richiesta che il controllo della politica della tua organizzazione ha negato, che emerge come una riga
API Error:che porta il messaggio di negazione. Gli amministratori della tua organizzazione hanno configurato il controllo con Inference hooks, una funzione Claude Enterprise, e il messaggio termina con le istruzioni che hanno configurato, o per impostazione predefinita ti dice di contattarli. Claude Code non invia nuovamente la richiesta negata allo stesso modello o a un fallback model, perché il diniego riguarda il contenuto della richiesta piuttosto che il modello. Prima della v2.1.239, Claude Code poteva inviare nuovamente una richiesta negata, senza streaming o su un fallback model configurato, prima di mostrarti il diniego.
Cosa vedi mentre Claude Code ritenta o attende
Durante il tentativo, lo spinner mostra un countdown Retrying in Ns · attempt x/y dopo un'etichetta di errore. L'etichetta nomina il motivo specifico dal primo tentativo per i guasti su cui puoi agire subito: la rete è inattiva, un handshake TLS non è riuscito, o hai raggiunto un rate limit. Per altri errori legge API error all'inizio. A partire dalla v2.1.198 passa al motivo specifico dal terzo tentativo, o al tentativo finale quando CLAUDE_CODE_MAX_RETRIES consente meno di tre; le versioni precedenti passano solo al tentativo finale.
A partire dalla v2.1.198, il suggerimento dello spinner usuale è soppresso durante i tentativi. Una volta rivelato il motivo dell'errore, se il guasto è un sovraccarico 529 la riga sotto il countdown nomina anche dove controllare lo stato del servizio: status.claude.com sull'API Anthropic, o l'host del provider o del gateway nominato nel messaggio su altre configurazioni.
Waiting for API response
Il banner Waiting for API response · will retry in … · check your network indica che Claude Code ha atteso almeno 20 secondi senza ricevere alcun dato per una richiesta. La richiesta non è ancora fallita: il countdown corre fino al punto in cui Claude Code interrompe la connessione bloccata. Se l'interruzione avviene:
- Prima che Claude abbia completato un blocco di testo o una chiamata a uno strumento, o ne abbia iniziato uno dopo aver finito il suo ragionamento, Claude Code ritenta la richiesta o termina il turno con un errore. Automatic retries dice quali blocchi ritenta e quante volte.
- Dopo che Claude ha completato un blocco di testo o una chiamata a uno strumento, o ne ha iniziato uno dopo aver finito il suo ragionamento, ma prima che Claude abbia finito la risposta, Claude Code mantiene ciò che Claude ha completato, continua il turno da qualsiasi chiamata a uno strumento che Claude ha finito, e mostra The response above may be incomplete. In una sessione non interattiva, e per la risposta di un subagent in qualsiasi sessione, Claude Code potrebbe prima chiedere a Claude di continuare la risposta; quella voce dice quando lo fa e quando vedi ancora l'avviso lì.
- Dopo che Claude ha finito la risposta, Claude Code termina il turno normalmente.
Il banner si cancella da solo una volta che i dati riprendono o un tentativo ha successo. Se riappare ad ogni tentativo, trattalo come un network issue. Se ti connetti tramite un gateway, vedi Il banner di attesa compare e scompare dietro un gateway. Prima della v2.1.185, il banner appariva dopo 10 secondi con una formulazione diversa.
Il banner di attesa compare e scompare dietro un gateway
Se il banner Waiting for API response compare e scompare mentre Claude ragiona e ti connetti tramite un gateway, aggiorna Claude Code alla v2.1.309 o successiva. Il banner appare dopo 45 secondi senza dati su queste connessioni:
ANTHROPIC_BASE_URLimpostato su un host diverso dall'API Anthropic, come un LLM gateway- Una sessione Claude apps gateway
- Claude Platform on AWS con
ANTHROPIC_AWS_BASE_URLimpostato
Prima della v2.1.309, il banner appariva dopo 20 secondi su queste connessioni.
Sintonizza il comportamento dei tentativi
Puoi sintonizzare il comportamento dei tentativi con queste variabili d'ambiente:
| Variable | Default | Effect |
|---|---|---|
CLAUDE_CODE_MAX_RETRIES |
10 | Numero di tentativi di riprovazione. Limitato a 15 a partire dalla v2.1.186; a partire dalla v2.1.199 CLAUDE_CODE_RETRY_WATCHDOG aumenta il valore predefinito e rimuove il limite. Abbassalo per far emergere i guasti più velocemente negli script. |
CLAUDE_CODE_RETRY_WATCHDOG |
unset | Imposta su 1 in sessioni non presenziate come i lavori CI per ritentare gli errori di capacità 429 e 529 indefinitamente invece di fallire dopo CLAUDE_CODE_MAX_RETRIES tentativi. Claude Code fallisce immediatamente quando una richiesta a velocità standard riceve un 429 che segnala un limite di spesa o crediti di utilizzo esauriti, anche uno da un gateway spend cap che si ripristina secondo una pianificazione. Prima della v2.1.239, il watchdog ritentava questi indefinitamente. Per le richieste in modalità veloce, vedi Handle rate limits. Sulla v2.1.199 o successivo aumenta anche il conteggio dei tentativi predefinito per altri errori transitori, come errori del server, timeout e connessioni interrotte, a 300, approssimativamente tre ore di backoff, e rimuove il limite di 15 su CLAUDE_CODE_MAX_RETRIES se imposti esplicitamente quella variabile. |
CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS |
unset | Tempo massimo in millisecondi che ogni richiesta API trascorre in attesa durante gli errori 429 e 529 quando CLAUDE_CODE_RETRY_WATCHDOG è impostato. Se non è impostato, l'attesa non ha limite. Richiede Claude Code v2.1.295 o successivo. |
CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS |
nessun limite | Con CLAUDE_CODE_RETRY_WATCHDOG impostato, il tempo massimo in millisecondi che una singola richiesta attende il ripristino del limite di utilizzo del tuo piano, come il limite di sessione o settimanale. Quando il ripristino è più lontano di questo tetto, la richiesta fallisce subito, a meno che i crediti di utilizzo abbiano ancora margine o l'API non sia riuscita a verificarli. In questi casi viene ritentata, e fallisce se il tetto viene superato prima che abbia successo. Richiede Claude Code v2.1.301 o successivo. |
CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS |
unset | Intervallo minimo in millisecondi tra i controlli che verificano se un limite di utilizzo è già stato rimosso, mentre una richiesta attende il ripristino di quel limite con CLAUDE_CODE_RETRY_WATCHDOG impostato. Quando un controllo rileva che il limite è stato rimosso, la richiesta parte subito. Indica solo cifre da 60000 a 10800000. Se non è impostato o è fuori da quell'intervallo, non viene effettuato alcun controllo. Per sapere quando Claude Code salta questi controlli, consulta il riferimento delle variabili d'ambiente. Richiede Claude Code v2.1.305 o successivo. |
CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS |
500 | Ritardo iniziale in millisecondi del backoff tra i nuovi tentativi di una richiesta che l'API rifiuta con un errore di sovraccarico 529. Aumentalo, fino a 32000, per distribuire i nuovi tentativi su un intervallo più lungo quando l'API è al limite della capacità. Non ha effetto quando CLAUDE_CODE_RETRY_WATCHDOG è impostato su 1, o quando la richiesta rifiutata è stata inviata in modalità veloce. Richiede Claude Code v2.1.292 o successivo. |
CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS |
32000 | Limite massimo in millisecondi del backoff tra i nuovi tentativi di una richiesta che l'API rifiuta con un errore di sovraccarico 529. Aumentalo, fino a 64000, in modo che i nuovi tentativi successivi continuino a distanziarsi quando l'API è al limite della capacità. Non ha effetto quando CLAUDE_CODE_RETRY_WATCHDOG è impostato su 1, o quando la richiesta rifiutata è stata inviata in modalità veloce. Richiede Claude Code v2.1.296 o successivo. |
API_TIMEOUT_MS |
600000 | Tempo in millisecondi entro cui ogni tentativo di richiesta deve ricevere le intestazioni di risposta. Non limita quanto a lungo prosegue una risposta in streaming dopo quel momento. Aumentalo per reti lente o proxy. Per come limita la scadenza del primo byte, vedi No response from API. |
CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES |
unset | Limite di nuovi invii di una richiesta non in streaming che va in timeout. Al raggiungimento del limite, la richiesta fallisce. Una risposta di Claude che impiega più del timeout per essere generata va di nuovo in timeout a ogni nuovo invio, quindi imposta un numero basso come 0 per fallire prima. Per il timeout di ogni tentativo, vedi Quanto attende un tentativo non in streaming. Richiede Claude Code v2.1.285 o successivo. |
CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS |
unset | Scadenza in millisecondi per il primo byte di risposta di una richiesta di streaming. Richiede Claude Code v2.1.242 o successivo. Per come Claude Code sceglie la scadenza quando questo non è impostato, vedi No response from API. |
Quanto attende un tentativo non in streaming
Un tentativo non in streaming termina al suo timeout della richiesta o al timeout di inattività del corpo, a seconda di quale arrivi prima:
- Timeout della richiesta:
API_TIMEOUT_MSquando imposti un valore positivo, altrimenti 300 secondi in una sessione locale. - Timeout di inattività del corpo: da 5 a 6 minuti senza una risposta, per quanto alto imposti
API_TIMEOUT_MS, dove è attivo e non l'hai disattivato.
Errori del server
La maggior parte di questi errori proviene dal provider di inferenza: il servizio di Anthropic su Anthropic API e il servizio dietro l'endpoint di quel provider su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway personalizzato. Auto mode cannot determine the safety of an action e Agent terminated early due to an API error coprono anche cause dal tuo lato, come un account Amazon Bedrock che non può invocare il modello del classificatore o un subagent che ha raggiunto un limite di utilizzo.
API Error: 500 Internal server error
Claude Code mostra il codice di stato e il messaggio di errore dell'API per qualsiasi risposta 5xx. L'esempio seguente mostra una risposta 500 su Anthropic API:
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 frase finale indica dove controllare lo stato del servizio e varia in base al provider. Le configurazioni di Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry indicano lo stato del servizio di quel provider. Un ANTHROPIC_BASE_URL personalizzato indica l'host del gateway.
Un 5xx dall'API stessa indica un errore imprevisto all'interno dell'API. Non è causato dal tuo prompt, dalle tue impostazioni o dal tuo account.
Quando un proxy, un load balancer o un gateway risponde con una pagina di errore HTML, il messaggio mostra il codice di stato e il titolo della pagina, come API Error: 502 Bad Gateway. Per una pagina senza titolo, il messaggio mostra invece il codice di stato e il suo nome standard. Prima della v2.1.281, il codice di stato veniva omesso quando la pagina aveva un titolo e il markup grezzo della pagina veniva stampato quando non ne aveva uno.
Cosa fare:
- Controlla status.claude.com o la pagina di stato del provider indicata nel messaggio per eventuali incidenti in corso
- Aspetta un minuto, quindi invia di nuovo il messaggio. Il tuo messaggio originale è ancora nella conversazione, quindi per un prompt lungo puoi digitare
try againinvece di incollarlo tutto. - Se
ANTHROPIC_BASE_URLpunta a un gateway LLM e ogni richiesta non riesce in questo modo, verifica che il tuo gateway e il relativo upstream accettino i campi della ricerca degli strumenti. Per impostazione predefinita, Claude Code invia i campi degli strumentidefer_loadinge i blocchitool_reference, con l'intestazioneanthropic-betache li abilita. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi conENABLE_TOOL_SEARCH. - Se l'errore persiste senza alcun incidente pubblicato, esegui
/feedbackin modo che Anthropic possa indagare con i dettagli della tua richiesta. Consulta Segnalare un errore se/feedbacknon è disponibile nel tuo ambiente.
API Error: Repeated 529 Overloaded errors
L'API è temporaneamente al limite della capacità per tutti gli utenti. Claude Code ha già riprovato più volte prima di mostrare questo messaggio:
API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.
La frase finale varia in base al provider nello stesso modo dell'errore 500 descritto sopra.
Un 529 non è il tuo limite di utilizzo e non viene conteggiato nella tua quota.
Cosa fare:
-
Controlla status.claude.com o la pagina di stato del provider indicata nel messaggio per eventuali avvisi sulla capacità
-
Riprova tra qualche minuto
-
Esegui
/modele passa a un modello diverso per continuare a lavorare, poiché la capacità è monitorata per modello. Claude Code ti chiede di farlo quando un modello è sotto un carico particolarmente elevato, ad esempioOpus is experiencing high load, please use /model to switch to Sonnet. Sui modelli Fable il messaggio indica Fable.In una sessione eseguita dall'app Claude Desktop, come la scheda Code o Cowork, il messaggio è
Opus is experiencing high load. Switch to Sonnet.e cambi modello con il selettore di modelli dell'app.
Request timed out
L'API non ha risposto entro la scadenza della connessione.
Request timed out
Il timeout predefinito della richiesta è di 10 minuti. Se imposti API_TIMEOUT_MS su 0, questo timeout della richiesta è disattivato. La scadenza del primo byte e il timeout di inattività del corpo non si disattivano quando imposti 0, quindi una richiesta in streaming viene comunque eseguita con quelli tra questi che si applicano alla tua connessione. Un tentativo non in streaming mantiene il suo limite di 300 secondi in una sessione locale e può comunque terminare con questo messaggio.
Cosa fare:
- Se ogni richiesta non riesce con questo messaggio e hai impostato
API_TIMEOUT_MSsu0, controllaclaude --version. Su una versione precedente alla v2.1.305, aggiorna Claude Code o imposta un valore positivo. - Riprova la richiesta
- Se la causa è una rete lenta o un proxy, aumenta
API_TIMEOUT_MScome descritto in Nuovi tentativi automatici - Se i timeout sono frequenti e la tua rete per il resto funziona correttamente, consulta Errori di rete e di connessione più avanti
No response from API
Claude Code ha inviato una richiesta in streaming e l'API non ha restituito intestazioni di risposta entro la scadenza per il primo byte. Claude Code interrompe una richiesta di questo tipo invece di attendere l'intero timeout di richiesta API_TIMEOUT_MS e la invia di nuovo se il budget dei nuovi tentativi lo consente. Quando la scadenza passa anche per il nuovo tentativo, il turno termina con questo messaggio, che mostra quanto ha atteso ciascun tentativo.
Se imposti CLAUDE_CODE_RETRY_WATCHDOG, Claude Code continua a riprovare secondo il budget descritto in Regolare il comportamento dei nuovi tentativi invece di terminare il turno.
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 imposta separatamente l'attesa delle intestazioni di risposta per il primo tentativo e l'attesa per il nuovo tentativo:
-
Primo tentativo:
CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MSquando lo imposti su 1 o più, limitato a un valore compreso tra 10 secondi e 30 minuti. Altrimenti Claude Code usa il timeout del watchdog a livello di byte indicato in Watchdog di inattività dello streaming, quindi le variabili che modificano quel timeout modificano anche questa attesa. In entrambi i casi, Claude Code aggiunge un secondo per ogni 32KB del corpo della richiesta. -
Nuovo tentativo: un secondo in meno di
API_TIMEOUT_MS, poco meno di 10 minuti per impostazione predefinita, in modo che il nuovo tentativo possa durare più a lungo di un proxy o gateway che trattiene la risposta fino al completamento della generazione. Su Amazon Bedrock, il nuovo tentativo usa la stessa scadenza del primo tentativo e il messaggio mostra una sola durata invece di due.Tranne che su Amazon Bedrock, se imposti
API_TIMEOUT_MSsu0, il nuovo tentativo attende 10 minuti più un secondo per ogni 32KB, oppure quanto il primo tentativo se questo è più lungo.
Nessuna delle due attese supera un secondo in meno di un API_TIMEOUT_MS positivo, e un API_TIMEOUT_MS positivo inferiore a 11 secondi disattiva la scadenza. Il watchdog a livello di byte parte solo quando arrivano le intestazioni di risposta, quindi una risposta che smette di inviare byte dopo quel momento segue le regole per i flussi bloccati invece di questa scadenza.
In una sessione Claude apps gateway, questa scadenza è attiva solo quando la attivi impostando CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS su 1 o più.
Cosa fare:
- Invia di nuovo il messaggio. Il tuo messaggio originale è ancora nella conversazione, quindi per un prompt lungo puoi digitare
try againinvece di incollarlo tutto. - Se si ripete, trattalo come un problema di rete o di proxy.
- Se un proxy o gateway sulla tua rete trattiene le risposte fino al loro completamento, aumenta
API_TIMEOUT_MSin modo che il nuovo tentativo attenda più a lungo. Su Amazon Bedrock, aumenta ancheCLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS. - Se il primo tentativo continua ad andare in timeout e poi il nuovo tentativo riesce, aumenta
CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MSin modo che anche il primo tentativo attenda abbastanza a lungo.
Prima della v2.1.242, Claude Code attendeva l'intero timeout di richiesta API_TIMEOUT_MS, 10 minuti per impostazione predefinita, prima di far fallire una richiesta in streaming senza risposta. Prima della v2.1.261, il nuovo tentativo attendeva la stessa scadenza del primo tentativo e il messaggio non mostrava alcuna durata. Prima della v2.1.307, Claude Code ignorava CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS in una sessione Claude apps gateway.
The response above may be incomplete
Una richiesta in streaming non è riuscita mentre la risposta era ancora in corso, dopo che Claude aveva completato un blocco di testo o una chiamata a uno strumento, oppure ne aveva iniziato uno dopo aver terminato il ragionamento. Inviare di nuovo la richiesta potrebbe eseguire due volte le stesse chiamate agli strumenti, quindi Claude Code conserva l'output che Claude ha completato e aggiunge questo avviso invece di scartare il turno. La variante che vedi indica la causa:
API Error: Server error mid-response. The response above may be incomplete.
API Error: Connection lost mid-response. The response above may be incomplete.
API Error: Your computer went to sleep mid-response. The response above may be incomplete.
API Error: The response stopped arriving. The response above may be incomplete.
API Error: Part of the response never arrived. The response above may be incomplete.
API Error: The response stream was malformed. The response above may be incomplete.
Server error mid-response: un errore di sovraccarico o un errore del server 5xx a metà flusso. Questa variante richiede Claude Code v2.1.199 o successivo; prima di allora, in questo caso l'output parziale veniva scartato e l'intero turno veniva segnalato come errore.Connection lost mid-response: la connessione si è interrotta. Vedi questa variante anche quando un proxy o gateway chiude regolarmente il corpo della risposta prima che la risposta sia terminata.Your computer went to sleep mid-response: Claude Code ha rilevato che il tuo computer è entrato in sospensione mentre la risposta era in streaming. Quando il computer si riattiva, Claude Code considera la connessione interrotta e smette di leggerla.Part of the response never arrived: un evento del flusso è andato perso tra l'API e Claude Code, quindi un evento successivo ha fatto riferimento a contenuto mai arrivato. Prima della v2.1.281, questo caso terminava il turno conAPI Error: Content block not found.The response stream was malformed: è arrivato un evento per un blocco di contenuto già terminato, oppure è arrivato un evento danneggiato. Un evento danneggiato è un evento i cui dati non sono JSON valido, il cui contenuto manca o il cui contenuto non corrisponde al tipo dell'evento. Prima della v2.1.284, quando un evento con JSON non valido arrivava dopo che Claude aveva completato il ragionamento, un blocco di testo o una chiamata a uno strumento, veniva invece mostrato l'errore grezzo del parser, ad esempio uno che inizia conAPI Error: JSON Parse error.The response stopped arriving: la connessione è rimasta aperta ma ha smesso di trasmettere dati, quindi il watchdog di inattività dello streaming l'ha interrotta. Prima della v2.1.222, Claude Code poteva segnalare questo errore anche sulle connessioni gateway raggiunte tramiteANTHROPIC_BASE_URLoANTHROPIC_AWS_BASE_URLmentre i ping keep-alive del server continuavano ad arrivare, perché su quelle connessioni contava solo gli eventi di risposta analizzati; l'aggiornamento elimina quei timeout spuri su quei percorsi. I gateway raggiunti tramite un URL di base del provider comeANTHROPIC_BEDROCK_BASE_URLnon sono coperti dal watchdog a livello di byte; consulta Watchdog di inattività dello streaming.
Prima della v2.1.227, Connection lost mid-response era Connection closed mid-response e The response stopped arriving era Response stalled mid-stream.
Quando un evento del flusso perso, duplicato o danneggiato arriva prima che Claude abbia iniziato qualsiasi testo o chiamata a uno strumento, non vedi questo avviso:
- Se Claude aveva completato solo il ragionamento, Claude Code invia di nuovo la richiesta. Quando i flussi inviati di nuovo si interrompono allo stesso modo, il turno termina con
Part of the response never arrived and no response was produced. Try again.oThe response stream was malformed and no response was produced. Try again. - Se non era stato completato nulla, Claude Code invia invece di nuovo la richiesta senza streaming. Se hai disattivato quel fallback con
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK, il turno termina conAPI Error: Content block not foundper un evento perso o conAPI Error: Content block already closedper un evento duplicato. Per un evento danneggiato con il fallback disattivato, il turno termina conAPI Error: Stream event unreadableo con l'errore grezzo del parser.
In quattro casi, Claude Code gestisce l'errore senza mostrare subito questo avviso:
- Nelle fasi iniziali della risposta, Claude Code riprova dopo l'errore oppure termina il turno con un errore diverso. Consulta Nuovi tentativi automatici.
- Quando uno di questi errori arriva dopo che Claude ha terminato la risposta, Claude Code conserva la risposta completa e termina il turno normalmente, senza questo avviso. Prima della v2.1.222, Claude Code mostrava questo avviso quando la connessione si interrompeva o si bloccava dopo il completamento della risposta e segnalava il turno come errore anche se la risposta era completa.
- In una sessione non interattiva, come un'esecuzione
-p, un'esecuzione dell'Agent SDK o una sessione cloud, non devi inviare tucontinuequando la risposta interrotta si trova nella conversazione principale e contiene testo ma nessuna chiamata a uno strumento: Claude Code conserva l'output parziale e chiede a Claude di continuare da dove si era fermato, fino a tre volte di seguito. Vedi questo avviso per una risposta di questo tipo solo quando Claude Code ha esaurito quelle continuazioni. Prima della v2.1.246, Claude Code terminava un turno non interattivo con questo avviso alla prima interruzione. - In un subagent, che la sessione sia interattiva o meno: quando la sua risposta interrotta contiene testo ma nessuna chiamata a uno strumento, Claude Code chiede al subagent di continuare. L'avviso diventa l'ultimo messaggio del subagent solo quando quelle continuazioni sono esaurite. Prima della v2.1.257, un subagent mostrava questo avviso alla prima interruzione.
Cosa fare:
- In una sessione interattiva, leggi la risposta che rimane sullo schermo: Claude Code conserva ogni blocco che Claude ha completato prima dell'errore, ma scarta un blocco finale interrotto quando il turno termina, quindi le frasi finali o le chiamate agli strumenti finali potrebbero mancare. Rispondi con
continueper far riprendere Claude dal suo ultimo blocco completato. - In modalità non interattiva (
-p):- Con l'output di testo predefinito, Claude Code stampa l'ultimo blocco di testo completato che conserva ancora da un punto precedente del turno, seguito da questo messaggio. Quando non ne conserva nessuno, Claude Code stampa solo questo messaggio, ad esempio perché ha compattato la conversazione a metà turno e ha eliminato quel testo. Prima della v2.1.219, Claude Code stampava solo questo messaggio nell'output di testo di
-pe scartava la risposta già prodotta. - Con
--output-format jsonostream-json, Claude Code riporta questo messaggio nel camporesult. - Per continuare il turno quando la connessione è stabile, riprendi la sessione e invia
continuecome descritto in Continuare le conversazioni.
- Con l'output di testo predefinito, Claude Code stampa l'ultimo blocco di testo completato che conserva ancora da un punto precedente del turno, seguito da questo messaggio. Quando non ne conserva nessuno, Claude Code stampa solo questo messaggio, ad esempio perché ha compattato la conversazione a metà turno e ha eliminato quel testo. Prima della v2.1.219, Claude Code stampava solo questo messaggio nell'output di testo di
Auto mode cannot determine the safety of an action
Il modello che la modalità auto usa per classificare le azioni non è riuscito a produrre una decisione, quindi la modalità auto non ha approvato automaticamente l'azione. Il messaggio che vedi dipende da come il classificatore non è riuscito.
Le letture, le ricerche e le modifiche all'interno della tua directory di lavoro non passano dal classificatore, quindi continuano a funzionare in tutti questi casi.
Quando il modello del classificatore non è disponibile:
<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.
In una sessione interattiva, sotto la chiamata allo strumento appare una riga attenuata Not run · auto mode's check had no usable answer al posto di questo messaggio. La riga può anche sostituire un messaggio che indica che il server non ha fornito alcun verdetto oppure, al di fuori di una sessione remota, uno che inizia con Auto mode could not evaluate. Premi Ctrl+O per leggere il suo messaggio nel visualizzatore della trascrizione. Prima della v2.1.296, il messaggio appariva come errore in rosso.
Quando Claude Code riesce a determinare la categoria dell'errore, la indica tra parentesi dopo temporarily unavailable, ad esempio <model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now. Le categorie sono (rate-limited), (overloaded), (server error), (timed out) e (connection failed). Se (timed out) o (connection failed) si ripete, controlla la tua connessione; consulta Unable to connect to API. Prima della v2.1.229, il messaggio non indicava mai una categoria e diceva Wait briefly and then try this action again.
Quando nessuna categoria è adatta, il messaggio appare senza categoria tra parentesi; più errori diversi producono questa forma. Su Amazon Bedrock, incluso l'endpoint Mantle, appare anche quando il tuo account AWS non può invocare il modello indicato nel messaggio, e quell'errore si ripete a ogni nuovo tentativo finché al tuo account non viene concesso l'accesso al modello.
Cosa fare:
- Riprova dopo qualche secondo; Claude vede lo stesso messaggio e di solito riprova da solo. Un errore temporaneo non è legato all'idoneità alla modalità auto; non devi modificare le impostazioni
- Se i nuovi tentativi continuano a non riuscire, prosegui con attività di sola lettura e torna più tardi all'azione bloccata
- Su Amazon Bedrock, se il messaggio si ripresenta a ogni nuovo tentativo, verifica che il tuo account possa invocare il modello indicato: per i modelli Amazon Bedrock standard, conferma che la tua policy IAM ne consenta l'invocazione; per gli ID modello Mantle, contatta il team del tuo account AWS
- Se il messaggio si ripresenta a ogni nuovo tentativo e indica il modello che hai impostato in
CLAUDE_CODE_AUTO_MODE_MODEL, verifica che l'API o il provider cloud su cui viene eseguita la tua sessione serva quell'ID modello. In caso contrario, imposta la variabile su un ID modello che serve, oppure rimuovi la variabile per usare il modello del classificatore predefinito.
Quando una richiesta al classificatore non riesce perché il tuo token OAuth è scaduto o è stato ruotato da un'altra sessione, Claude Code aggiorna il token e riprova la richiesta una volta, quindi una normale scadenza del token non si manifesta con questo messaggio. Prima della v2.1.216, un token scaduto o ruotato faceva fallire ogni richiesta al classificatore e la modalità auto negava ogni azione controllata con questo messaggio finché il token non veniva aggiornato.
Quando il classificatore ha restituito una risposta non analizzabile:
Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details
Cosa fare:
- Riprova l'azione; di solito riesce al tentativo successivo
- Esegui
claude --debuge ripeti l'azione per vedere i dettagli nel log di debug
Quando un controllo di sicurezza dell'API separato ha bloccato la richiesta al classificatore a causa di contenuti precedenti della conversazione:
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 nega l'azione ma comunica a Claude che non si tratta di un giudizio sulla pericolosità dell'azione e che deve proseguire con altre attività invece di riprovare. Questi rifiuti non vengono conteggiati nelle soglie di pausa della modalità auto. In un'esecuzione -p non interattiva, Claude Code non interrompe l'esecuzione. Ciò che Claude riceve dipende da dove ha richiesto l'azione:
- A un subagent in background in un'esecuzione
-psenza--input-format stream-json, Claude Code restituisce un risultato di errore contenenteAgent aborted: auto mode classifier request refused by the safety safeguard in headless mode - In tutti gli altri casi, incluse le sessioni interattive e la conversazione principale di un'esecuzione
-p, Claude Code restituisce quel rifiuto a Claude
Prima della v2.1.225, Claude Code conteggiava questi rifiuti nelle soglie di pausa e restituiva lo stesso messaggio di rifiuto di un vero blocco del classificatore.
Cosa fare:
- Non si tratta di una decisione sulla tua azione. Contenuti già presenti nella tua conversazione hanno attivato un filtro di sicurezza dell'API quando la modalità auto ha inviato la conversazione al classificatore
- Riprovare non servirà; gli stessi contenuti della conversazione attiveranno di nuovo il filtro
- In una sessione interattiva, passa a una modalità di permesso diversa in modo da poter approvare l'azione quando ti viene chiesto
- Avvia una nuova conversazione senza i contenuti che attivano il filtro
Quando la conversazione è troppo lunga per la richiesta al classificatore di Claude Code e Claude Code non riesce a compattarla da solo:
Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)
Ciò che accade all'azione dipende da dove Claude l'ha richiesta:
- In una sessione interattiva, la modalità auto ripiega su una normale richiesta di permesso per quell'azione, così puoi approvarla o negarla manualmente
- A un subagent in background in un'esecuzione
-pnon interattiva senza--input-format stream-json, Claude Code restituisce un risultato di errore contenenteAgent aborted: auto mode classifier transcript exceeded context window in headless modee l'esecuzione continua - Altrove in un'esecuzione
-psenza un--permission-prompt-tool, non c'è alcuna richiesta di permesso su cui ripiegare, quindi l'azione non viene eseguita e l'esecuzione continua
Cosa fare:
- In una sessione interattiva, approva o nega l'azione nella richiesta che appare
- In una sessione interattiva, esegui
/compactper ridurre le dimensioni della conversazione in modo che le azioni successive rientrino di nuovo nella finestra del classificatore
The server returned no safety verdict
Con la revisione del classificatore lato server, la modalità auto nega un'azione quando il server non fornisce un verdetto su di essa. Il rifiuto indica una categoria tra parentesi quando Claude Code riesce a determinarla, come (timed out):
The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.
Il resto del messaggio indica a Claude se un nuovo tentativo può essere utile. Prima di alcuni di questi rifiuti, Claude Code attende, in modo che il tentativo successivo di Claude non segua immediatamente. Durante l'attesa in una sessione interattiva, lo spinner mostra Auto mode check unavailable con un conto alla rovescia, e premendo Esc interrompi il turno.
Dopo dieci risposte consecutive senza verdetto, la modalità auto interrompe il turno:
Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.
Alcuni rifiuti non vengono conteggiati nei dieci, incluso un rifiuto dovuto a una modifica apportata da un hook o da un mod.
Il messaggio di interruzione appare in un punto diverso a seconda del tipo di sessione:
- In una sessione interattiva, il messaggio appare come avviso nella trascrizione e il turno termina
- In un'esecuzione
-pnon interattiva, l'esecuzione termina e segnala un errore di esecuzione. Con l'output di testo predefinito, il messaggio viene stampato su stderr. - Quando un subagent ha raggiunto il limite, il subagent si ferma prima di terminare e Claude riceve ciò che ha prodotto, con una nota che indica che la modalità auto lo ha fermato
Cosa fare:
- In una sessione interattiva, premi
Ctrl+Oper leggere il testo del rifiuto nel visualizzatore della trascrizione. - Se il rifiuto indica
(the conversation is too long for the check), esegui/compactal prompt di Claude Code per accorciare la conversazione. Finché la conversazione non è più breve, inviare un altro messaggio produce lo stesso rifiuto. Se hai disattivato la compattazione automatica, riattivala in modo che Claude Code compatti da solo la prossima volta. - Invia un altro messaggio per far riprovare Claude. Il conteggio delle risposte riparte da zero.
- Se l'interruzione si ripete e le tue richieste passano attraverso un gateway o proxy LLM, verifica se tronca o riscrive le risposte in streaming. La sezione Revisione del classificatore lato server indica quale comportamento del gateway causa i rifiuti, e la guida alla compatibilità dei gateway elenca cosa deve essere inoltrato senza modifiche.
- Imposta
CLAUDE_CODE_AUTO_MODE_SERVER=0prima di avviare Claude Code per usare invece le sue richieste al classificatore. Prima della v2.1.281, Claude Code non leggeva la variabile su una connessione diretta ad Anthropic API. - Per approvare tu stesso le azioni, esci dalla modalità auto
Prima della v2.1.280, Claude Code negava immediatamente ogni azione proveniente da una risposta senza verdetto e non interrompeva mai il turno.
Prima della v2.1.302, su una connessione diretta ad Anthropic API, Claude Code non compattava una conversazione diventata troppo lunga per il controllo del server.
a hook changed this call's input after auto mode reviewed it
Questo rifiuto significa che un hook o un mod ha modificato l'input della chiamata dopo che il server l'ha revisionata, quindi la revisione non copre ciò che verrebbe eseguito. Non si tratta di un giudizio sulla pericolosità dell'azione.
Le chiamate successive nella stessa risposta di Claude possono essere negate con questo motivo:
another call in this response was changed by a hook after auto mode reviewed it, or could not be confirmed unchanged
Claude può quindi inviare di nuovo ogni chiamata negata in modo che il server la revisioni. Se si apre una richiesta di permesso, rispondi. Non devi fare nient'altro, a meno che Claude non dica nella sua risposta che la modalità auto non è riuscita a controllare la chiamata. In quel caso, interrompi la modifica o approva tu stesso la chiamata, e chiedi a Claude di riprovare la chiamata:
- Interrompi la modifica: disattiva l'hook o il mod che ha modificato la chiamata o una chiamata precedente nella stessa risposta di Claude, oppure chiedi al tuo amministratore di disattivarlo. Per cercare un hook, esegui
/hooksal prompt di Claude Code. In una sessione del terminale, esegui/pluginper vedere i mod attivi. - Approva tu stesso la chiamata: passa alla modalità Manual
Was not reviewed and did not run
Un rifiuto was not reviewed and did not run significa che la conversazione è troppo lunga perché il classificatore della modalità auto possa controllare l'azione, quindi l'azione non è stata eseguita. Claude Code restituisce questo messaggio a Claude:
<tool> was not reviewed and did not run: the conversation is too long for auto mode's classifier. Claude Code will try to compact the conversation before the next request; if this action is still needed after that, issue it again and it will be reviewed normally.
Se la compattazione non riesce, le azioni successive che il classificatore non può controllare ricevono uno di altri due messaggi:
- Un rifiuto
gave no verdict (the conversation is too long for the check) - Il messaggio
Auto mode classifier transcript exceeded context window
Cosa fare:
- Se la compattazione annunciata dal messaggio riesce, non devi fare nulla.
- Se vedi uno di questi due messaggi, esegui
/compactal prompt di Claude Code per accorciare tu stesso la conversazione. Se hai disattivato la compattazione automatica, riattivala in modo che Claude Code compatti da solo la prossima volta.
Agent terminated early due to an API error
Una richiesta API di un subagent non è riuscita in modo definitivo, ad esempio perché è stato raggiunto un limite di utilizzo o perché i nuovi tentativi per un errore del server si sono esauriti, quindi il subagent si è fermato prima di completare la sua attività. Questo messaggio richiede Claude Code v2.1.199 o successivo; prima di allora il testo dell'errore API veniva restituito a Claude come se fosse il risultato del subagent.
Agent terminated early due to an API error: <error detail>
Cosa fare:
- Individua la sezione di questa pagina corrispondente al dettaglio dell'errore dopo i due punti, come Limiti di utilizzo o Errori del server, e segui i passaggi di quella sezione
- Una volta risolto l'errore sottostante, chiedi a Claude di riprovare l'attività o di riprendere il subagent
Quando un rate limit, un sovraccarico o un errore del server interrompe un subagent in primo piano che ha già prodotto output di testo, Claude riceve quell'output parziale contrassegnato come incompleto invece di questo errore. Anche un subagent il cui unico output erano chiamate agli strumenti riceve questo errore; nella v2.1.199 quel caso restituiva invece un risultato parziale vuoto. Consulta Errori API nei subagent.
Limiti di utilizzo
La maggior parte degli errori in questa sezione significa che è stata raggiunta una quota associata al tuo account o al tuo piano. Tre funzionano diversamente: Server is temporarily limiting requests è una limitazione lato server non correlata alla quota del tuo piano, Usage credits required for 1M context è un controllo di diritto piuttosto che una quota esaurita, e The prompt to confirm went unanswered significa che un prompt di consenso per i crediti di utilizzo è stato chiuso senza risposta, indipendentemente dal fatto che sia stata raggiunta una quota.
You've hit your session limit
I piani di abbonamento includono un'indennità di utilizzo mobile. Quando si esaurisce, vedrai uno di questi messaggi:
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 blocca ulteriori richieste fino all'ora di ripristino mostrata nel messaggio. I limiti di sessione e settimanali sono condivisi tra tutti i modelli, quindi il cambio di modelli non ripristina l'accesso. I limiti Opus e Sonnet si applicano ciascuno solo alle richieste a quella famiglia di modelli, quindi il passaggio a un modello al di fuori della famiglia con /model ti mantiene al lavoro.
In una sessione interattiva con accesso tramite abbonamento claude.ai, Claude Code può anche attendere nella sessione aperta e continuare l'attività interrotta poco dopo il ripristino. Vedi Wait for a usage limit to reset per quello che vedi, come avviare o annullare un'attesa e come disattivare la continuazione automatica. Prima della v2.1.234, Claude Code non offriva questa attesa.
L'utilizzo conta sia per le indennità di sessione che settimanali contemporaneamente. Un singolo picco di attività intensa, come un grande fanout di workflow, può esaurire l'indennità settimanale prima che la finestra di sessione si ripristini.
Cosa fare:
- Attendi l'ora di ripristino mostrata nell'errore
- Nella scheda Code dell'app Desktop, la scheda session-limit offre una casella di controllo Auto-continue when limits reset. La scheda weekly-limit non lo fa. Quando è selezionata, l'app Desktop riprova il turno interrotto dopo il ripristino e mostra l'ora del nuovo tentativo sulla scheda. La casella di controllo Desktop e l'impostazione Continue automatically at usage limit della CLI in
/configsono separate, quindi disattiva ciascuna per conto proprio. - Per il limite Opus o Sonnet, esegui
/modele passa a un modello al di fuori di quella famiglia per continuare a lavorare. Ogni modello ha la propria cache di prompt, quindi la richiesta successiva rilegge l'intera conversazione senza hit della cache; vedi Switching models - Esegui
/usageper vedere i limiti del tuo piano e quando si ripristinano - Esegui
/usage-creditsper acquistare utilizzo aggiuntivo su Pro, Max e Ultra, o per richiederlo al tuo amministratore su Team ed Enterprise. Vedi usage credits for paid plans per come viene fatturato. - Per aggiornare il tuo piano per limiti di base più elevati, vedi claude.com/pricing
Prima che una finestra si esaurisca, Claude Code può avvertirti che hai utilizzato la maggior parte di essa, con un messaggio come You've used 85% of your session limit · resets 3:45pm. Per monitorare l'indennità rimanente, aggiungi i campi rate_limits a una riga di stato personalizzata, oppure nell'app Desktop fai clic sull'anello di utilizzo.
Usage credits required for 1M context
Il modello selezionato utilizza la finestra di contesto estesa da 1M token e il tuo piano lo include solo tramite crediti di utilizzo.
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
In una sessione che l'app Claude Desktop esegue, il suggerimento non nomina alcun comando: punta alla pagina delle impostazioni di utilizzo di claude.ai, oppure sui piani Team ed Enterprise dice di attivare i crediti di utilizzo su claude.ai/admin-settings/usage o di chiedere al tuo amministratore.
Questo è un controllo di diritto, non un esaurimento della quota. Si attiva anche quando le tue indennità di sessione e settimanali hanno capacità rimanente. Vedi Extended context per quali piani includono il contesto 1M direttamente e quali richiedono crediti di utilizzo.
Quando questo errore appare a metà conversazione perché il contesto è cresciuto oltre 200K token, Claude Code compatta automaticamente la conversazione al di sotto del limite di contesto standard e mantiene la sessione a quel limite in seguito, quindi non è necessaria alcuna azione. Nelle versioni precedenti alla v2.1.172, l'errore si ripeteva su ogni richiesta successiva incluso /compact; esegui /clear su quelle versioni per recuperare. I passaggi seguenti si applicano quando hai esplicitamente selezionato un modello [1m].
Cosa fare:
- Esegui
/modele seleziona la variante senza il suffisso[1m]per tornare alla finestra di contesto standard - Dove il messaggio nomina
/usage-credits, eseguilo per attivare la fatturazione a consumo per la variante 1M su Pro, Max e Ultra, o per richiedere crediti di utilizzo al tuo amministratore su Team ed Enterprise. Una volta che i crediti di utilizzo sono attivati, riavvia Claude Code o avvia una nuova sessione, a seconda di quello che dice il messaggio. Fino al riavvio, la sessione rimane al limite di contesto standard. - Se l'errore persiste dopo
/model, un ID modello 1M potrebbe essere impostato altrove. Vedi Setting your model per i percorsi di configurazione da controllare in ordine di priorità. - Per rimuovere completamente le varianti 1M dal selettore di modelli, imposta
CLAUDE_CODE_DISABLE_1M_CONTEXT=1
Prima della v2.1.268, il messaggio terminava con run /usage-credits to turn them on, or /model to switch to standard context e non menzionava il riavvio.
The prompt to confirm went unanswered
Quando il prompt di consenso per i crediti di utilizzo Fable si chiude senza che nessuno risponda, Claude Code termina il turno con uno di questi messaggi:
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
I messaggi nominano il modello Fable della sessione, quindi su Fable 5.2 leggono continuing on Fable 5.2 e Fable 5.2 now uses usage credits. Prima della v2.1.257, il primo messaggio iniziava Fable 5 limit reached.
Questo accade nelle sessioni Remote Control, nelle sessioni in background, nelle sessioni dei membri di un team di agenti e nelle sessioni che un'altra applicazione ospita tramite Agent SDK. Per quando Claude Code chiude il prompt, vedi Fable and usage credits.
Cosa fare:
- Dove viene eseguita la sessione, al terminale o nell'applicazione che la ospita, invia un altro prompt e rispondi al prompt di consenso quando riappare. Per una sessione in background, collegati prima dalla vista agenti. Reinviare da un client Remote Control mostra di nuovo questo messaggio, perché il client non può visualizzare il prompt.
- Esegui
/modelper passare a un modello che non fattura i crediti di utilizzo - Per darti più tempo, imposta
dialogExpirysu un valore più lungo o"never"
Prima della v2.1.236, questo messaggio non appariva: mentre un client Remote Control era connesso, Claude Code attendeva 60 secondi per una risposta e poi continuava il turno sul tuo modello predefinito.
Server is temporarily limiting requests
L'API ha applicato una limitazione di breve durata non correlata alla quota del tuo piano.
API Error: Server is temporarily limiting requests (not your usage limit)
Claude Code distingue questi casi dal limite del tuo piano per l'assenza delle intestazioni di quota unificata che una vera risposta di limite porta. A partire dalla v2.1.199 questo viene riprovato automaticamente con backoff prima di essere mostrato, indipendentemente da come ti autentichi. Nelle versioni precedenti, una sessione con accesso tramite abbonamento claude.ai faceva fallire il turno alla prima occorrenza; solo gli accessi con chiave API ed Enterprise riprovavano.
Cosa fare:
- Attendi brevemente e riprova
- Controlla status.claude.com se persiste
Request rejected (429)
Hai raggiunto il rate limit configurato per la tua chiave API, il progetto Amazon Bedrock o il progetto Google Cloud.
API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com.
La frase finale nomina dove controllare l'integrità del servizio e varia in base al provider. Le configurazioni Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry nominano lo stato del servizio di quel provider invece della pagina di stato Anthropic. Un ANTHROPIC_BASE_URL personalizzato nomina l'host del gateway.
Quando un proxy, un load balancer o un gateway tra Claude Code e l'API risponde con la propria pagina HTML 429, il testo dopo il · è il titolo di quella pagina quando ne ha uno, come Too Many Requests. Prima della v2.1.281, l'intero markup della pagina era stampato dopo il ·.
Cosa fare:
- Esegui
/statuse conferma che la credenziale attiva è quella che ti aspetti. UnANTHROPIC_API_KEYdimenticato nel tuo ambiente può instradare le richieste attraverso una chiave di livello inferiore invece del tuo abbonamento. - Controlla la console del tuo provider per i limiti attivi e richiedi un livello più elevato se necessario
- Per le chiavi API Anthropic, vedi il riferimento sui rate limit per come funzionano i livelli e come impostare i limiti per workspace
- Riduci la concorrenza: evita di eseguire molti subagent in parallelo, o passa a un modello più piccolo con
/modelper esecuzioni script ad alto volume
You've hit your monthly spend limit
L'utilizzo incluso nel tuo piano non può coprire questa richiesta, e i crediti di utilizzo che altrimenti la pagherebbero hanno raggiunto un limite di spesa. Ciò accade quando una delle finestre di utilizzo del tuo piano si è esaurita, o quando la richiesta è una che solo i crediti di utilizzo pagano, come una richiesta a un modello che fattura ai crediti di utilizzo. Il messaggio nomina il limite che ti ha bloccato. Il testo dopo il · dice come aumentare quel limite, e varia in base al tuo piano e se gestisci la fatturazione:
You've hit your monthly spend limit · raise it at https://claude.ai/settings/usage?from=cc_cli_limit_message
You've hit your individual spend limit · ask your admin for a higher limit
You've hit your org's monthly spend limit · visit https://claude.ai/admin-settings/usage to raise it
You've hit your team's shared budget · ask your admin to raise it at https://claude.ai/admin-settings/usage
You've hit your channel's monthly spend limit · an org owner or channel manager can raise it in the channel's Claude settings
team's shared budget è un budget in pool che un amministratore ha assegnato a un gruppo a cui appartieni; il messaggio non nomina il gruppo. channel's monthly spend limit è il budget dell'unico canale Slack in cui viene eseguita la sessione, quindi la tua organizzazione potrebbe ancora avere budget al di fuori di esso.
Quando una delle finestre del tuo piano è quella che si è esaurita, il messaggio dice anche quando quella finestra si ripristina, ad esempio · your session limit resets 3:45pm, e l'accesso ritorna allora senza che nessuno aumenti il limite. Nelle organizzazioni con fatturazione basata sull'utilizzo, il messaggio dice usage limit al posto di spend limit, come in You've hit your individual usage limit.
Se ti connetti tramite un gateway di app Claude e vedi spend limit reached minuscolo, quello è invece il limite dell'operatore del gateway; vedi Spend limit reached.
Cosa fare:
- Su Pro, Max e Ultra, aumenta il tuo limite di spesa mensile in Settings > Usage su claude.ai, o esegui
/usage-credits - Su Team ed Enterprise, aumenta il limite in Organization settings > Usage se gestisci la fatturazione, o chiedi a un amministratore di farlo.
/usage-creditsinvia quella richiesta al tuo amministratore per te - Per il limite di un canale, chiedi a un proprietario dell'organizzazione o al manager del canale di aumentarlo su claude.ai. Vedi Per-channel limits nella documentazione Claude Tag
- Se il messaggio nomina un'ora di ripristino per la finestra del tuo piano, puoi invece aspettare
- Esegui
/usageper vedere le finestre del tuo piano e quando ciascuna si ripristina
Spend limit reached
Ti connetti tramite un gateway di app Claude e hai raggiunto un limite di spesa impostato dall'operatore del gateway. Il gateway blocca le tue richieste finché l'operatore non aumenta il limite, oppure finché il limite non si ripristina se è superiore a $0. Contrassegna ogni risposta 429 bloccata con x-should-retry: false, quindi nel terminale Claude Code mostra questo messaggio senza riprovare.
spend limit reached · resets Dec 1
Controlla se il messaggio contiene una data:
- Con una data: il limite si ripristina alle 00:00 UTC di quella data
- Senza data: il tuo limite è $0, oppure il tuo gateway esegue una versione precedente alla v2.1.225
Qualsiasi altro testo nel messaggio è una nota dell'operatore del gateway.
Dalla v2.1.225 fino alla v2.1.319 sul server del gateway, il messaggio nominava il periodo del limite e l'ora di ripristino, come in spend limit reached (daily; resets 2026-08-09 00:00 UTC).
Cosa fare:
- Se il messaggio contiene una data, attendi il ripristino, oppure segui la nota dell'operatore se il messaggio ne contiene una
- Chiedi al tuo operatore del gateway di aumentare il limite se il messaggio non contiene una data, se sei ancora bloccato dopo la data, o se raggiungi il limite regolarmente
Un secondo messaggio del gateway, This request exceeds your group's budget, significa che il budget in pool del tuo gruppo è esaurito. Segui i passaggi che indica:
This request exceeds your group's budget. Ask your organization's admins to raise it, or try again after it resets on November 1 at 00:00 UTC.
Un messaggio correlato, spend limit unavailable, significa che il gateway non poteva leggere i suoi record di spesa e ha bloccato la richiesta come precauzione piuttosto che per il tuo limite. Di solito si risolve da solo; se persiste, avvisa il tuo operatore del gateway.
Credit balance is too low
L'organizzazione della tua Console ha esaurito i crediti prepagati, o Claude Code sta inviando le tue richieste con una chiave API Console quando intendevi usare il tuo abbonamento.
Credit balance is too low
Cosa fare:
- Se hai un piano Pro, Max, Ultra, Team o Enterprise e vedi questo, esegui
/statuse controlla la rigaAPI key. UnANTHROPIC_API_KEYapprovato nel tuo ambiente instrada le richieste attraverso quella chiave invece del tuo abbonamento. Annullalo nella shell corrente e rimuovilo dal tuo profilo shell, quindi riavviaclaude. Esegui/loginse non hai ancora effettuato l'accesso con il tuo abbonamento. - Aggiungi crediti su platform.claude.com/settings/billing, e considera di abilitare il ricaricamento automatico lì in modo che il saldo si riempia prima di raggiungere lo zero
- Imposta i limiti di spesa per workspace nella Console per evitare che un singolo progetto esaurisca il saldo dell'organizzazione. Vedi Manage costs effectively.
Could not update your spend limit
Il server ha rifiutato una modifica del limite di spesa che hai effettuato dal prompt che appare quando raggiungi il tuo limite di spesa.
Could not update your spend limit: <reason from the server>
Quando il server spiega il rifiuto, il messaggio termina con quel motivo, e riprovare con lo stesso valore fallisce di nuovo. Quando il fallimento non ha un motivo fornito dal server, come una connessione interrotta, il messaggio dice Could not update your spend limit. Press Enter to retry. e riprovare può avere successo. Prima della v2.1.216, Claude Code mostrava la forma generica per ogni fallimento.
Cosa fare:
- Se il messaggio include un motivo, scegli un limite che lo soddisfi, come un importo inferiore
- Se il messaggio mostra solo la forma generica, riprova; il fallimento potrebbe essere transitorio
- Se la modifica continua a fallire, effettuala invece dalle tue impostazioni di fatturazione claude.ai nel browser
Errori di autenticazione
Questi errori indicano che Claude Code non riesce a dimostrare la tua identità all'API. Esegui /status in qualsiasi momento per vedere quale credenziale è attualmente attiva.
Not logged in
Non è disponibile alcuna credenziale valida per questa sessione.
Not logged in · Please run /login
In una sessione eseguita dall'app Claude Desktop, come la scheda Code o Cowork, il messaggio è Authentication required · Sign in again to continue e devi accedere di nuovo dall'app.
Se accedi con il tuo account claude.ai in un'altra finestra di Claude Code che usa la stessa directory di configurazione, una sessione interattiva che mostra questo messaggio inizia a usare quell'accesso da sola. Non devi riavviarla.
Prima della v2.1.286 su macOS, la sessione poteva continuare a mostrare il messaggio dopo che avevi effettuato l'accesso da un'altra finestra. In quelle versioni, riavvia la sessione che mostra il messaggio.
Cosa fare:
- Esegui
/loginper autenticarti con il tuo abbonamento Claude o con il tuo account Console - Se ti aspettavi che una variabile d'ambiente ti autenticasse, verifica che
ANTHROPIC_API_KEYsia impostata ed esportata nella shell da cui hai avviatoclaude - Per CI o automazioni in cui l'accesso interattivo non è possibile, configura uno script
apiKeyHelperche recuperi una chiave all'avvio - Se i job
claude -pterminano con questo messaggio quando qualcuno accede di nuovo allo stesso account e organizzazione claude.ai, aggiorna Claude Code dove viene eseguito quell'accesso. Prima della v2.1.318, Claude Code rimuoveva l'accesso salvato durante quell'accesso, prima di salvare quello nuovo. - Consulta Precedenza dell'autenticazione per capire quale credenziale usa Claude Code quando ne sono presenti diverse
Se ti viene chiesto ripetutamente di accedere, consulta Not logged in or token expired per i controlli dell'orologio di sistema e i passaggi di ripristino dell'archiviazione delle credenziali su macOS.
Could not resolve authentication method
La sessione ha raggiunto il client API senza alcuna credenziale. Le sessioni in background e le sessioni cloud mostrano questo messaggio quando il worker si avvia senza una credenziale. Le esecuzioni interattive, con -p e con l'Agent SDK segnalano la stessa condizione come Not logged in e scrivono questa stringa solo nel loro log di debug, quindi se l'hai trovata lì, segui quella voce.
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
Nelle versioni attuali l'errore significa che nessuna credenziale era disponibile per il processo worker. Prima della v2.1.174, una sessione in background assegnata a un worker inattivo pre-inizializzato poteva fallire in questo modo anche quando erano configurate credenziali valide. Prima della v2.1.176, poteva succedere anche a una sessione cloud rimasta inattiva prima di essere presa in carico. Aggiorna per risolvere.
Cosa fare:
- Aggiorna alla v2.1.176 o successiva se il messaggio appare in una sessione in background o cloud e le tue credenziali sono già configurate
- Verifica che
ANTHROPIC_API_KEY,CLAUDE_CODE_OAUTH_TOKENo le credenziali del tuo provider cloud siano impostate nell'ambiente che avvia il worker, non solo nella tua shell interattiva - Per l'Agent SDK, consulta la configurazione dell'autenticazione nella guida rapida
- Esegui
/statusin una sessione interattiva nello stesso ambiente per verificare quale fonte di credenziali viene risolta
Invalid API key
La variabile d'ambiente ANTHROPIC_API_KEY o lo script apiKeyHelper ha restituito una chiave che l'API ha rifiutato, oppure Claude Code ha bloccato una chiave proveniente da ANTHROPIC_API_KEY prima di inviarla.
Invalid API key · Fix external API key
Quando il messaggio prosegue dopo Fix external API key con una descrizione come 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 non ha mai visto la chiave. Claude Code ha trovato un carattere che gli header HTTP non possono contenere e ha interrotto la richiesta prima di inviarla. Consulta Invalid request header value per capire come leggere la descrizione e correggere il valore.
Cosa fare:
- Controlla eventuali errori di battitura e verifica che la chiave non sia stata revocata nella Console
- Nella stessa shell, esegui
env | grep ANTHROPIC, oppure in PowerShellGet-ChildItem Env:ANTHROPIC*. Strumenti come direnv, i plugin della shell per dotenv e i terminali degli IDE possono caricare una chiave obsoleta da un file.envnel tuo progetto senza che tu l'abbia impostata esplicitamente. - Rimuovi
ANTHROPIC_API_KEYed esegui/loginper usare invece l'autenticazione tramite abbonamento - Se la chiave proviene da uno script
apiKeyHelper, esegui direttamente lo script per verificare che stampi una chiave valida su stdout - Esegui
/statusper verificare quale fonte di credenziali sta effettivamente usando Claude Code
Your apiKeyHelper script is failing
Claude Code ha eseguito il comando della tua impostazione apiKeyHelper e non ha ricevuto una chiave. Senza una chiave, la richiesta raggiunge l'API con una credenziale segnaposto e l'API la rifiuta con 401. Il pannello Authentication nel terminale mostra quale di questi casi si è verificato:
- Il comando è terminato con un errore o è andato in timeout
- Il comando non ha stampato nulla su stdout
- Il comando ha stampato qualcosa oltre alla chiave, come un banner di accesso o una riga di log. Il pannello mostra
returned output that cannot be used as an API keye indica cosa non va, senza ripetere l'output. Prima della v2.1.227, Claude Code inviava qualunque cosa il comando stampasse, dopo aver rimosso gli spazi iniziali e finali.
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
In modalità non interattiva, anche stderr riporta il motivo specifico, con il prefisso apiKeyHelper failed:.
Claude Code riesegue lo script e riprova la richiesta fino ad altre due volte prima di mostrare questo messaggio, quindi l'errore emerge entro tre tentativi. Prima della v2.1.208, Claude Code consumava l'intero budget di nuovi tentativi reinviando la richiesta con la credenziale segnaposto e poi segnalava un generico errore di autenticazione 401 invece dell'errore dello script.
Eseguire /login qui non aiuta: l'output dell'helper ha la precedenza su un accesso salvato finché l'impostazione è presente.
Cosa fare:
- Esegui direttamente nella tua shell il comando configurato in
apiKeyHelperper riprodurre l'errore - Se il comando segnala una sessione scaduta, autenticati di nuovo con il tuo provider di credenziali, ad esempio accedendo di nuovo al tuo SSO o al tuo vault di segreti
- Correggi il comando in modo che stampi su stdout solo la chiave, come un unico token di caratteri ASCII stampabili lungo fino a 16.384 caratteri, e termini con codice 0. Consulta ruotare le credenziali con apiKeyHelper per una configurazione funzionante.
- Esegui
/statusper vedere l'errore e verificare cheapiKeyHelpersia la fonte di credenziali attiva. La rigaapiKeyHelpermostraFailingcon i dettagli dell'ultimo errore, come il codice di uscita e l'output di errore del comando, e scompare dopo la successiva esecuzione riuscita. Prima della v2.1.274,/statusmostrava solo la fonte delle credenziali, non l'errore. - Ogni volta che il comando fallisce, il suo codice di uscita e il suo output di errore compaiono anche in un pannello
Authenticationnel terminale. Prima della v2.1.212, il pannello si intitolavaCloud authentication.
Claude Code didn't send your claude.ai login
Questi messaggi indicano che Claude Code ha rifiutato la tua richiesta e non ha inviato il tuo accesso claude.ai:
Your organization's settings need an update. Ask your administrator to fix the API key helper configuration.
Couldn't load your organization's settings. Check your connection, then restart Claude Code.
Restart Claude Code to finish signing in.
Cosa fare:
Your organization's settings need an update: chiedi al tuo amministratore di correggere la configurazione dell'helper della chiave API- Per comunicare al tuo amministratore quali fonti gestite sono presenti sulla tua macchina, esegui
/statusal prompt di Claude Code e copia la rigaSetting sources. Se compare una rigaSkipped sources, copia anche quella - Se amministri le impostazioni e l'helper si trova nel file di impostazioni gestite o nel criterio MDM di una macchina, consulta Quando l'
apiKeyHelperdi una macchina non è in vigore
- Per comunicare al tuo amministratore quali fonti gestite sono presenti sulla tua macchina, esegui
Couldn't load your organization's settings: controlla la connessione, quindi riavvia Claude Code. Se il messaggio ricompare dopo un riavvio, informa il tuo amministratoreRestart Claude Code to finish signing in: riavvia Claude Code
Prima della v2.1.315, un prompt o un caricamento di file rifiutato stampava un unico messaggio che iniziava con Claude Code didn't send your claude.ai login.
Invalid request header value
Un valore che Claude Code stava per inviare come header di una richiesta contiene un carattere che gli header HTTP non possono contenere: un a capo, un byte NUL o un carattere oltre U+00FF, come una virgoletta curva o uno spazio a larghezza zero. Claude Code interrompe la richiesta prima di inviare qualsiasi cosa e indica la variabile o l'impostazione da correggere. La causa abituale è una credenziale incollata da un documento o da una chat che conteneva un carattere invisibile o un a capo indesiderato.
Claude Code esegue questo controllo quando invia richieste all'API Claude direttamente o tramite un gateway LLM. Con un provider cloud di terze parti come Amazon Bedrock, Claude Code non lo esegue prima dell'invio.
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 prima parte del messaggio dipende dalla provenienza del valore errato:
Invalid auth token: un bearer token proveniente daANTHROPIC_AUTH_TOKENo daCLAUDE_CODE_OAUTH_TOKENInvalid ANTHROPIC_CUSTOM_HEADERS: un nome o un valore di header che hai impostato inANTHROPIC_CUSTOM_HEADERS. La descrizione indica il numero della coppiaName: Valuedifettosa, ad esempiodistinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS, senza ripetere il nome o il valore, dato che li hai scelti tu.Invalid request header from the environment: un valore che Claude Code copia in un header della richiesta da un'altra variabile d'ambiente, comeCLAUDE_AGENT_SDK_CLIENT_APP. La descrizione indica la variabile da correggere.
Claude Code segnala una ANTHROPIC_API_KEY errata intercettata da questo controllo come Invalid API key, con la stessa descrizione finale. Segnala invece una credenziale /login salvata errata come Not logged in; esegui /login per salvarne una nuova. L'output di uno script apiKeyHelper non arriva mai a questo controllo: Claude Code lo convalida quando lo script viene eseguito, e un output che un header HTTP non può contenere fallisce con Your apiKeyHelper script is failing.
Dopo il secondo ·, il messaggio descrive il problema, come in questo esempio completo:
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).
Le posizioni contano i caratteri a partire da uno. La descrizione è costruita con frasi fisse e conteggi di caratteri, quindi non include mai il valore stesso. Nomina il carattere problematico solo quando si tratta di un carattere invisibile o tipografico ben noto, come un byte-order mark, uno spazio a larghezza zero o una virgoletta curva, e segnala qualsiasi altro carattere come a non-ASCII character.
Cosa fare:
- Reimposta la variabile o l'impostazione indicata dal messaggio, digitando di nuovo i caratteri attorno alla posizione segnalata invece di incollarli di nuovo dalla stessa fonte
- Per
ANTHROPIC_CUSTOM_HEADERS, mantieni una coppiaName: Valueper riga e riscrivi la coppia indicata dal messaggio - Esegui
/statusper verificare quale fonte di credenziali è attiva
This organization has been disabled
Claude Code sta usando una ANTHROPIC_API_KEY obsoleta appartenente a un'organizzazione Console disabilitata. Se hai un accesso con abbonamento salvato, la chiave lo sovrascrive.
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.
Il suggerimento dopo il · dipende dalle tue credenziali salvate: la prima forma appare quando un /login memorizzato può subentrare dopo che hai rimosso la chiave, la seconda quando la chiave è la tua unica credenziale.
Se esporti una chiave nel profilo della shell o ne carichi una da .env, Claude Code la usa al posto di /login, anche con un abbonamento Pro, Max o Ultra funzionante. In modalità non interattiva (-p), la chiave viene sempre usata quando presente.
Cosa fare:
- Rimuovi
ANTHROPIC_API_KEYnella shell corrente ed eliminala dal profilo della tua shell, poi riavviaclaude - Se il messaggio dice
Update or unset, non hai un accesso salvato su cui ripiegare. Rimuovi la chiave ed esegui/login, oppure sostituisci la chiave con una di un'organizzazione Console attiva. - Esegui poi
/statusper verificare che la credenziale attiva sia il tuo abbonamento - Se nessuna variabile d'ambiente è impostata e l'errore persiste, contatta l'assistenza o accedi con un account diverso.
Your organization has disabled API key authentication
Questo messaggio richiede Claude Code v2.1.169 o successiva. L'amministratore della tua organizzazione Console ha disattivato l'autenticazione con chiave API, quindi l'API rifiuta la chiave che Claude Code sta inviando. Il suggerimento di ripristino dopo il · varia in base alla provenienza della chiave:
Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead
Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Sign in again with your claude.ai account
L'ultima forma appare in una sessione eseguita dall'app Claude Desktop, come la scheda Code o Cowork, in cui devi accedere di nuovo dall'app.
Le variabili d'ambiente e apiKeyHelper hanno la precedenza su /login, quindi eseguire solo /login non aiuta finché una delle due fornisce ancora una chiave. Consulta Precedenza dell'autenticazione.
Cosa fare:
- Se il messaggio nomina
ANTHROPIC_API_KEY, rimuovila nella shell corrente ed eliminala dal profilo della tua shell o dal file.env, poi riavviaclaude - Se il messaggio nomina
apiKeyHelper, rimuovi l'impostazioneapiKeyHelperdal tuosettings.json - Esegui
/loginper accedere con il tuo account claude.ai - Esegui poi
/statusper verificare che la credenziale attiva sia il tuo abbonamento anziché una chiave API - Se ti serve l'autenticazione con chiave API per le automazioni, chiedi all'amministratore della tua organizzazione di riattivarla nella Console
Your organization has disabled Claude subscription access
La tua organizzazione Claude non consente di accedere a Claude Code con un accesso tramite abbonamento. Eseguire di nuovo /login con lo stesso account restituisce lo stesso errore.
Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access
Si tratta di un'impostazione dell'organizzazione lato server, quindi non può essere sovrascritta da impostazioni locali, variabili d'ambiente o flag della CLI.
L'Agent SDK e la modalità non interattiva -p la segnalano con il codice di errore oauth_org_not_allowed.
Cosa fare:
- Chiedi al tuo amministratore di abilitare l'accesso a Claude Code per la tua organizzazione
- Autenticati con una chiave API della Console invece che con il tuo abbonamento. Consulta Autenticazione con Claude Console per la configurazione.
- Se sei l'amministratore e non vedi un'opzione per abilitare l'accesso, contatta l'assistenza Anthropic
Scheduled tasks are off for your organization
Le attività pianificate cloud sono disattivate per la tua organizzazione, quindi non puoi crearle né eseguirle. Il messaggio di claude.ai le chiama attività pianificate o routine, ed è seguito da una frase che riguarda il tuo amministratore:
Scheduled tasks are off for your organization. …
Routines are off for your organization. …
Non puoi attivarle con impostazioni locali, variabili d'ambiente o flag della CLI.
Cosa fare:
- Chiedi al tuo Owner Team o Enterprise se può attivare l'interruttore denominato Scheduled tasks (Was Routines) o Routines in Organization settings > Capabilities > Remote sessions
Remote Control richiede l'API Anthropic
La sessione non comunica direttamente con l'API Anthropic, come invece richiede Remote Control.
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.
Una seconda frase spiega cosa ha instradato la sessione lontano dall'API Anthropic; prima della v2.1.219, il messaggio era costituito solo dalla prima frase. A seconda della causa, il messaggio nomina:
- Una variabile di provider
CLAUDE_CODE_USE_*, comeCLAUDE_CODE_USE_BEDROCKper Amazon Bedrock oCLAUDE_CODE_USE_VERTEXper Agent Platform di Google Cloud ANTHROPIC_BASE_URLche punta a un host diverso daapi.anthropic.com, come un gateway LLM o un proxy, anche quando accedi con claude.ai; prima della v2.1.196, un URL di base personalizzato non bloccava Remote ControlANTHROPIC_UNIX_SOCKETimpostata, per cui la sessione invia le sue richieste tramite un socket locale invece che aapi.anthropic.com- Un accesso tramite gateway cloud aziendale effettuato con
/login, che non supporta Remote Control e non ha alcuna variabile da rimuovere
Cosa fare:
- Rimuovi la variabile indicata dal messaggio, come
CLAUDE_CODE_USE_BEDROCKoANTHROPIC_BASE_URL, e riavvia la sessione, oppure avvia Remote Control da una sessione che comunica direttamente con l'API Anthropic - Se la variabile non è impostata nella tua shell, controlla la chiave
envnei tuoi file di impostazioni, che applica variabili d'ambiente a ogni sessione - Per questo e per gli altri messaggi di avvio di Remote Control, consulta Risoluzione dei problemi di Remote Control
Remote Control non è riuscito ad aggiornare il tuo accesso
Claude Code mantiene attiva una connessione Remote Control con credenziali di breve durata che ottiene e rinnova usando il tuo accesso claude.ai salvato. Quando claude.ai smette di accettare quell'accesso, oppure Claude Code non ha più alcun accesso salvato, Claude Code interrompe Remote Control e ti chiede di accedere di nuovo. Entrambi gli errori possono verificarsi mentre Claude Code si sta ancora connettendo oppure più tardi, quando rinnova le credenziali.
Quando Claude Code chiede al servizio di accesso di aggiornare il tuo accesso salvato e non riceve risposta, mantiene Remote Control in esecuzione e riprova l'aggiornamento finché la credenziale corrente della connessione è ancora valida. Un aggiornamento non riceve risposta quando Claude Code non riesce a raggiungere il servizio di accesso, la richiesta va in timeout oppure il servizio fallisce senza rifiutare il tuo accesso. Se il servizio di accesso non risponde ancora quando quella credenziale scade, Claude Code interrompe Remote Control e segnala OAuth token refresh failed.
Quando Claude Code interrompe Remote Control, mostra il motivo in un avviso e in una riga della trascrizione che inizia con Remote Control disconnected. La tua sessione locale continua a funzionare senza Remote Control. Questa sezione copre queste righe:
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 indica la causa nella parte centrale del messaggio:
Claude.ai login expiredeClaude.ai login was rejected: claude.ai non accetta più il token di accesso salvato, perché è scaduto o è stato revocatoOAuth token unavailable: Claude Code non aveva alcun token di accesso salvato quando la credenziale della connessione doveva essere rinnovataOAuth token refresh failed: claude.ai ha rifiutato il tuo token di accesso salvato mentre Claude Code si stava riconnettendo, e l'aggiornamento del token non ne ha prodotto uno nuovoJWT refresh failed: no OAuth token: Claude Code non ha trovato alcun token di accesso salvato con cui effettuare il rinnovoSigned out of Claude: sei uscito su questa macchina, ad esempio eseguendo/logoutin un altro terminale, quindi Claude Code non ha più alcun accesso salvato con cui rinnovare la connessione
Cosa fare:
- Esegui
/loginper accedere di nuovo - Esegui
/remote-controlper riconnettere la sessione. I messaggi che terminano conrun /login to restore Remote Controlnon richiedono questo passaggio: Claude Code si riconnette da solo una volta effettuato l'accesso.
Prima della v2.1.224, OAuth token refresh failed — run /login to re-authenticate era OAuth token refresh failed — re-authenticate, then re-enable Remote Control, e JWT refresh failed: no OAuth token — run /login era no OAuth token available for recovery (code <N>). I messaggi Claude.ai login expired, Claude.ai login was rejected e OAuth token unavailable sono stati aggiunti nella v2.1.225.
Prima della v2.1.238, Claude Code segnalava i casi che ora riportano Signed out of Claude come JWT refresh failed: no OAuth token — run /login, e interrompeva Remote Control con Claude.ai login expired — run /login to restore Remote Control non appena un aggiornamento dell'accesso non riceveva risposta.
Remote Control could not renew this computer's connection
Questo avviso appare nel terminale che esegue claude remote-control quando il server non riesce a usare il tuo accesso claude.ai per rinnovare la credenziale della sua connessione prima che scada. L'ultima frase dell'avviso indica per quanto tempo la credenziale corrente funziona ancora, oppure che è già scaduta:
Remote Control could not renew this computer's connection: claude.ai did not accept the sign-in it uses. Run `claude /login` to sign in again. The connection keeps working for about 26 hours; if it still cannot sign in then, it stops.
Cosa fare:
- Se l'avviso ti dice di eseguire
claude /login, apri un altro terminale sulla macchina che esegue il server, esegui lìclaude /logine accedi con il tuo account claude.ai - Se il server non riesce ancora ad accedere una volta scaduta la credenziale della connessione, stampa un errore contenente
Poll: Authentication failed (401)e si arresta. Accedi di nuovo come indicato nella seconda frase dell'avviso, poi esegui di nuovoclaude remote-controlnel terminale in cui il server si è arrestato.
Remote Control si è interrotto perché l'account con cui hai effettuato l'accesso è cambiato
Claude Code mostra questa riga durante una sessione Remote Control quando accedi a un account o a un'organizzazione claude.ai diversi su questa macchina. Hai effettuato il cambio al di fuori della sessione di Claude Code, ad esempio eseguendo /login in un altro terminale.
Una sessione Remote Control che hai avviato mentre avevi effettuato l'accesso tramite /login appartiene all'account e all'organizzazione claude.ai con cui avevi effettuato l'accesso in quel momento.
Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control
Claude Code interrompe la sessione Remote Control non appena claude.ai conferma che l'account o l'organizzazione è cambiato. La tua sessione locale continua a funzionare senza Remote Control.
Cosa fare:
- Esegui
/remote-controlper avviare una nuova sessione Remote Control con l'account o l'organizzazione corrente - Per tornare indietro, esegui
/logine accedi di nuovo all'account o all'organizzazione precedente. Poi esegui/remote-control.
Prima della v2.1.234, Claude Code non si accorgeva quando passavi a un account o a un'organizzazione diversi al di fuori della sessione di Claude Code. Claude Code manteneva connessa la sessione Remote Control finché una richiesta successiva al server Remote Control non falliva con Remote Control server rejected the request (HTTP 404). Quell'errore poteva arrivare ore dopo il cambio.
Remote Control si è interrotto perché l'app che esegue la sessione è uscita dall'account o ha cambiato account
Quando l'app desktop di Claude o un IDE ospita la tua sessione, Claude Code ottiene il token di accesso da quell'app anziché da /login. Quando claude.ai rifiuta quel token, Claude Code ne chiede uno nuovo all'app. Se l'app risponde di non avere un accesso attivo, oppure di avere ora effettuato l'accesso a un account Claude diverso, Claude Code termina la sessione Remote Control e invia all'app una di queste righe:
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
La tua sessione locale continua a funzionare senza Remote Control.
Cosa fare:
- Se l'app non ha un accesso attivo, accedi di nuovo, poi riattiva Remote Control nell'app
- Se l'app ha cambiato account, Claude Code non può continuare la sessione terminata con il nuovo account. Avvia una nuova sessione Remote Control con quell'account.
Prima della v2.1.238, in entrambi i casi Claude Code inviava all'app i messaggi run /login elencati in Remote Control non è riuscito ad aggiornare il tuo accesso.
OAuth token revoked or expired
Il tuo accesso salvato non è più valido. Un token revocato significa che sei uscito ovunque o che un amministratore ha rimosso l'accesso; un token scaduto significa che l'aggiornamento automatico è fallito durante la sessione.
Entrambi i messaggi segnalano un rifiuto restituito dall'API per una richiesta inviata da Claude Code. Quando l'accesso salvato è già stato cancellato dopo un aggiornamento fallito, vedi invece Login expired. Se ti autentichi con un token di lunga durata in CLAUDE_CODE_OAUTH_TOKEN, vedi gli stessi messaggi quando quel token scade o viene revocato.
OAuth token revoked · Please run /login
Please run /login · API Error: 401 OAuth token has expired ...
In modalità non interattiva (-p) e nell'Agent SDK, i messaggi sono i seguenti e il codice di errore strutturato è authentication_failed:
Failed to authenticate: OAuth token revoked. Please log in again or contact your administrator.
Failed to authenticate. API Error: 401 OAuth token has expired ...
Prima della v2.1.287, in modalità non interattiva e nell'Agent SDK, il messaggio per il token revocato era Your account does not have access to Claude. Please login again or contact your administrator.
Cosa fare:
- Esegui
/loginal prompt di Claude Code per accedere di nuovo - Se il tuo comando
-po il tuo programma Agent SDK usa un accesso salvato, eseguiclaudenello stesso ambiente, completa/login, poi esegui di nuovo il comando o il programma. Per le automazioni che non possono accedere in modo interattivo, autenticati conANTHROPIC_API_KEYoppure genera un token di lunga durata conclaude setup-token. - Se ti autentichi con la variabile d'ambiente
CLAUDE_CODE_OAUTH_TOKEN, Claude Code continua a inviare il valore che hai impostato dopo che una richiesta fallisce con un 401, invece di passare al token di un accesso memorizzato./statusmostra questa credenziale come una rigaAuth tokencon il valoreCLAUDE_CODE_OAUTH_TOKEN. Genera un nuovo token conclaude setup-tokene riavvia con quello, oppure rimuovi la variabile ed esegui/login. Prima della v2.1.225, Claude Code poteva sostituire a metà sessione il valore della variabile con il token di accesso di breve durata di un accesso memorizzato, e la sessione falliva di nuovo con errori 401 una volta scaduto quel token. - Per le richieste ripetute di accesso tra un avvio e l'altro, consulta i controlli dell'orologio di sistema e i passaggi di ripristino dell'archiviazione delle credenziali su macOS in Risoluzione dei problemi
- Per altri errori, tra cui
403 Forbiddene i problemi del browser con OAuth, consulta Accesso e autenticazione
API Error: 401 Invalid authentication credentials
L'API ha riconosciuto il formato della tua credenziale ma ha rifiutato l'account o l'organizzazione associati. Anthropic restituisce questo messaggio quando una credenziale è stata revocata di recente, quando un'organizzazione è stata disabilitata o ha rimosso il tuo accesso, oppure quando l'account stesso è stato disattivato, quindi la causa non è un token scaduto. La credenziale può essere il tuo accesso salvato oppure una ANTHROPIC_API_KEY approvata, e la soluzione è diversa, quindi inizia eseguendo /status per vedere quale è attiva.
Please run /login · API Error: 401 Invalid authentication credentials
Cosa fare:
- Se
/statusmostra una rigaAPI keynon contrassegnata come non in uso, unaANTHROPIC_API_KEYapprovata è la credenziale attiva e ha la precedenza sul tuo accesso, quindi/loginnon la sostituisce. Ruota la chiave nella Claude Console, oppure torna al tuo abbonamento eseguendounset ANTHROPIC_API_KEY, o in PowerShellRemove-Item Env:ANTHROPIC_API_KEY. - Se
/statusmostra solo il tuo accesso, esegui/loginuna volta. Se la credenziale è stata revocata, un nuovo accesso la sostituisce. - Se lo stesso messaggio ricompare per lo stesso account di accesso, l'account o l'organizzazione non è più attivo. Controlla l'account e l'organizzazione riportati da
/statuse chiedi all'amministratore della tua organizzazione di ripristinare l'accesso. - Se
ANTHROPIC_BASE_URLpunta a un gateway LLM, il testo dopo401è il messaggio del tuo gateway anziché quello di Anthropic, e/loginnon lo modifica. Correggi invece la credenziale che il tuo gateway si aspetta. - Se ogni richiesta fallisce con un
401anche quando il tuo gateway ha la credenziale che si aspetta, verifica che il gateway e il suo upstream accettino i campi della ricerca degli strumenti. Per impostazione predefinita, Claude Code invia i campi degli strumentidefer_loadinge i blocchitool_reference, con l'headeranthropic-betache li abilita. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi conENABLE_TOOL_SEARCH.
Login expired
Claude Code ha provato a rinnovare il tuo accesso claude.ai salvato e il servizio OAuth ha rifiutato il refresh token memorizzato, quindi Claude Code ha cancellato le credenziali salvate. Da quel momento, ogni richiesta al modello si interrompe localmente con questo messaggio prima di raggiungere l'API, perché solo /login può creare nuove credenziali.
Prima della v2.1.206, Claude Code inviava comunque la richiesta al modello con qualunque credenziale rimasta nell'ambiente, e ogni modello falliva poi con There's an issue with the selected model o con un 401 invece di una richiesta di accesso.
Login expired · Please run /login
In modalità non interattiva (-p) e nell'Agent SDK, il messaggio è il seguente e il codice di errore strutturato è authentication_failed:
Failed to authenticate: OAuth session expired and could not be refreshed
Per un messaggio Login expired che termina con or re-authenticate your Anthropic profile, consulta Anthropic profile login expired.
Questo non è lo stesso stato di OAuth token revoked or expired. Quei messaggi segnalano un rifiuto restituito dall'API. Login expired lo genera Claude Code stesso per un accesso che non è già riuscito a rinnovare, quindi non invia alcuna richiesta. Quando il rinnovo fallisce perché è l'account stesso a essere sospeso, e non perché l'accesso è obsoleto, Claude Code mostra invece Your account is on hold.
Puoi verificare questo stato prima che una richiesta fallisca: /status mostra una riga Login con il valore Expired — log in again, oltre all'organizzazione e all'email salvate per l'accesso scaduto. La riga appare solo quando l'accesso salvato è la tua credenziale attiva e non può più essere aggiornato. Le sessioni autenticate in altro modo non mostrano la riga, anche se rimane salvato un accesso scaduto. Prima della v2.1.210, in questo stato /status non dava alcuna indicazione che un accesso fosse mai esistito, perché la credenziale cancellata non gli lasciava nulla da riportare.
Cosa fare:
- Esegui
/loginper accedere di nuovo. Riprovare senza accedere mostra lo stesso messaggio a ogni richiesta. - Se accedi con il tuo account claude.ai in un'altra finestra di Claude Code, consulta Not logged in per sapere quando questa sessione inizia a usare quell'accesso da sola.
- In modalità non interattiva, esegui
claudenello stesso ambiente, completa/login, poi esegui di nuovo il comando. Per le automazioni che non possono accedere in modo interattivo, autenticati conANTHROPIC_API_KEYoppure genera un token di lunga durata conclaude setup-token. - Se l'accesso continua a fallire, consulta Accesso e autenticazione
Could not refresh your login because another Claude Code process is refreshing it
Questo messaggio non significa che il tuo accesso è stato rifiutato. Il tuo accesso claude.ai salvato era scaduto e doveva essere rinnovato. Un altro processo di Claude Code sulla stessa macchina deteneva il lock condiviso di aggiornamento, oppure è terminato lasciandolo attivo, e l'aggiornamento non ha fatto progressi mentre questa sessione attendeva. Claude Code interrompe la richiesta prima di inviarla:
Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login
In modalità non interattiva (-p) e nell'Agent SDK, il messaggio è il seguente e il codice di errore strutturato è server_error:
Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again
Cosa fare:
- Riprova tra un minuto. Se un altro processo completa prima l'aggiornamento, questa sessione usa l'accesso rinnovato.
- Se il messaggio continua a ricomparire, chiudi le altre finestre e gli altri processi di Claude Code, poi riprova.
- Se ricompare senza che sia in esecuzione alcun altro processo di Claude Code, esegui
/login. Accedere di nuovo non attende il lock di aggiornamento.
Could not refresh your login: the disk that holds the Claude Code config directory is full
Libera spazio sul disco che contiene la directory di configurazione di Claude Code, poi invia di nuovo il tuo messaggio. Accedere di nuovo non servirebbe finché il disco è pieno, perché un nuovo login non potrebbe essere salvato. La directory di configurazione è ~/.claude nella tua directory home, a meno che tu non abbia impostato CLAUDE_CONFIG_DIR.
Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full · Delete files you no longer need on that disk, then try again · Signing in again won't help
In modalità non interattiva (-p) e nell'Agent SDK, il messaggio è:
Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full. Delete files you no longer need on that disk and retry; signing in again won't help
Cosa fare:
- Per uno script, esegui di nuovo il suo comando
claude -p - Se il disco mostra già spazio libero, l'esaurimento della quota disco o degli inode produce lo stesso messaggio. Elimina i tuoi file su quel disco. Se il messaggio si ripresenta, elimina molti file piccoli anziché pochi file grandi, perché ogni file occupa un inode indipendentemente dalle sue dimensioni.
Couldn't save your login
Hai effettuato l'accesso con claude.ai, ma Claude Code non è riuscito a salvare l'accesso nel suo archivio di credenziali, quindi l'accesso non è stato completato. Su macOS questo può accadere quando il portachiavi login si blocca, ad esempio durante lo stop o l'inattività, dopo che Claude Code ha già letto o salvato credenziali al suo interno durante la stessa sessione.
Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.
Couldn't save your login. Try logging in again.
La prima forma appare su macOS e la seconda ovunque altrove. Un errore temporaneo dell'archivio di credenziali, come un timeout o un archivio illeggibile, produce lo stesso messaggio.
Cosa fare:
- Su macOS, sblocca il portachiavi login, poi esegui di nuovo
/login - Sulle altre piattaforme, esegui di nuovo
/login - Se l'accesso continua a non essere salvato, consulta Not logged in or token expired per il comando di sblocco del portachiavi e gli altri passaggi di ripristino dell'archiviazione delle credenziali
Sign in again to take your previous account or API key off the config file
Questo avviso dopo l'accesso significa che qualsiasi account con cui avevi effettuato l'accesso in precedenza potrebbe essere ancora memorizzato in ~/.claude.json:
Sign in again to take your previous account or API key off the config file.
Anche una chiave API potrebbe trovarsi ancora in ~/.claude.json, se un accesso alla Console ne ha creata una su Linux o Windows.
Cosa fare:
- Esegui
claude auth loginnella tua shell per accedere di nuovo. Claude Code riprova quindi il salvataggio che rimuove dal file l'account o la chiave API sostituiti.
Your account or API key may still be in the config file
Hai eseguito /logout o claude auth logout, e Claude Code ha disconnesso questo processo ma non è riuscito a confermare che ~/.claude.json non contenga più il tuo account. Il salvataggio non è andato a buon fine, oppure non è stato possibile rileggere il file per verificarlo.
Your account or API key may still be in the config file. Run claude auth logout.
Anche una chiave API potrebbe trovarsi ancora in ~/.claude.json, se un accesso alla Console ne ha creata una su Linux o Windows.
Cosa fare:
- Esegui
claude auth logoutnella tua shell per riprovare il salvataggio. Quando il salvataggio va a buon fine, il comando stampaSuccessfully logged out from your Anthropic account.
Couldn't start the local listener that receives the browser sign-in
Ciascuno di questi messaggi di /login, claude auth login o claude setup-token significa che Claude Code non è riuscito ad aprire la porta su 127.0.0.1 a cui il tuo browser restituisce il risultato dell'accesso.
Con l'avviso che inizia con The browser can't return the sign-in to Claude Code automatically, l'accesso prosegue senza quella porta. Non si apre alcun browser e l'avviso appare sopra un URL dove invece puoi accedere:
The browser can't return the sign-in to Claude Code automatically. After you sign in, paste the code shown.
Con il messaggio che include Couldn't start the local listener, l'accesso si è interrotto. Questo accade, ad esempio, quando invii input tramite pipe a claude auth login:
Couldn't start the local listener that receives the browser sign-in. Try again.
Cosa fare:
The browser can't return the sign-in to Claude Code automatically: non devi correggere nulla prima. Apri in un browser l'URL mostrato sotto l'avviso e accedi. Il browser mostra quindi un codice: incollalo in Claude Code al promptPaste code here >e l'accesso prosegue da lì.Couldn't start the local listener that receives the browser sign-in: esegui di nuovo lo stesso comando. Se si interrompe allo stesso modo, accedi con un token o una chiave API invece che con il browser. Oppure, se hai inviato input tramite pipe aclaude auth login, eseguilo in un terminale in modo che possa accettare un codice incollato.- Per accedere con un token o una chiave API invece che con il browser: se usi un abbonamento claude.ai, esegui
claude setup-tokensu una macchina in cui l'accesso funziona. Poi imposta il token che stampa come variabile d'ambienteCLAUDE_CODE_OAUTH_TOKENsu questa macchina. Altrimenti imposta la variabile d'ambienteANTHROPIC_API_KEYsu una chiave della Claude Console. Precedenza dell'autenticazione spiega come Claude Code sceglie tra le credenziali. - Per ripristinare il ritorno automatico dal browser: Claude Code deve poter restare in ascolto su
127.0.0.1. Se viene eseguito all'interno di una sandbox, verifica che la policy della sandbox consenta l'ascolto su porte locali, poi accedi di nuovo. Se l'ascolto dovrebbe funzionare in quell'ambiente e l'avviso appare ancora, esegui/feedbackin modo che la segnalazione includa i dettagli del tuo ambiente.
Prima della v2.1.305, l'accesso si interrompeva non appena la porta non poteva essere aperta e non mostrava alcun URL a cui accedere. Il messaggio era, ad esempio, Failed to start OAuth callback server: Failed to start server. Is port 0 in use?. In quelle versioni, aggiorna Claude Code e accedi di nuovo, oppure accedi con un token o una chiave API invece che con il browser.
Claude login not accepted
Hai provato ad avviare una sessione cloud e il server si è rifiutato di crearla con un 401: non ha accettato l'accesso Claude inviato da questa macchina, di solito perché l'accesso è scaduto o è stato revocato.
La prima parte della riga è il motivo fornito dal server, quando ne fornisce uno. Altrimenti la riga è:
Claude login not accepted · Run /login, then try again
Cosa fare:
- Esegui
/login, completa l'accesso, poi avvia di nuovo la sessione
Artifacts need a claude.ai login
Claude Code ha rifiutato la pubblicazione o la lettura di un artefatto perché la sessione non ha un accesso claude.ai utilizzabile per gli artefatti.
Ogni forma del messaggio inizia con le stesse parole, seguite da un rimedio che dipende da come si autentica la tua sessione. Senza credenziali concorrenti il messaggio è:
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.
Cosa fare:
- Esegui
/logine seleziona Claude account with subscription. L'opzione Anthropic Console account non fornisce credenziali claude.ai. - Quando il messaggio nomina una credenziale che ha la precedenza, come
ANTHROPIC_API_KEY, un'impostazioneapiKeyHelpero una chiave Console salvata da un precedente/login, rimuovila come indicato nel messaggio, poi esegui/login - Quando il messaggio dice che questa sessione remota si autentica tramite la macchina che l'ha avviata, accedi a claude.ai su quella macchina, poi riconnetti la sessione
- Quando il messaggio dice che la credenziale è iniettata dall'ambiente host della sessione, non puoi modificarla in quella sessione; avvia una sessione con accesso effettuato a claude.ai
- Consulta Disponibilità per gli altri requisiti degli artefatti, come piano, provider del modello e policy dell'organizzazione
Administrator policy requires a Cloud gateway sign-in
Le impostazioni gestite di un amministratore su questa macchina impostano forceLoginMethod su "gateway" oppure impostano forceLoginGatewayUrl. A meno che tu non selezioni un provider cloud tramite una variabile come CLAUDE_CODE_USE_BEDROCK, Claude Code accetta quindi solo l'accesso tramite il gateway delle app Claude. Vedi uno di due messaggi:
Not signed in to the Cloud gateway — run /login.
Le richieste al modello falliscono con questo messaggio quando la sessione non ha un accesso tramite gateway, ad esempio perché non hai eseguito /login da quando la policy è arrivata sulla macchina.
Se la macchina contiene anche una credenziale emessa da Anthropic e le impostazioni gestite impostano forceLoginMethod o forceLoginOrgUUID, Claude Code termina invece all'avvio. Quella credenziale può essere una variabile ANTHROPIC_API_KEY o ANTHROPIC_AUTH_TOKEN, un'impostazione apiKeyHelper o una chiave API salvata da un precedente accesso alla Claude Console.
Il messaggio di avvio nomina la credenziale con cui è configurata la sessione, dove è impostata e il passaggio che la rimuove. Ad esempio, con una variabile ANTHROPIC_API_KEY impostata nella tua shell, il messaggio è:
Administrator policy requires a Cloud gateway sign-in on this machine, but this session is configured with an API key from ANTHROPIC_API_KEY, which a gateway machine does not accept.
To continue: unset ANTHROPIC_API_KEY (or run in a shell without it), then run claude and sign in with /login.
Cosa fare:
- Per
Not signed in to the Cloud gateway, esegui/logine completa l'accesso nella schermata Cloud gateway - Per il messaggio di avvio, rimuovi la credenziale seguendo i passaggi alla fine del messaggio
- Se ritieni che la macchina non debba richiedere il gateway, chiedi all'amministratore che la gestisce di rimuovere
forceLoginMethodeforceLoginGatewayUrldalle sue impostazioni gestite
Prima della v2.1.284, il messaggio di avvio elencava le possibili credenziali invece di nominare quella configurata. Iniziava con 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. Se vedi questa formulazione e non riesci a capire quale credenziale rimuovere, aggiorna alla v2.1.284 o successiva e avvia di nuovo claude.
Nella v2.1.265, una regressione mostrava il primo messaggio anche in alcune configurazioni con gateway LLM e proxy che si autenticano con una chiave API, apiKeyHelper o header personalizzati, anche senza alcun requisito dell'amministratore sulla macchina. Aggiorna alla v2.1.266 o successiva. Non devi modificare la tua configurazione.
Prima della v2.1.261, sulle macchine che impostavano forceLoginMethod su "gateway", Claude Code usava un accesso salvato rimasto invece di far fallire le richieste al modello, e segnalava una credenziale d'ambiente configurata con This machine's managed settings require a first-party login invece del messaggio di avvio.
Your account is on hold
L'account Claude associato al tuo accesso è stato sospeso. Claude Code mostra il primo messaggio quando prova a rinnovare il tuo accesso salvato e scopre la sospensione, e il secondo quando un accesso che completi nel browser la segnala:
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
Accedere di nuovo con lo stesso account non elimina il messaggio, perché la sospensione riguarda l'account e non l'accesso. In modalità non interattiva (-p) e nell'Agent SDK, il codice di errore strutturato è account_on_hold. Prima della v2.1.235, Claude Code segnalava un account sospeso come Login expired · Please run /login, i cui passaggi di ripristino non possono rimuovere una sospensione.
Cosa fare:
- Apri il link nel messaggio per visualizzare i dettagli della sospensione o presentare ricorso
- Se hai un altro account Claude o una chiave API non interessati dalla sospensione, puoi continuare a lavorare mentre la sospensione viene risolta: esegui
/logincon quell'account, oppure imposta la chiave conANTHROPIC_API_KEY
Anthropic profile login expired
Claude Code si sta autenticando tramite un profilo di credenziali Anthropic la cui credenziale di accesso salvata è scaduta, e il profilo non contiene alcuna credenziale di aggiornamento che Claude Code possa usare per rinnovarla. Claude Code interrompe ogni richiesta localmente senza riprovare.
Anthropic profile login expired · Re-authenticate your Anthropic profile
Login expired · Run /login to sign in again, or re-authenticate your Anthropic profile
Cosa fare:
- Se il messaggio inizia con
Login expired, esegui/loginper accedere di nuovo - Per rinnovare un profilo scritto dall'accesso senza chiave alla Console o da
ant auth logindella CLI di Claude Platform, esegui/loginsu una macchina che offre l'accesso senza chiave. Scegli l'account Anthropic Console, poi Sign in with your Console account. Claude Code sostituisce la credenziale scaduta in quel profilo - Per rinnovare un profilo creato da un altro strumento, accedi di nuovo con quello strumento. Se invece scegli Sign in with your Console account in
/login, Claude Code lascia il profilo com'è e crea una chiave API - Se la credenziale del profilo è stata fornita da un amministratore, chiedigli di emetterne una nuova
- Esegui
/statusper verificare la fonte di credenziali attiva e il nome del profilo - Per smettere di usare il profilo, rimuovi
ANTHROPIC_PROFILEse l'hai impostata, poi autenticati in un altro modo, ad esempio con/loginoANTHROPIC_API_KEY
L'inizio del messaggio ti dice come Claude Code ha trovato il profilo:
- Quando Claude Code ha individuato il profilo dalla tua directory di configurazione e la sua modalità di autenticazione è
user_oauth, il messaggio inizia conLogin expirede propone prima/login. Claude Code dà a un/loginfunzionante la precedenza sul profilo individuato e si autentica quindi con il tuo account claude.ai. Dalla v2.1.234 fino alla v2.1.277, questa forma eraAnthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile. Prima della v2.1.234, Claude Code mostrava anche in questo caso la formaRe-authenticate your Anthropic profile. - Quando hai selezionato il profilo con
ANTHROPIC_PROFILE, il messaggio inizia conAnthropic profile login expired.
Questo messaggio appare solo quando la credenziale attiva proviene da un profilo di credenziali Anthropic: uno che selezioni con la variabile d'ambiente ANTHROPIC_PROFILE, che Claude Code individua come profilo attivo nella tua directory di configurazione Anthropic, oppure che Claude Code ha scritto quando hai effettuato l'accesso senza una chiave API. Le sessioni che si autenticano con una chiave API, con un bearer token come ANTHROPIC_AUTH_TOKEN o con un provider di terze parti non vedono mai questo messaggio.
Requisito di scope OAuth
Il token memorizzato è precedente a uno scope di autorizzazione richiesto da una funzionalità più recente:
OAuth token does not meet scope requirement: user:profile
Cosa fare:
- Esegui
/loginper ottenere un nuovo token con gli scope attuali. Non devi prima uscire.
claude.ai rejected the session token
Una richiesta di un connettore claude.ai è fallita perché claude.ai ha rifiutato il token del tuo accesso a Claude Code. Il token rifiutato è il tuo accesso, non l'autorizzazione del connettore in claude.ai, quindi autorizzare di nuovo il connettore non risolve il problema. In /mcp, il connettore appare come session token rejected e la sua vista dei dettagli riporta:
claude.ai rejected the session token. Run /login, then reconnect.
Cosa fare:
- Esegui
/loginper accedere di nuovo - Riconnetti il connettore da
/mcp, oppure esegui/mcp reconnect <server>. Riconnettersi prima di aver effettuato di nuovo l'accesso lascia il connettore nello stesso stato. L'opzione Reconnect del pannello/mcpsegnalayour claude.ai session token was rejected; la forma digitata/mcp reconnect <server>segnala una riconnessione riuscita anche se il token viene ancora rifiutato.
Prima della v2.1.222, Claude Code contrassegnava invece il connettore come bisognoso di autenticazione, il che ti indirizzava al flusso di autorizzazione del connettore anche se completarlo non risolveva lo stato.
MCP server needs you to sign in again
Un server MCP remoto ha rifiutato la credenziale durante una chiamata a uno strumento a metà sessione, di solito perché un accesso o un token è scaduto oppure perché il token non ha un permesso richiesto dallo strumento. La chiamata allo strumento fallisce e /mcp contrassegna il server come bisognoso di autenticazione.
Per un server a cui accedi da Claude Code, incluso un connettore claude.ai, l'accesso è scaduto o è stato revocato:
MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)
Esegui /mcp, seleziona il server e accedi di nuovo dal suo menu.
Per un server configurato con uno script headersHelper, Claude Code ha già rieseguito l'helper e riprovato la chiamata una volta prima di mostrare questo messaggio:
MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)
Verifica che l'helper restituisca una credenziale accettata dal server, poi riconnettiti da /mcp, che esegue di nuovo l'helper.
Per un server con un header Authorization statico nella sua configurazione:
MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)
Aggiorna il valore dell'header dove è configurato il server, poi riconnettiti da /mcp.
In una sessione Cowork sulla tua macchina nell'app Claude Desktop, questi messaggi significano che il server MCP ha rifiutato una credenziale che gli è stata fornita. Correggi quella indicata dal messaggio, poi avvia una nuova attività o chat in Cowork:
MCP server "<name>" rejected the credential from its headersHelper (check the helper, then start a new task or chat)
MCP server "<name>" rejected the Authorization header in its config (update it, then start a new task or chat)
- Credenziale
headersHelperrifiutata: verifica che l'helper restituisca una credenziale accettata dal server, poi avvia una nuova attività o chat in Cowork - Header
Authorizationrifiutato: aggiorna il valoreAuthorizationsottoheadersnella configurazione di quel server, poi avvia una nuova attività o chat in Cowork
Prima della v2.1.302, una sessione Cowork mostrava invece le conclusioni run /mcp to reconnect, sebbene /mcp non sia disponibile lì. Se vedi una conclusione di questo tipo in Cowork, controlla comunque l'helper o aggiorna l'header, poi avvia una nuova attività o chat. Prima della v2.1.273, i casi di accesso scaduto, di headersHelper e di header Authorization mostravano tutti MCP server "<name>" requires re-authorization (token expired).
Un server può anche rifiutare una chiamata a uno strumento con HTTP 403 insufficient_scope per chiederti di autorizzare uno scope, a volte uno che il tuo token elenca già. Il messaggio nomina quello scope:
MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate
Esegui /mcp, seleziona il server e autenticati di nuovo dal suo menu.
Quando la configurazione del server non imposta né oauth.scopes né authServerMetadataUrl, Claude Code richiede lo scope indicato dal server. Con una delle due impostazioni, Claude Code richiede invece gli scope di quell'impostazione. Se hai fissato oauth.scopes, aggiungi lo scope mancante a quell'elenco prima di autenticarti di nuovo.
Prima della v2.1.274, questo caso mostrava il messaggio needs you to sign in again, e prima della v2.1.273 mostrava requires re-authorization (token expired) come gli altri casi.
Couldn't read the stored credentials for MCP server
Claude Code conserva i tuoi accessi per i server MCP OAuth in un archivio di credenziali. Questo messaggio significa che Claude Code non è riuscito a leggere quell'archivio, quindi una richiesta al server non è stata eseguita:
Couldn't read the stored credentials for MCP server "<name>", so the request didn't run. If your Mac's keychain is locked, unlock it, then try again.
Couldn't read the stored credentials for MCP server "<name>", so the request didn't run. Try again.
I tuoi accessi memorizzati non sono cambiati: riprova quando l'archivio può essere letto, e accedi di nuovo solo se il server te lo chiede.
In un'esecuzione di claude -p o dell'Agent SDK su macOS, il portachiavi può diventare leggibile dopo che una richiesta è già partita senza l'accesso memorizzato. Quella richiesta fallisce con:
A request to MCP server "<name>" was sent without your stored credentials, so the server rejected it. The credentials are available now. Try again.
Cosa fare:
-
Se il messaggio ti chiede di sbloccare il portachiavi del tuo Mac, esegui
claude doctornella sessione della shell da cui esegui Claude Code e controlla se il suo report contiene un avviso sul portachiavi:-
Se il report elenca un avviso che inizia con
macOS Keychain is not writable, oppure la tua shell non ha il comandoclaude, esegui questo comando di sblocco in quella sessione della shell:security unlock-keychain ~/Library/Keychains/login.keychain-db -
Se il report non elenca alcun avviso sul portachiavi, salta il comando di sblocco
-
-
Riprova dove hai visto il messaggio:
- Per
claude -p, esegui di nuovo il comando - In una sessione interattiva, riconnetti il server da
/mcpse lì appare come non riuscito, poi chiedi a Claude di riprovare - In un'applicazione Agent SDK che resta in esecuzione, chiama
reconnectMcpServer()in TypeScript oClaudeSDKClient.reconnect_mcp_server()in Python, oppure avvia una nuova sessione
- Per
-
Se il server segnala poi di aver bisogno di autenticazione, Claude Code non ha trovato alcun accesso utilizzabile per quel server. Accedi in modo interattivo: esegui
/mcpin una sessione di Claude Code, oppureclaude mcp login <name>nella tua shell. In un'applicazione Agent SDK, consulta Autenticazione OAuth2 nell'Agent SDK.
Prima della v2.1.307, un'esecuzione di claude -p o dell'Agent SDK su un Mac con il portachiavi login bloccato segnalava il server come bisognoso di autenticazione invece di mostrare uno dei due messaggi.
MCP server URL is missing or not a valid URL
Claude Code si è rifiutato di avviare un accesso OAuth per un server MCP remoto perché l'url configurato del server non può essere interpretato come URL. A meno che Claude Code non abbia un problema di configurazione più specifico da segnalare per il server, eseguire claude mcp login <name> nella tua shell stampa il rifiuto così:
Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.
Cosa fare:
- Imposta l'
urldella voce sull'endpoint reale del server dove il server è configurato, oppure imposta la variabile d'ambiente indicata dal suo riferimento${VAR}, poi esegui di nuovo l'accesso.
Issuer mismatch in authorization response
Durante un accesso OAuth MCP, il server di autorizzazione ha reindirizzato a Claude Code con un parametro iss che non nomina l'issuer che Claude Code si aspettava in base ai metadati OAuth del server. Un issuer errato in questa fase è il segno di un attacco di tipo mix-up sul server di autorizzazione, quindi Claude Code fa fallire l'accesso invece di scambiare il codice di autorizzazione. Claude Code mostra l'errore nel menu del server in /mcp dopo l'accesso tramite browser:
Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"
expected è l'issuer presente nei metadati OAuth del server, e received è il valore iss contenuto nel reindirizzamento. Un accesso il cui reindirizzamento non contiene alcun parametro iss supera il controllo, a meno che i metadati del server non impostino authorization_response_iss_parameter_supported, nel qual caso Claude Code fa fallire l'accesso.
Cosa fare:
- Riprova l'accesso da
/mcp - Se l'errore si ripete, segnalalo al gestore del server. La correzione è lato server: il server di autorizzazione deve restituire nel parametro
isslo stesso issuer che dichiara nei suoi metadati - Per connetterti mentre il server viene corretto, avvia Claude Code con
MCP_SDK_GENERATION=v1, il cui runtime non esegue questo controllo. Questo rimuove una protezione contro gli attacchi di tipo mix-up, quindi preferisci la correzione lato server
Prima della v2.1.232, Claude Code usava il runtime v2 solo in un rilascio graduale oppure quando impostavi MCP_SDK_GENERATION=v2.
Refusing to send credentials to non-https token endpoint
Sul runtime v2, Claude Code invia una richiesta di token MCP OAuth solo a un endpoint del token servito tramite HTTPS o su localhost, 127.0.0.1 o ::1. Questo messaggio significa che l'endpoint del token del server non rientra in nessuno dei due casi, quindi Claude Code si è fermato prima di inviare la richiesta. Ciò accade dopo l'accesso tramite browser, quindi il passaggio nel browser riesce prima, e di nuovo ogni volta che Claude Code aggiorna il token del server.
Nella sua forma completa, il messaggio proviene dall'SDK MCP e cita l'endpoint del token che ha rifiutato. Nel log di debug, segue Error during auth completion: per un accesso o Token refresh failed: per un aggiornamento. Nella tua shell, claude mcp login <name> lo stampa dopo Couldn't complete authentication for "<name>":, e in una sessione, /mcp lo mostra sotto il menu del server:
Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).
Claude Code tratta come potenzialmente segreto un URL del server che contiene una query string o un segmento di percorso lungo e dall'aspetto casuale. Per un server di questo tipo, oscura gli errori di accesso generati dall'SDK MCP prima di mostrarli o registrarli nei log. Questo errore appare allora come un nome breve che può cambiare tra una release e l'altra, come io, seguito da from the MCP SDK for e dall'URL del server oscurato. Anche gli altri errori dell'SDK MCP assumono lì la stessa forma. Il messaggio oscurato può corrispondere a questo errore solo quando l'endpoint del token del server usa semplice http:// su un indirizzo diverso da localhost, 127.0.0.1 o ::1.
Cosa fare:
- Servi quell'endpoint del token tramite HTTPS, ad esempio mettendo il server dietro un reverse proxy o un tunnel che termina TLS e configurando il server per pubblicizzare l'indirizzo
https:// - Per connetterti senza modificare il server, avvia Claude Code con
MCP_SDK_GENERATION=v1, il cui runtime non applica questa regola e invia la richiesta di token tramite semplice HTTP. Questa scelta dura finché non esci e si applica a ogni server. Il runtime v1 salta anche il controllo dell'emittente, quindi è preferibile servire l'endpoint tramite HTTPS
AWS credentials expired or invalid
Il tuo token di sessione AWS è scaduto o è stato rifiutato. Questo messaggio appare su un 401 da Claude Platform on AWS o dall'endpoint Mantle, che è il modo in cui questi provider segnalano un token di sicurezza scaduto.
Il suggerimento di azione al centro varia in base alla tua configurazione. La parte stabile è quella iniziale AWS credentials expired or invalid:
AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...
Prima della v2.1.273, questo messaggio appariva solo quando awsAuthRefresh era configurato.
Cosa fare:
- Se il suggerimento indica che le credenziali sono gestite da questo ambiente, la credenziale appartiene all'app che ha avviato Claude Code e gli altri passaggi qui non si applicano: riprova oppure contatta il tuo amministratore
- Se
awsAuthRefreshè impostato, esegui il comando indicato nel messaggio, comeaws sso login --profile myprofile, in un altro terminale e completa l'accesso nel browser, poi riprova. Altrimenti aggiorna tu stesso la credenziale AWS che usi: il tuo accesso SSO, le chiavi di accesso, la chiave API o il token del proxy - Con
awsAuthRefreshimpostato in una sessione interattiva, puoi invece eseguire/login, scegliere 3rd-party platform, quindi selezionare Claude Platform on AWS · refresh credentials sotto Using 3rd-party platforms per eseguire lo stesso comando senza riavviare Claude Code. Consulta Configurare le credenziali AWS - Se l'errore si ripete dopo che il comando di aggiornamento è riuscito, verifica che l'identità sia valida al di fuori di Claude Code con
aws sts get-caller-identitynella stessa shell e con lo stesso profilo
AWS authentication failed
Il tuo provider AWS ha restituito un 403, oppure Amazon Bedrock ha restituito un 401.
Amazon Bedrock segnala un token di sicurezza scaduto come un 403, ma un 403 è anche il modo in cui segnala un diniego di autorizzazione, come un AccessDeniedException dovuto a un permesso IAM mancante. Claude Code non è in grado di distinguere queste due cause.
Anche un 401 da Amazon Bedrock finisce qui invece che in AWS credentials expired or invalid, perché Amazon Bedrock non segnala un token scaduto come un 401. Un 401 da quell'endpoint proviene in genere da qualcos'altro nel percorso della richiesta, come un proxy aziendale.
Un aggiornamento delle credenziali risolve un token scaduto ma non può risolvere le altre cause, quindi il messaggio propone entrambe le soluzioni:
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 ...
Il suggerimento di azione al centro varia in base alla tua configurazione. La parte stabile è quella iniziale AWS authentication failed.
Quando il 403 è la risposta di Amazon Bedrock che indica che non hai accesso al modello con l'ID modello specificato, il suggerimento ti dice invece di abilitare il modello per il tuo account e la tua regione nella console di Amazon Bedrock.
Prima della v2.1.273, questo messaggio appariva solo quando awsAuthRefresh era configurato.
Cosa fare:
- Se il suggerimento indica che le credenziali sono gestite da questo ambiente, la credenziale appartiene all'app che ha avviato Claude Code e gli altri passaggi qui non si applicano: riprova oppure contatta il tuo amministratore
- Aggiorna le tue credenziali AWS nel caso in cui la causa sia una credenziale scaduta: esegui il comando
awsAuthRefreshindicato nel messaggio quando ne è impostato uno, oppure aggiorna tu stesso il tuo accesso SSO, le chiavi di accesso, la chiave API o il token del proxy - Se le tue credenziali sono aggiornate, verifica che i permessi IAM indicati in Configurazione IAM siano associati all'identità che stai usando e che il modello selezionato sia abilitato per il tuo account e la tua regione
- Esegui
aws sts get-caller-identityper verificare quale identità usano le tue richieste
Google Cloud credentials expired or invalid
Le tue credenziali Google Cloud per Google Cloud's Agent Platform sono scadute o sono state rifiutate: la richiesta ha restituito un 401, che è il modo in cui Agent Platform segnala la scadenza delle credenziali.
Il suggerimento di azione al centro varia in base alla tua configurazione. La parte stabile è quella iniziale Google Cloud credentials expired or invalid:
Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...
Cosa fare:
- Se il suggerimento indica che le credenziali sono gestite da questo ambiente, la credenziale appartiene all'app che ha avviato Claude Code e gli altri passaggi qui non si applicano: riprova oppure contatta il tuo amministratore
- Se ti autentichi con le credenziali predefinite dell'applicazione, esegui il comando
gcpAuthRefreshindicato nel messaggio, oppuregcloud auth application-default login, e completa l'accesso, poi riprova - Se passi attraverso un gateway LLM con
CLAUDE_CODE_SKIP_VERTEX_AUTHimpostato, aggiorna il token del gateway inANTHROPIC_AUTH_TOKENoANTHROPIC_CUSTOM_HEADERS, poi riprova - Se ti autentichi con un file di chiave di un service account, verifica che
GOOGLE_APPLICATION_CREDENTIALSpunti a una chiave valida. Consulta Configurare le credenziali GCP - Se l'errore si ripete dopo un aggiornamento, verifica che l'identità funzioni al di fuori di Claude Code con
gcloud auth application-default print-access-tokennella stessa shell
Prima della v2.1.273, un 401 da Agent Platform mostrava invece il messaggio generico Please run /login o Failed to authenticate, che non può aggiornare le credenziali Google Cloud.
Google Cloud authentication failed
Google Cloud's Agent Platform ha restituito un 403, che usa per i dinieghi di autorizzazione anziché per le credenziali scadute. Di solito all'identità con cui ti autentichi manca un permesso IAM, oppure il modello non è abilitato per il tuo progetto.
Il suggerimento di azione al centro varia in base alla tua configurazione. La parte stabile è quella iniziale Google Cloud authentication failed:
Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...
Cosa fare:
- Se il suggerimento indica che le credenziali sono gestite da questo ambiente, la credenziale appartiene all'app che ha avviato Claude Code e gli altri passaggi qui non si applicano: riprova oppure contatta il tuo amministratore
- Verifica che i ruoli indicati in Configurazione IAM siano concessi all'identità con cui ti autentichi
- Verifica che il modello sia abilitato per il tuo progetto. Consulta Richiedere l'accesso al modello
Prima della v2.1.273, un 403 da Agent Platform mostrava invece il messaggio generico Please run /login o Failed to authenticate, che non può aggiornare le credenziali Google Cloud.
Microsoft Foundry authentication failed
Microsoft Foundry ha restituito un 401 o un 403: la credenziale Azure nella richiesta è stata rifiutata, oppure l'identità che la sostiene non ha accesso alla risorsa Foundry. /login non può generare credenziali Azure. Il suggerimento di azione al centro varia in base alla tua configurazione. La parte stabile è quella iniziale Microsoft Foundry authentication failed:
Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...
Cosa fare:
- Se il suggerimento indica che le credenziali sono gestite da questo ambiente, la credenziale appartiene all'app che ha avviato Claude Code e gli altri passaggi qui non si applicano: riprova oppure contatta il tuo amministratore
- Aggiorna la credenziale che hai configurato in Configurare le credenziali Azure: ruota
ANTHROPIC_FOUNDRY_API_KEY, genera un nuovoANTHROPIC_FOUNDRY_AUTH_TOKEN, oppure eseguiaz loginin modo che la catena di credenziali predefinita di Microsoft Entra possa accedere di nuovo - Se la credenziale è aggiornata, verifica che l'identità abbia accesso alla risorsa Foundry. Consulta Configurazione di Azure RBAC
Prima della v2.1.273, un 401 o un 403 da Microsoft Foundry mostrava invece il messaggio generico Please run /login o Failed to authenticate, che non può aggiornare le credenziali Azure.
Could not load AWS or Google Cloud credentials
Claude Code non è riuscito a ottenere credenziali utilizzabili dalla catena di provider di credenziali AWS o dalle credenziali predefinite dell'applicazione Google sulla macchina su cui è in esecuzione, quindi nessuna richiesta ha raggiunto il tuo provider cloud. Il dettaglio dopo il · indica la causa specifica, come una sessione SSO scaduta, credenziali predefinite dell'applicazione mancanti segnalate come Could not load the default credentials, o un accesso revocato segnalato come invalid_grant:
API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.
API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.
In modalità non interattiva con -p e nell'Agent SDK, il codice di errore strutturato è cloud_credential_error. Prima della v2.1.267, il messaggio mostrava solo il testo di dettaglio dopo API Error:, e il codice strutturato era server_error o unknown.
Cosa fare:
- Esegui il comando di accesso del tuo provider, come
aws sso login --profile myprofileogcloud auth application-default login, poi riprova. Credenziali Bedrock, Agent Platform o Foundry non caricate mostra come verificare le credenziali al di fuori di Claude Code - Se il dettaglio riporta
AWS default-chain credential resolve timed out, la catena si è bloccata anziché fallire, quindi segui invece AWS default-chain credential resolve timed out
AWS default-chain credential resolve timed out
La catena di provider di credenziali predefinita di AWS non ha prodotto credenziali entro 60 secondi, quindi Claude Code ha interrotto la risoluzione e ha fatto fallire la richiesta. Questo timeout è una delle cause di Could not load AWS or Google Cloud credentials. L'errore riguarda la risoluzione locale delle credenziali: la richiesta non ha mai raggiunto Amazon Bedrock, Claude Platform on AWS o l'endpoint Mantle. Claude Code svuota la sua cache delle credenziali e riprova prima che questo errore venga mostrato, quindi quando lo vedi la catena si è bloccata in tentativi ripetuti.
API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.
Le cause comuni sono un comando credential_process nel tuo profilo AWS che attende un input che non può ricevere, e un container o una VM il cui servizio di metadati dell'istanza (IMDS) non risponde mai alla verifica della catena.
Prima della v2.1.267, il messaggio era API Error: AWS default-chain credential resolve timed out.
Prima della v2.1.207, una catena bloccata lasciava la richiesta in attesa indefinitamente anziché farla fallire.
Cosa fare:
- Esegui
aws sts get-caller-identitynella stessa shell con lo stessoAWS_PROFILE. Se anche questo si blocca, correggi il profilo; un comandocredential_processche chiede input in modo interattivo è una causa comune. - Completa il passaggio di accesso prima di avviare Claude Code, ad esempio
aws sso login --profile myprofile - Se la tua catena esegue un accesso interattivo che richiede legittimamente più di 60 secondi, come SSO con MFA tramite un wrapper come
aws-vault, aumenta il limite in millisecondi conCLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS
Bedrock setup verification timed out waiting for AWS
Una chiamata ad AWS durante la verifica delle credenziali della procedura guidata di configurazione di Bedrock, come la ricerca delle credenziali o il controllo dell'identità, non si è conclusa entro il limite di 60 secondi. La procedura guidata smette di attendere e fa fallire il passaggio di verifica:
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.
Il numero riflette il tuo limite: 60 secondi per impostazione predefinita, oppure il valore che hai impostato in CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.
Le cause comuni sono una rete o un proxy che blocca le richieste ad AWS, incluso l'aggiornamento del token SSO, e un credential helper ancora in attesa di un input che non puoi vedere. Aumenta il limite solo quando l'helper ha legittimamente bisogno di più tempo.
Anche una singola richiesta ad AWS bloccata può fallire per il proprio timeout per richiesta, che mostra un messaggio più breve nello stesso passaggio:
A request to AWS timed out. Check your network and proxy settings, then try again.
Quando gli stessi timeout si verificano nel passaggio di fissaggio del modello, la procedura guidata contrassegna un modello come unreachable invece di mostrare uno dei due messaggi.
Cosa fare:
- Esegui
aws sts get-caller-identitynella stessa shell. Se anche questo si blocca, il blocco è al di fuori di Claude Code, nella tua rete, nel tuo proxy o nel credential helper del tuo profilo AWS; risolvi prima quello. - Completa qualsiasi accesso interattivo prima di aprire la procedura guidata, ad esempio
aws sso login --profile myprofile - Se un credential helper nel tuo profilo AWS ha legittimamente bisogno di più di 60 secondi per chiederti un input, aumenta il limite in millisecondi con
CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS
Cloud gateway session expired
Hai effettuato l'accesso tramite un gateway delle app Claude, e la sessione del gateway salvata su questa macchina è scaduta e non è stato possibile rinnovarla, oppure il gateway non la accetta più, ad esempio dopo che il segreto JWT del gateway è stato sostituito. Se vedi questa riga quando avvii claude in modo interattivo, la sessione si è aperta senza accesso al gateway:
Cloud gateway session expired — run /login to reconnect.
La stessa riga può apparire durante la sessione quando la credenziale del gateway scade e Claude Code non riesce a rinnovarla.
In un'esecuzione non interattiva, in una sessione in background o comunque non presidiata, o in un sottocomando claude diverso da claude auth, Claude Code termina invece con questo messaggio quando il gateway non accetta più la sessione:
Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.
Cosa fare:
- Esegui
/loginnella sessione e completa l'accesso nel browser - Per un avvio non interattivo, avvia
claudenello stesso ambiente, esegui/login, poi esegui di nuovo il tuo comando
Sign-in timed out while waiting for you to continue
Durante un accesso tramite un gateway delle app Claude, il gateway ha indicato l'account che ha effettuato l'accesso e Claude Code ti ha chiesto di confermarlo prima di salvare la credenziale. Hai lasciato la conferma aperta oltre la scadenza dell'accesso stesso, e il gateway non ha emesso alcun refresh token in grado di rinnovarlo, quindi Claude Code non ha salvato nulla quando hai proseguito:
Sign-in timed out while waiting for you to continue. Try again.
Cosa fare:
- Esegui di nuovo
/logine conferma l'account prima che l'accesso scada
Gateway refused the request
Hai effettuato l'accesso tramite un gateway delle app Claude, e una richiesta ha restituito un 403: il gateway, o il servizio upstream dietro di esso, l'ha rifiutata. Accedere di nuovo non cambia un rifiuto, quindi il messaggio ti indirizza all'amministratore del tuo gateway:
Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...
Cosa fare:
- Chiedi all'amministratore del tuo gateway di esaminare la richiesta. La parte finale
API Error:riporta il rifiuto restituito dal gateway - Per gli amministratori: una regola di controllo degli accessi sul gateway restituisce un 403 che il log di audit registra insieme al motivo, e un diniego di autorizzazione da parte di un servizio upstream viene inoltrato come descritto in Messaggi di errore upstream
Prima della v2.1.273, un 403 in una sessione del gateway mostrava invece il messaggio generico Please run /login o Failed to authenticate, e accedere di nuovo non eliminava il rifiuto.
Errori di rete e connessione
La maggior parte di questi errori significa che una richiesta di rete da Claude Code non ha raggiunto la sua destinazione, oppure qualcosa tra Claude Code e l'API ha alterato la risposta durante il percorso; quando una voce ha anche una causa locale, come una scrittura dell'archivio non riuscita, il corpo lo specifica. Di solito originano dalla tua rete locale, proxy o firewall, oppure dalla politica di rete dell'ambiente cloud.
Unable to connect to API
La connessione TCP all'API non è riuscita o non si è mai completata. Per i codici di errore di connessione comuni, il messaggio specifica il tipo di errore e mantiene il codice tra parentesi:
Unable to connect to API. Check your internet connection
Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)
Can't reach the API server — check your internet or DNS (ENOTFOUND)
No internet route — check your connection or VPN (EHOSTUNREACH)
Couldn't connect through your proxy (ERR_PROXY_TUNNEL) — the proxy refused the tunnel: check its credentials and that it allows this host
Connection dropped (ECONNRESET)
Request timed out. Check your internet connection and proxy settings
Un codice che Claude Code non riconosce appare come Unable to connect to API seguito dal codice tra parentesi. Alcuni di questi messaggi possono mostrare più di un codice: Connection refused può mostrare ConnectionRefused o ECONNREFUSED, ad esempio, e Can't reach the API server può mostrare ENOTFOUND o FailedToOpenSocket.
Prima della v2.1.227, ognuno di questi messaggi codificati leggeva Unable to connect to API seguito dal codice, ad esempio Unable to connect to API (ECONNREFUSED).
Le cause comuni includono nessun accesso a Internet, una VPN che blocca api.anthropic.com, o un proxy aziendale richiesto che non è configurato.
Cosa fare:
- Conferma di poter raggiungere l'host API dalla stessa shell eseguendo
curl -I https://api.anthropic.com. Su Windows PowerShell usacurl.exe -I https://api.anthropic.comin modo che l'aliasInvoke-WebRequestintegrato non sia utilizzato. - Se sei dietro un proxy aziendale, imposta
HTTPS_PROXYprima di avviare Claude Code e vedi Network configuration - Se instradi attraverso un gateway LLM o un relay, imposta
ANTHROPIC_BASE_URLal suo indirizzo. Vedi Connect Claude Code to an LLM gateway per la configurazione. - Se
ANTHROPIC_BASE_URLpunta già al tuo gateway e ogni richiesta termina conConnection dropped, controlla che il tuo gateway e il suo upstream accettino i campi della ricerca degli strumenti. Per impostazione predefinita, Claude Code invia i campi degli strumentidefer_loadinge i blocchitool_reference, con l'intestazioneanthropic-betache li abilita. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi conENABLE_TOOL_SEARCH. - Assicurati che il tuo firewall consenta gli host elencati in Network access requirements
- I guasti intermittenti vengono ritentati automaticamente
Se curl ha successo ma Claude Code continua a fallire, la causa è solitamente qualcosa tra il runtime e la rete piuttosto che la rete stessa:
- Controlla se
ANTHROPIC_BASE_URLè impostato eseguendoecho $ANTHROPIC_BASE_URL, oecho $env:ANTHROPIC_BASE_URLin PowerShell, e cercalo nel bloccoenvdei tuoi settings files. Quando è impostato, Claude Code invia le richieste del modello a quell'indirizzo invece diapi.anthropic.com, quindi un valore residuo che punta a un proxy locale o gateway che non è più in esecuzione produceConnection refusedanche securlraggiunge l'API. Rimuovilo dal tuo profilo shell o dalle impostazioni e avvia Claude Code da un nuovo terminale. - Su Linux e WSL, controlla
/etc/resolv.confper un nameserver non raggiungibile. WSL in particolare può ereditare un resolver rotto dall'host. - Su macOS, un client VPN che è stato disconnesso o disinstallato può lasciare dietro un'interfaccia tunnel o una regola di routing. Controlla
ifconfigper interfacceutunstantie e rimuovi l'estensione di rete della VPN in Impostazioni di Sistema. - Docker Desktop e runtime di container simili possono intercettare il traffico in uscita. Chiudili e riprova per escludere questa possibilità.
Unable to connect to Anthropic services
Durante la configurazione della prima esecuzione, Claude Code verifica di poter raggiungere api.anthropic.com e platform.claude.com prima di mostrare il passaggio di accesso. Quando uno dei controlli fallisce, Claude Code stampa il motivo ed esce.
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 invia il controllo attraverso la stessa proxy configuration delle richieste API e assegna a ogni sonda 10 secondi. Quando la sonda fallita è passata attraverso un proxy, il messaggio nomina la variabile d'ambiente che l'ha configurata, come HTTPS_PROXY. Prima della v2.1.222, il controllo utilizzava un diverso trasporto proxy senza timeout: dietro un URL proxy con lo schema https://, potrebbe bloccarsi su Checking connectivity... indefinitamente e poi fallire anche se le richieste API attraverso lo stesso proxy hanno successo.
Claude Code salta questo controllo quando un file di impostazioni gestite, una policy MDM o un policy helper imposta forceLoginMethod a "gateway", o imposta forceLoginGatewayUrl senza forceLoginMethod. Con entrambe le configurazioni, Claude Code apre il passaggio di accesso sulla schermata Cloud gateway piuttosto che su un metodo di accesso Anthropic. Claude Code salta anche il controllo quando una fonte di impostazioni gestite sulla macchina esiste ma non può essere letta, poiché quella fonte potrebbe contenere la configurazione del gateway. Prima della v2.1.247, Claude Code eseguiva il controllo anche sotto questa configurazione e usciva con questo errore quando gli endpoint di Anthropic non erano raggiungibili.
Claude Code salta il controllo anche su una macchina senza impostazioni gestite quando il tuo ~/.claude/settings.json specifica un gateway con forceLoginMethod e forceLoginGatewayUrl. Prima della v2.1.295, Claude Code eseguiva il controllo in quel caso.
Cosa fare:
- Se il messaggio nomina una variabile proxy, controlla che il suo valore punti al proxy giusto e chiedi al tuo team di rete di consentire connessioni HTTPS attraverso di esso all'host nel messaggio. Vedi Network configuration.
- Lavora attraverso i controlli in Unable to connect to API. Il test
curle la guida del firewall lì si applicano anche a questo controllo. - Se la tua rete è aperta e il guasto persiste, Claude Code potrebbe non essere disponibile nel tuo paese
Socket is closed
Socket is closed significa che la connessione che trasporta una risposta in streaming è stata chiusa mentre la risposta stava ancora arrivando. La causa più comune è un proxy aziendale su Windows che interrompe un tunnel stabilito a metà risposta.
A seconda di quanto la risposta era progredita, Claude Code ritenta la richiesta, mantiene ciò che Claude ha prodotto, o termina il turno. Vedi Automatic retries.
Prima della v2.1.214, Claude Code non ritentava questo guasto e il turno si fermava con un errore contenente Socket is closed.
Cosa fare:
- Se vedi questo errore, aggiorna a v2.1.214 o successivo con
claude update, quindi invia di nuovo il tuo messaggio - Se i turni continuano a fallire dietro lo stesso proxy dopo l'aggiornamento, lavora attraverso Unable to connect to API e controlla la configurazione del proxy in Network configuration
API returned an empty or malformed response
Claude Code mostra questo errore quando il suo nuovo tentativo non in streaming di una richiesta in streaming fallita ottiene uno stato HTTP di successo ma il corpo non è un messaggio API Claude: comunemente una pagina di errore HTML o di accesso, un corpo vuoto, o JSON in un altro formato. Un proxy, gateway, o pagina di accesso di rete che risponde al posto dell'API è la solita fonte. Claude Code non ritenta la richiesta e il turno termina con questo errore.
API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.
Dopo quell'apertura, il messaggio segnala ciò che è tornato e quale richiesta ha fallito:
- Una clausola
Response:con il tipo di contenuto, il tipo di corpo, comebody is an HTML pageoempty body, la sua dimensione in byte, e se la risposta ha portato un id di richiesta Anthropic. Quando la risposta nomina un server riconoscibile, comenginxocloudflare, o porta intestazioni intermediarie, comecf-rayovia, la clausola elenca anche quelli. - Una frase che nomina l'id della richiesta in streaming fallita e il guasto che ha attivato il nuovo tentativo. Quando uno stream si era aperto prima del guasto, segnala anche quanti eventi di stream sono arrivati e, se ce ne sono stati, quanto tempo lo stream era stato silenzioso quando il tentativo è fallito.
Prima della v2.1.234, il messaggio terminava dopo intercepting the request.
Prima della v2.1.271, una risposta che portava un messaggio API valido sotto un tipo di contenuto non JSON come text/plain terminava anche il turno con questo errore. Alcuni gateway LLM utilizzano quel tipo di contenuto per la risposta non in streaming.
Cosa fare:
- Leggi la clausola
Response:per vedere quale sistema ha risposto. Un corpo HTML, nessun id di richiesta Anthropic, o un server nominato comenginxocloudflaresignifica che qualcosa tra Claude Code e l'API ha risposto al suo posto - Se instradi attraverso un LLM gateway, testa il percorso con una richiesta diretta e correggi l'hop che restituisce la risposta non-API
- Su una rete con una pagina di accesso, come Wi-Fi ospite, completa l'accesso in un browser, quindi riprova
- Se solo il percorso non in streaming attraverso il tuo gateway è rotto, imposta
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1per disattivare questo fallback, tranne quando l'endpoint di streaming stesso restituisce404, dove Claude Code continua comunque a usare il fallback
Streaming response ended before any complete data was received
Una risposta in streaming dal tuo provider di modelli è stata completata senza fornire dati utilizzabili, quindi Claude Code ha reinviato la richiesta senza streaming per terminare il turno. Claude Code mostra l'avviso una volta per sessione, solo in sessioni interattive. Prima della v2.1.239, Claude Code ritentava silenziosamente senza streaming.
Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.
Claude Code invia ogni richiesta interessata due volte: il tentativo di streaming vuoto e il nuovo tentativo. La causa solita è un proxy o gateway che consuma o trasforma il corpo della risposta in streaming durante il percorso di ritorno.
Cosa fare:
- Configura qualsiasi proxy o gateway tra Claude Code e il tuo provider di modelli per passare i corpi della risposta in streaming e le loro intestazioni senza modifiche
- Su Amazon Bedrock, vedi Streaming errors behind a gateway or proxy per i requisiti di intestazione e corpo
Bedrock streaming response has an unexpected content-type
Un gateway o proxy tra Claude Code e Amazon Bedrock sta trasformando il corpo della risposta in streaming o la sua intestazione Content-Type. Amazon Bedrock trasmette le risposte come application/vnd.amazon.eventstream. Piuttosto che decodificare un corpo che non può leggere, Claude Code rifiuta una risposta in streaming riuscita che segnala un content-type diverso. Claude Code non ritenta la richiesta.
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.
Prima della v2.1.208, la stessa configurazione errata è emersa come API Error: Truncated event message received dopo che l'intera risposta era stata memorizzata nel buffer.
Cosa fare:
- Configura il gateway per passare il corpo della risposta
InvokeModelWithResponseStreame la sua intestazioneContent-Typesenza modifiche. Un intermediario che ri-emette lo stream come server-sent events è una causa comune. - Impostare
CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1nasconde questo errore, ma Claude Code non decodifica un corpo binario sotto un'intestazione riscritta, quindi quelle richieste ripiegano su un percorso più lento non in streaming. Vedi Streaming errors behind a gateway or proxy.
SSL certificate errors
Un proxy o appliance di sicurezza sulla tua rete sta intercettando il traffico TLS con il suo certificato, e Claude Code non lo ritiene attendibile.
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
Prima della v2.1.273, entrambi i messaggi terminavano a Check your proxy or corporate SSL certificates, senza il codice OpenSSL o il suggerimento NODE_EXTRA_CA_CERTS.
A partire dalla v2.1.199, un guasto di convalida del certificato non viene ritentato, quindi questo errore appare al primo tentativo invece che dopo il retry budget completo. Le versioni precedenti spendevano alcuni minuti ritentando prima di mostrarlo. Le condizioni TLS transitorie, come un timeout di handshake, continuano a ritentare.
Durante /login e il controllo di connettività all'avvio, lo stesso guasto produce un messaggio diverso:
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.
Su Amazon Bedrock, le richieste che Claude Code stesso invia ad AWS, come le chiamate di credenziale di ruolo STS e SSO, la scoperta del modello, e i controlli della procedura guidata di configurazione, dipendono dalla stessa configurazione del certificato. Vedi Certificate errors behind a TLS-inspecting proxy.
Cosa fare:
- Esporta il bundle CA della tua organizzazione e punta Claude Code ad esso con
NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem - Vedi Network configuration per le istruzioni di configurazione complete
- Non impostare
NODE_TLS_REJECT_UNAUTHORIZED=0, che disabilita completamente la convalida del certificato
Host not allowed in a cloud session
Una richiesta HTTP in uscita da una sessione cloud o da un'attività pianificata cloud è stata bloccata dalla politica di rete dell'ambiente.
HTTP 403
x-deny-reason: host_not_allowed
Potresti anche vedere un certificato TLS che non corrisponde al certificato reale della destinazione. Le sessioni cloud instradano il traffico in uscita attraverso un proxy che applica la politica di rete, quindi un certificato non corrispondente significa che il proxy ha terminato la connessione, non la destinazione.
Questo errore non è un problema di rete lato client. Le sessioni cloud e le attività pianificate cloud vengono eseguite all'interno di una VM sandbox il cui traffico in uscita attraverso la rete della sessione è filtrato in base all'allowlist dell'ambiente cloud:
- Traffico GitHub e dei connettori: le operazioni GitHub e il traffico dei connettori MCP utilizzano canali separati, motivo per cui possono continuare a funzionare mentre altri host sono bloccati
- Ambiente predefinito: l'ambiente Default utilizza l'accesso Limited con Allow package managers selezionato. Le sue sessioni raggiungono l'allowlist predefinita di registri di pacchetti, API di provider cloud, registri di container e domini di sviluppo comuni.
Cosa fare:
Questi passaggi cambiano uno dei tuoi ambienti. Un organization-shared environment si apre in sola lettura nel selettore, quindi chiedi a un Owner di cambiare il suo accesso di rete dalla pagina Cloud environments in admin settings.
- Apri il tuo ambiente per la modifica, o dal modulo dell'attività pianificata cloud o dal environment selector dove avvii sessioni cloud.
- Nella finestra di dialogo Edit cloud environment, seleziona Limited in Network access, quindi aggiungi il dominio bloccato a Allowed domains. Inserisci un dominio per riga. Seleziona Allow package managers per consentire l'allowlist predefinita insieme ai tuoi domini. Seleziona Full invece se desideri accesso senza restrizioni.
- Fai clic su Save changes. La prossima esecuzione utilizza l'allowlist aggiornata. Per una sessione cloud che è già aperta, vedi quando una modifica dell'accesso di rete raggiunge le sessioni esistenti.
Vedi Network access per i livelli di accesso e l'allowlist predefinita. Le sessioni CLI locali non sono interessate da questa politica.
The proxy refused the connection
Vedi questo messaggio quando Claude legge un artefatto attraverso il proxy che hai impostato in HTTPS_PROXY o una proxy variable correlata. Il contenuto dell'artefatto proviene da *.frame.claudeusercontent.com, quindi Claude Code invia prima al proxy una richiesta CONNECT chiedendogli di aprire un tunnel a quell'host. Quando il proxy rifiuta, nulla raggiunge l'host, e il messaggio porta lo stato HTTP del proxy:
artifact content fetch failed (proxy refused the connection: HTTP 407)
artifact content fetch failed (proxy refused the connection: HTTP 403)
the proxy refused the connection to the artifact's content host (HTTP 502)
Lo stato è la risposta del proxy al CONNECT. L'host non ha mai risposto, quindi ogni stato punta a una correzione diversa:
HTTP 407: il proxy richiede credenziali che non ha ricevuto. Mettile nell'URL del proxy, come mostra Basic authentication.HTTP 403: il proxy rifiuta di fare tunnel a*.frame.claudeusercontent.com. Chiedi a chiunque gestisca il proxy di consentire quell'host, che Network access requirements elenca.- Qualsiasi altro stato, come
HTTP 502: il proxy non ha aperto il tunnel per suo motivo, come il mancato raggiungimento dell'host. Cerca lo stato nei log del proxy. unreadable replyal posto di uno stato: qualunque cosa sia all'indirizzo del proxy non ha risposto con una riga di stato HTTP. Controlla che l'indirizzo sia un proxy HTTP.
Cosa fare:
- Controlla l'indirizzo e le credenziali nella variabile proxy, come descrive Proxy configuration, quindi esegui
curl -x http://proxy.example.com:8080 -I https://api.anthropic.comdalla shell in cui avvii Claude Code, usando il tuo URL proxy. Su Windows PowerShell, eseguicurl.exe. Se questa sonda fallisce allo stesso modo, correggi prima la configurazione del proxy. Se ha successo, il rifiuto è specifico dell'host dell'artefatto. - Se la tua rete consente a Claude Code di raggiungere l'host dell'artefatto direttamente, aggiungi
.frame.claudeusercontent.comaNO_PROXY. Mantieni la voce stretta: una voce.claudeusercontent.compiù ampia bypassa anche il proxy perbridge.claudeusercontent.com, che le organizzazioni con IP allowlisting devono mantenere sul proxy.
Prima della v2.1.238, Claude Code segnalava un tunnel rifiutato come un errore di rete generico.
The cloud environments service returned an empty or unexpected response
Claude Code richiede il tuo elenco di cloud environments in diversi punti, come quando crei una sessione cloud dalla CLI o esegui /remote-env. Quando non riesce a leggere la risposta del server, mostra uno di questi messaggi:
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.
Il server ha accettato la richiesta ma ha risposto con un corpo che non è l'elenco degli ambienti: vuoto, non JSON, o JSON senza l'elenco. Questo di solito accompagna un'interruzione lato servizio e si risolve da solo. A seconda della superficie che ha richiesto l'elenco, Claude Code può aggiungere un prefisso, come couldn't list environments: nella finestra di dialogo /remote-env.
Cosa fare:
- Ritenta l'azione. Claude Code richiede di nuovo l'elenco ogni volta
- Se il messaggio continua ad apparire, controlla status.claude.com per gli incidenti attivi
Prima della v2.1.236, Claude Code mostrava un TypeError JavaScript grezzo invece di questi messaggi.
Failed to fetch session from Sessions API
Questo messaggio significa che Claude Code ha trovato la sessione cloud che hai chiesto di portare nel tuo terminale ma non è riuscito a leggerne la cronologia della conversazione dai server di Anthropic, quindi non l'ha aperta:
Failed to fetch session from Sessions API: Failed to fetch session logs
Lo vedi dopo claude --teleport, /teleport, o dopo aver scelto la sessione nell'elenco /tasks. claude --teleport <session-id> lo stampa ed esce con codice 1.
Cosa fare:
- Esegui di nuovo lo stesso teleport. Se fallisce allo stesso modo, segnala il problema
Prima della v2.1.296, Claude Code non ritentava una lettura fallita e, dopo una lettura fallita, poteva aprire la sessione con una conversazione vuota e segnalare il successo invece di stampare questo messaggio.
Couldn't reconnect to your Remote Control session
Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume.
La ripresa con claude --resume o claude --continue si riconnette alla sessione Remote Control registrata in quella conversazione. Questo messaggio significa che la riconnessione è fallita per un motivo che potrebbe essere temporaneo, come un'interruzione di rete o un errore del server, quindi Claude Code non può confermare se la sessione remota esiste ancora. La tua sessione locale continua a funzionare senza Remote Control.
Cosa fare:
- Esegui
/remote-controlper ritentare la connessione - Avvia una nuova sessione con
claude --remote-controlper creare una nuova sessione Remote Control - Per altri messaggi di avvio di Remote Control, vedi Troubleshoot Remote Control
Se il server segnala invece che la sessione precedente è scomparsa, non vedi questo messaggio. Claude Code avvia una nuova sessione al suo posto o mostra Previous session is unavailable — run /remote-control to start a new one.
Sessions ended while this machine was offline
Claude Code mostra questo messaggio nel terminale che esegue claude remote-control dopo che la tua macchina è stata offline abbastanza a lungo che il server ha pulito l'ambiente Remote Control che la tua macchina stava servendo. Le sessioni in quell'ambiente sono terminate e non puoi riprenderle. Il conteggio è il numero di sessioni che sono terminate.
2 sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.
Cosa fare:
- Quando Claude Code elenca i worktree mantenuti sotto questo messaggio, recupera da essi qualsiasi lavoro non committato
- Esegui
claude remote-controlper avviare un ambiente nuovo
Couldn't share the transcript
Dopo che accetti di condividere la trascrizione della tua sessione da un prompt di sondaggio, come il session quality survey, Claude Code la carica su Anthropic, o salva invece un archivio locale su provider di terze parti, su sessioni Claude apps gateway, e quando nessuna credenziale Anthropic è disponibile. Questo messaggio significa che la condivisione non è stata completata.
Couldn't share the transcript.
Il caricamento deve rientrare in un limite di 8 MiB. Su una sessione lunga, Claude Code elimina progressivamente parti della condivisione, le impostazioni del modello dell'ultima richiesta per prime, quindi la conversazione strutturata e le trascrizioni dei subagent, e mostra questo messaggio quando nessuna versione ridotta può essere inviata o un errore di rete o server interrompe il caricamento. Quando Claude Code salva invece un archivio locale, il messaggio significa che non è riuscito a scrivere l'archivio.
Cosa fare:
- Esegui
/feedbackper inviare la trascrizione con una descrizione di ciò che è accaduto. Vedi Report an error se/feedbacknon è disponibile nel tuo ambiente - Se anche altre richieste stanno fallendo, controlla la tua connessione di rete e vedi Unable to connect to API
Couldn't send feedback
Un messaggio che inizia con Couldn't send feedback significa che il servizio di feedback non ha confermato il rapporto che hai inviato dalla finestra di dialogo /feedback, /bug o /share, o una bozza di feedback in coda. Consideralo come non ricevuto. Quando dopo i due punti segue una frase sulla tua organizzazione, la tua organizzazione rifiuta il feedback.
Il secondo esempio è il rifiuto di un'organizzazione:
Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.
Couldn't send feedback: Feedback has not been enabled for your organization. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.
Cosa fare:
- Accesso non effettuato: il messaggio continua con
: not signed in. Run /login, then retry.Esegui/login, quindi invia di nuovo - Rifiuto della tua organizzazione: ad esempio
: Feedback has not been enabled for your organization.o: Feedback collection is not available for organizations with custom data retention policies.In seguito/feedbackpuò rispondere per sette giorni che è disabilitato dalla policy della tua organizzazione. Una bozza in coda rimane in coda e scade comunque secondo la pianificazione - Credenziali rifiutate: il messaggio continua con
: the sign-in this session uses is not allowed to send feedbacko: the server did not accept the credentials this session uses. Esegui/statusal prompt di Claude Code per vedere quale login, token o chiave API invia questa sessione (request timed out)o(couldn't reach the service)subito dopoCouldn't send feedback: invia di nuovo il rapporto o la bozza in coda. La finestra di dialogo mantiene il tuo testo e il messaggio di una bozza in coda indicaThe draft is still queued.Se anche altre richieste stanno fallendo, controlla la tua connessione di rete e vedi Unable to connect to API. Se continua a fallire, apri la segnalazione su github.com/anthropics/claude-code/issues(server returned <status>), o nessun motivo, subito dopoCouldn't send feedback: lo stato è il codice di risposta del servizio. Il messaggio del servizio stesso lo segue quando ne è stato inviato uno, come in(server returned 403: Access Forbidden). Se continua a fallire, apri la segnalazione su github.com/anthropics/claude-code/issues
Le segnalazioni su github.com/anthropics/claude-code sono pubbliche, quindi quando ne apri una escludi codice, trascrizioni e qualsiasi altra informazione riservata.
Prima della v2.1.281, ogni invio falliva con questo messaggio una volta che un Remote Control Stop o un messaggio urgente tra sessioni era arrivato mentre la finestra di dialogo era aperta. Su quelle versioni, chiudi la finestra di dialogo, riaprila e invia di nuovo.
Feedback payload too large
Questo messaggio nella schermata di revisione di una bozza di feedback significa che Claude Code non ha alcuna conferma che il servizio abbia accettato la bozza. Consideralo come non ricevuto. La bozza rimane nella tua coda di /feedback, quindi puoi inviarla di nuovo.
Feedback payload too large. Try again without the transcript, or shorten the details.
Cosa fare:
- Nella schermata di revisione, imposta Send transcript su
no, quindi invia di nuovo la bozza. Accorciare i dettagli rimuove al massimo 10 KB di testo, che è tutto ciò che i dettagli di una bozza possono contenere.
MCP server connection timed out during a sleep or clock change
Questo messaggio significa che una connessione a un server MCP è andata in timeout e Claude Code ha rilevato che l'orologio di sistema è andato avanti durante il tentativo:
MCP server "<name>" connection timed out. Your computer went to sleep or its clock changed while connecting.
Claude Code non può sapere se il tuo computer è andato in sospensione o se il suo orologio è stato spostato in avanti, quindi il messaggio indica entrambe le possibilità.
Cosa fare:
Connettiti di nuovo al server e mantieni il computer attivo finché il tentativo non termina. Se il server si connette, non c'è nulla da correggere.
- In una sessione interattiva: esegui
/mcp, seleziona il server e seleziona Reconnect - Nella tua shell: esegui di nuovo il comando
claude -p,claude mcp listoclaude mcp get. Se poi il server fallisce con un messaggio che inizia conSkipping connection (recent failure cached, attendi 15 minuti ed esegui di nuovo il comando. - In un'applicazione Agent SDK: chiama
reconnectMcpServer()in TypeScript oClaudeSDKClient.reconnect_mcp_server()in Python - Se il server fallisce di nuovo: se il messaggio è diverso da questo, vedi cosa controllare quando un server MCP non si connette. Se questo messaggio ricompare anche se il computer è rimasto attivo e nulla ne ha modificato l'orologio, vedi Report an error.
Prima della v2.1.307, Claude Code mostrava un messaggio di timeout come MCP server "<name>" connection timed out after <N>ms al posto di questo.
Errori di richiesta
Questi errori riguardano il contenuto della tua richiesta. La maggior parte proviene dall'API dopo che ha rifiutato la richiesta; alcuni sono prodotti localmente da Claude Code prima che venga inviata qualsiasi richiesta.
Prompt is too long
La conversazione più i file allegati superano la finestra di contesto del modello.
Prompt is too long
In una sessione interattiva, Claude Code mostra questo errore come:
Context limit reached · /compact or /clear to continue
La riga nomina solo /clear quando DISABLE_COMPACT è impostato. Le forme più lunghe dell'errore, come la forma di compattazione non riuscita di seguito, mantengono la dicitura Prompt is too long ·. Nell'output -p e nella trascrizione, il testo rimane Prompt is too long.
Quando hai disattivato la compattazione automatica nelle tue impostazioni utente, la riga dice anche:
Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on
L'interruttore Auto-compact in /config scrive autoCompactEnabled nelle impostazioni utente. L'hint appare solo quando una modifica /config avrebbe effetto. Ad esempio, non appare quando DISABLE_AUTO_COMPACT o DISABLE_COMPACT ha disattivato la compattazione automatica. Non appare nemmeno quando un ambito di precedenza superiore, come le impostazioni di progetto o gestite, ha impostato autoCompactEnabled su false. Prima della v2.1.235, la riga non conteneva alcun hint di compattazione automatica.
Amazon Bedrock segnala questa condizione come Input is too long for requested model., che Claude Code gestisce allo stesso modo. Prima della v2.1.217, Claude Code non riconosceva la dicitura di Bedrock, quindi la compattazione automatica non si attivava mai e /compact falliva con lo stesso errore.
Un gateway di app Claude segnala questa condizione come capability_rejected: prompt_too_long quando un upstream cloud rifiuta la richiesta nella forma di errore propria del provider. Claude Code tratta il token come Prompt is too long. Prima della v2.1.228, Claude Code non riconosceva il token, quindi la compattazione automatica non si attivava.
Quando la compattazione automatica è stata eseguita su questo turno e ha fallito su un errore sottostante, come un modello non disponibile o un errore di autenticazione, il messaggio nomina quell'errore dopo un separatore:
Prompt is too long · automatic compaction failed: <the underlying error>
Risolvi prima l'errore nominato; /compact fallisce sullo stesso errore finché non lo fai. Prima della v2.1.229, una compattazione automatica non riuscita mostrava Prompt is too long senza la causa.
Quando la compattazione automatica viene eseguita su questo errore, normalmente riassume i tuoi scambi più vecchi e mantiene i più recenti. Come ultima risorsa, Claude Code riassume diversamente:
- Quando non può riassumere alcuno scambio completo, Claude Code mantiene il tuo prompt più recente parola per parola e riassume tutto prima di esso.
- In quel caso, quando la conversazione non termina con il tuo prompt, Claude Code riassume l'intera conversazione.
Claude Code salta questo recupero quando il contenuto che porterebbe avanti non contiene alcuna risposta del modello e meno di circa 1.000 token del tuo testo, come un breve tentativo inviato dopo un incolla di dimensioni eccessive. Esegui /clear per ricominciare da capo. Prima della v2.1.269, la compattazione falliva ogni volta che non poteva riassumere uno scambio completo, quindi una sessione in quello stato colpiva questo errore di nuovo ad ogni turno.
Una conversazione con un singolo scambio non ha turni precedenti da riassumere. Quando la compattazione automatica avrebbe dovuto essere eseguita su uno, Claude Code salta il tentativo e spiega cosa riempie la richiesta. Quando l'API non segnala i conteggi dei token nel suo errore, il messaggio recita:
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.
Quando l'API segnala i conteggi dei token nel suo errore, Claude Code li confronta con la sua stima della dimensione della conversazione per dire quale è la maggior parte della richiesta: il contenuto della conversazione stessa, o il prompt di sistema, le definizioni degli strumenti e il contenuto degli allegati che Claude Code invia con essa. Quando il contenuto della conversazione è la maggior parte della richiesta, il messaggio recita:
Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) and this conversation's own content is most of it. A single-exchange conversation cannot be compacted; start with less content (smaller files or pasted text).
Quando la maggior parte della richiesta è al di fuori della conversazione, il messaggio recita:
Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) but this conversation is only ~<conversation tokens> tokens — the rest is system prompt, tool definitions, and attachment content. A single-exchange conversation cannot be compacted; reduce attached files/tools or start with less context.
Prima della v2.1.162, Claude Code tentava comunque la compattazione e mostrava il semplice Prompt is too long quando falliva.
Cosa fare:
- Esegui
/compactper riassumere i turni precedenti e liberare spazio, oppure/clearper ricominciare da capo. Se/compactrispondeNot enough messages to compact., la conversazione è un singolo scambio senza nulla di precedente da riassumere, quindi lo spazio è occupato da quel prompt e da quello che Claude Code invia con ogni richiesta: esegui/cleare reinvia con meno testo incollato o allegati più piccoli, oppure riduci le definizioni degli strumenti e i file di memoria utilizzando i passaggi seguenti - Esegui
/contextper vedere una suddivisione di ciò che consuma la finestra: prompt di sistema, strumenti, file di memoria e messaggi - Disabilita i server MCP che non stai utilizzando con
/mcp disable <name>per rimuovere le loro definizioni di strumenti dal contesto - Taglia i file di memoria
CLAUDE.mddi grandi dimensioni, oppure sposta le istruzioni in regole con ambito di percorso che si caricano solo quando rilevanti - La compattazione automatica è attiva per impostazione predefinita e normalmente previene questo errore. Se l'hai disattivata in
/configo conDISABLE_AUTO_COMPACT, riattivala. Se la mantieni disattivata, esegui/compacttu stesso prima che la finestra si riempia. - Se l'errore compare vicino ai 200K token su un modello che ne accetta di più, una causa è un ID modello che Claude Code non riconosce. Claude Code presume una finestra di 200K per un ID di questo tipo, quindi per continuare a lavorare oltre quel punto, indicagli la finestra di contesto reale del modello.
- Se usi un
ANTHROPIC_BASE_URLpersonalizzato e l'errore inizia conPrompt is too long · automatic compaction failed, imposta la finestra di contesto del modello oppure aggiorna alla v2.1.299 o successiva. Prima della v2.1.299, Claude Code terminava il turno con quel messaggio vicino alla finestra presunta di 200K invece di inviare la richiesta.
- Se usi un
- Se l'errore è apparso subito dopo che hai interrotto Claude mentre stava compattando la conversazione, la tua conversazione è invariata e ancora abbastanza grande da richiedere la compattazione. Esegui
/compacte invia di nuovo il tuo messaggio. Per evitare che l'errore si ripresenti, aggiorna Claude Code alla v2.1.304 o successiva. Prima della v2.1.304, interrompere in quel momento poteva terminare il turno con questo errore. - Nella v2.1.305, con molti strumenti MCP e una connessione diretta all'API Anthropic, questo errore può nascondere un errore 400 o 422 dell'API non correlato. Aggiorna Claude Code alla v2.1.306 o successiva per vedere l'errore originale.
Vedi Esplora la finestra di contesto per una visualizzazione interattiva di come il contesto si riempie.
Il contesto supera il limite di token
/context mostra questo avviso in cima al suo output quando la conversazione è cresciuta oltre la finestra di contesto del modello:
Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.
Dopo un avviso Context exceeds, non devi eseguire nessuno dei due comandi mentre la compattazione automatica è attiva, come da impostazione predefinita:
- Compattazione automatica attiva: invia il tuo prossimo messaggio. Se fallisce ancora con
Prompt is too long, consulta quella voce. - Compattazione automatica disattivata: nella sessione, esegui
/compactse l'avviso lo cita, oppure/clearper ricominciare. Finché non ne esegui uno, i messaggi falliscono conContext limit reached, oppure conPrompt is too longnell'output di-p.
Quando il limite che hai superato è una finestra di compattazione, come il limite di 200K sui modelli con contesto 1M, l'avviso recita diversamente. Una finestra di compattazione può stare al di sotto della finestra di contesto del modello, quindi le richieste oltre ad essa possono ancora avere successo.
Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.
Entrambe le forme nominano /clear invece di /compact quando hai impostato DISABLE_COMPACT.
Cosa fare:
- Dopo un avviso sulla finestra di compattazione: in una conversazione con più turni, esegui
/compactper riassumere i turni precedenti e liberare spazio. Per ricominciare invece da capo, esegui/clear. - Per altri modi per ridurre l'utilizzo, vedi Prompt is too long
Prima della v2.1.216, /context mostrava l'utilizzo sopra il 100% senza una riga di avviso che spiegasse cosa significava o come recuperare.
Request too large
Il corpo della richiesta grezza ha superato il limite di 32MB dell'API prima della tokenizzazione, solitamente a causa di contenuto incollato di grandi dimensioni, risultati degli strumenti o allegati. Questo limite è separato dalla finestra di contesto.
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.
Quando la richiesta è andata direttamente all'API Claude e l'API stessa l'ha rifiutata, Claude Code misura la conversazione e formula il messaggio in base al fatto che il recupero possa funzionare. Attraverso un proxy, gateway o provider cloud ottieni il messaggio generale. Le forme misurate:
Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).: le immagini o i documenti hanno spinto la richiesta oltre il limite. Claude Code ritenta con essi rimossi.Request too large for the API's 32MB request limit: i messaggi da soli superano il limite, quindi il messaggio dicecompacting cannot make it fite Claude Code non ritenta. In modalità non interattiva, il messaggio ti dice di ridurre l'input o avviare una nuova sessione.
Prima della v2.1.212, le conversazioni con abbastanza immagini accumulate fallivano ad ogni turno con Request too large (max 32MB). Double press esc to go back and try with a smaller file. Prima della v2.1.229, Claude Code mostrava il consiglio di allegato per ogni rifiuto, anche quando la compattazione non poteva aiutare.
Cosa fare:
- Se il messaggio dice
compacting cannot make it fit, premi Esc due volte per tornare indietro oltre il turno che ha aggiunto il contenuto di grandi dimensioni, oppure esegui/clearper ricominciare da capo - Altrimenti, esegui
/compact, che elimina le immagini e gli allegati accumulati - Fai riferimento ai file di grandi dimensioni per percorso invece di incollarne il contenuto, in modo che Claude possa leggerli in blocchi
- Per le immagini, vedi Image was too large di seguito
Image was too large
Un'immagine incollata o allegata supera i limiti di dimensione o dimensione dell'API.
Image was too large. Double press esc to go back and try again with a smaller image.
API Error: 400 ... image dimensions exceed max allowed size
API Error: an image in the conversation could not be processed and was removed.
An image in the conversation exceeds the dimension limit for many-image requests (3000px). Run /compact to remove old images from context, or start a new session.
La riga could not be processed and was removed significa che l'API ha rifiutato un'immagine nella conversazione, ad esempio una che supera i limiti di dimensione o di risoluzione.
Se uno di questi errori continua a ripresentarsi, aggiorna Claude Code. Nelle versioni precedenti, un errore relativo alle immagini poteva ripetersi per motivi come questi:
- Prima della v2.1.299, in una conversazione lunga con molte immagini, Claude Code poteva rimuovere le immagini che avevi allegato per ultime invece di quella che superava il limite. La riga
was removedsi ripeteva quindi a ogni turno e Claude non vedeva le tue nuove immagini. - Prima della v2.1.299, in VS Code, nell'app Desktop e nell'Agent SDK, le immagini allegate mentre Claude stava lavorando non venivano ridimensionate come le altre immagini allegate. Raggiungevano l'API alla loro dimensione originale, causando errori ripetuti relativi alle immagini nelle conversazioni lunghe.
- Prima della v2.1.166, un'immagine incollata poteva rimanere nella conversazione, e lo stesso errore si ripeteva quindi a ogni messaggio successivo
Cosa fare:
- Ridimensiona l'immagine prima di incollarla. L'API accetta immagini fino a 8000 pixel sul lato più lungo per una singola immagine, o 3000 pixel quando nel contesto ci sono più di 20 immagini.
- Fai uno screenshot più stretto della regione rilevante invece dello schermo intero
- Per il messaggio
dimension limit for many-image requests, esegui/compactnel prompt di Claude Code se il messaggio lo nomina, oppure avvia una nuova sessione con meno immagini
Il messaggio dimension limit for many-image requests mostra il limite in pixel indicato nell'errore dell'API.
Unable to resize image
Claude Code non ha potuto ridimensionare un'immagine allegata prima di inviarla all'API.
Unable to resize image — image processing is unavailable and dimensions could not be read from the file header. Please convert the image to PNG, JPEG, GIF, or WebP.
Unable to resize image — dimensions exceed the 2000x2000px limit and image processing failed. Please resize the image to reduce its pixel dimensions.
Unable to resize image (… raw, … base64). The image exceeds the … API limit and compression failed. Please resize the image manually or use a smaller image.
Unable to resize image — could not verify image dimensions are within the 2000x2000px API limit.
Unable to resize image — it is a CMYK JPEG, which Claude Code cannot decode, and at …px it is over the 2000x2000px limit, so it cannot be sent. Re-save it as an RGB PNG or JPEG and try again.
Unable to resize image — it is an animated WebP whose first frame Claude Code cannot decode, and at …px it is over the 2000x2000px limit, so it cannot be sent. Save its first frame as a PNG or JPEG and try again.
Unable to resize image — its pixels could not be decoded (the file may be damaged, or use an encoding Claude Code cannot read), and it is over the … API limit (… raw, … base64), so it cannot be sent. Re-save it as a PNG or JPEG and try again.
Claude Code normalmente ridimensiona automaticamente le immagini di grandi dimensioni. Questi errori significano che l'immagine non poteva essere decodificata o ridimensionata per rientrare nei limiti dell'API.
Cosa fare:
- Se il messaggio ti chiede di convertire l'immagine, convertila in PNG, JPEG, GIF o WebP e allegala di nuovo. Claude Code può verificare le dimensioni per questi formati dall'intestazione del file, senza decodificare l'immagine.
- Se il messaggio segnala un limite di dimensione o dimensione, ridimensiona o ricomprimi l'immagine al di sotto di quel limite prima di allegare.
- Se il messaggio nomina una causa, come un JPEG CMYK, un WebP animato o un file possibilmente danneggiato, risalva l'immagine nel formato che il messaggio suggerisce e allegala di nuovo.
Request rejected as unprocessable by the model
L'API ha rifiutato la richiesta in quanto il modello non può elaborarla. Il messaggio è quello dell'API stessa.
API Error: 400 Request rejected as unprocessable by the model (too many or oversized images, or unsupported parameters)
Claude Code può rimuovere le immagini e i documenti più vecchi da una richiesta rifiutata e inviarla di nuovo. Prima della v2.1.290, Claude Code non rimuoveva le immagini in caso di questo rifiuto, quindi una sessione lunga che ne aveva accumulate centinaia poteva fallire con questo errore a ogni turno.
Cosa fare:
- Se il messaggio continua a comparire in una conversazione con immagini o documenti, rimuovili tu stesso. Premi Esc due volte per tornare indietro oltre i turni che li hanno aggiunti, oppure esegui
/clearper ricominciare da zero.
Errori PDF
Il PDF che hai allegato non poteva essere elaborato. I messaggi sono mostrati qui nella loro forma non interattiva; in una sessione interattiva ti chiedono invece di premere Esc due volte e riprovare.
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).
Cosa fare:
- Per i PDF di grandi dimensioni, chiedi a Claude di leggere un intervallo di pagine con lo strumento Read invece di allegare l'intero file, oppure estrai il testo con uno strumento come
pdftotexte fai riferimento al file di output per percorso - Per i PDF protetti o non validi, rimuovi la password o riesporta il file dall'applicazione sorgente, quindi riprova
Quando Claude legge un intervallo di pagine da un PDF con lo strumento Read, la lettura può fallire con un messaggio diverso:
pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering.
Le letture dell'intervallo di pagine eseguono il rendering delle pagine con pdftoppm. Installa poppler-utils con il comando che il messaggio fornisce, o su altre piattaforme una build poppler che mette pdftoppm sul tuo PATH. Vedi Comportamento dello strumento Read per quali PDF vengono letti per intervallo di pagine.
Extra inputs are not permitted
L'endpoint che ha ricevuto la richiesta ha rifiutato uno dei campi della richiesta come input che non accetta, e il messaggio dell'endpoint nomina quel campo.
API Error: 400 ... context_management: Extra inputs are not permitted
Claude Code invia campi disponibili solo in beta, come context_management e defer_loading della ricerca degli strumenti, insieme a un'intestazione anthropic-beta che li abilita. Quando un gateway inoltra il corpo ma scarta l'intestazione, l'API vede campi che non riconosce. Quando un gateway inoltra un corpo in formato Anthropic a un upstream con uno schema diverso, quell'upstream rifiuta tali campi. Coppie di intestazioni beta e campi del corpo tratta entrambi i casi.
Cosa fare:
- Se il messaggio contiene
context_management: Extra inputs are not permitted, aggiorna Claude Code alla v2.1.304 o successiva. Dopo l'aggiornamento, Claude Code risponde a questo rifiuto inviando la richiesta un'altra volta senza il campo. Prima della v2.1.304, Claude Code non riprovava dopo questo rifiuto. - Se il messaggio indica
defer_loadingotool_reference, aggiorna Claude Code alla v2.1.305 o successiva. Claude Code risponde quindi a questo rifiuto inviando di nuovo la richiesta una volta senza i campi della ricerca degli strumenti. - Se il tuo gateway scarta l'intestazione, configuralo per inoltrare l'intestazione
anthropic-beta. Consulta pass-through delle funzionalità per sapere cosa devono inoltrare i gateway. - Come fallback, imposta
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1prima di avviare. Disabilita le capacità pre-release copre l'ambito esatto.
Prima della v2.1.302, questo errore poteva anche nominare il campo diagnostics senza che fosse coinvolto alcun gateway. Compariva quando una sessione che aveva già usato l'API Anthropic passava ad Amazon Bedrock o all'Agent Platform di Google Cloud senza un riavvio. Ad esempio, una sessione che hai lasciato aperta passa a Bedrock quando esegui /setup-bedrock in un'altra finestra di Claude Code. In quelle versioni, esegui /clear in quella sessione o riavviala.
Lo schema di input dello strumento non è valido
Uno strumento nella richiesta ha dichiarato un input_schema che non supera la convalida JSON Schema dell'API, quindi l'API ha rifiutato l'intera richiesta. Il numero dopo tools. è la posizione dello strumento che fallisce nell'elenco degli strumenti della richiesta, non un nome che puoi cercare.
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 prima forma significa che lo schema non è un JSON Schema draft 2020-12 valido. La seconda significa che un nome di proprietà di primo livello non corrisponde al pattern che il messaggio cita.
Claude Code esclude gli strumenti MCP il cui schema di input fallirebbe questa convalida quando carica gli strumenti di un server, quindi le richieste normalmente non ne includono mai uno.
Su una distribuzione in cui il recupero dei flag è disattivato, o su una macchina i cui flag non sono mai arrivati, Claude Code registra nel log del server quale strumento verrebbe rifiutato ma lo invia comunque, quindi questo errore può ancora verificarsi.
L'errore può verificarsi anche per uno strumento il cui schema dichiara un dialetto JSON Schema diverso da draft 2020-12 in $schema. Claude Code non controlla questi schemi rispetto al meta-schema JSON Schema, anche se il controllo del nome della proprietà di primo livello si applica comunque.
Prima della v2.1.216, nessuna distribuzione eseguiva i controlli di esclusione.
Cosa fare:
- Se la tua versione di Claude Code è precedente alla v2.1.300, esegui
claude updatenella tua shell. Prima della v2.1.300, Claude Code non riprovava la richiesta senza i parametri dello strumento rifiutato, quindi questo errore si ripeteva a ogni richiesta che includeva lo strumento. - Rimuovi o disabilita il server MCP che dichiara lo schema non valido. L'errore nomina lo strumento solo per posizione. Sulla v2.1.216 o successiva, controlla il log di ogni server per una riga che nomina uno strumento il cui schema di input verrebbe rifiutato. Se nessun log ne nomina uno, disabilita i server uno alla volta.
- Se mantieni il server, correggi il
input_schemadello strumento. Lo schema deve essere un JSON Schema valido e i nomi delle proprietà di primo livello devono essere da 1 a 64 caratteri e utilizzare solo lettere ASCII e cifre,_,.e-. Vedi Strumenti con schemi di input non validi.
Nome dello strumento MCP oltre 128 caratteri
Un server MCP elenca uno strumento il cui nome completo, come mcp__<server>__<tool>, è più lungo dei 128 caratteri che l'API accetta. Claude Code esclude quello strumento dagli strumenti che invia a Claude, e gli altri strumenti del server continuano a funzionare. In una sessione che avvii con claude --debug dalla tua shell, Claude Code scrive questo messaggio nel log di debug in ~/.claude/debug/<session-id>.txt:
Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128
Cosa fare:
- Se mantieni il server, accorcia il nome dello strumento.
- Se il server è nella tua configurazione MCP, assegnagli lì un nome più breve, come
dbal posto dianalytics-database. Quindi aggiorna ciò che fa riferimento al server o ai suoi strumenti con il vecchio nome, come le regole di permesso e i matcher degli hook. - Se un plugin include il server, il nome completo dello strumento include anche il nome del plugin. Chiedi al manutentore del plugin di accorciare il nome del server o dello strumento.
Prima della v2.1.292, Claude Code inviava comunque lo strumento, e l'API rifiutava ogni richiesta che lo includeva con API Error: 400 ... tools.N.custom.name: String should have at most 128 characters.
tool_use.name oltre 200 caratteri
Una chiamata a uno strumento nella cronologia della conversazione porta un nome più lungo dei 200 caratteri che l'API accetta in una richiesta:
API Error: 400 ... tool_use.name: String should have at most 200 characters
Claude Code taglia tale nome a 200 caratteri quando la risposta arriva e quando carica una conversazione salvata, quindi la chiamata fallisce con un errore dello strumento No such tool available e la conversazione continua senza questo errore API.
Cosa fare:
- Esegui
claude update, quindi riprendi la conversazione. La versione aggiornata ripara il nome eccessivamente lungo quando carica la trascrizione, quindi una conversazione che era bloccata funziona di nuovo.
Prima della v2.1.281, il nome eccessivamente lungo rimaneva nella cronologia e l'API rifiutava ogni richiesta che reinviava la conversazione, inclusi /compact e --resume, quindi questo errore si ripeteva e la conversazione era bloccata.
There's an issue with the selected model
Il nome del modello configurato non è stato riconosciuto o il tuo account non ha accesso ad esso. A partire dalla v2.1.160 l'hint finale, mostrato qui nella sua forma interattiva, varia in base alla superficie.
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.
Cosa fare:
- CLI interattiva: esegui
/modelper scegliere dai modelli disponibili per il tuo account. - Modalità non interattiva (
-p): passa--modelcon un alias o ID valido, oppure impostaANTHROPIC_MODEL. Il testo dell'errore mostraRun --modelsu questa superficie. - Agent SDK: il testo dell'errore omette l'hint perché il modello è impostato a livello di programmazione. Imposta
modelsuOptionsin TypeScript oClaudeAgentOptions(model=...)in Python, e gestisci l'errore strutturatomodel_not_foundper mostrare il tuo nuovo tentativo o selettore di modello. - Usa un alias come
sonnetoopusinvece di un ID completo con versione. Gli alias si risolvono in un valore predefinito mantenuto in modo che non diventino obsoleti. Vedi Configurazione del modello. - Se il modello sbagliato continua a tornare nella CLI, un ID obsoleto è impostato da qualche parte. Controlla i posti in cui puoi impostare un modello in ordine di priorità e rimuovi il valore obsoleto.
- Claude Code segnala un accesso claude.ai scaduto come Login scaduto, non come questo errore. Prima della v2.1.206, un accesso scaduto che non poteva più essere aggiornato falliva con ogni modello con questo errore; esegui
/loginse lo vedi su una versione precedente. - Se
ANTHROPIC_BASE_URLpunta a un gateway LLM e ogni modello fallisce in questo modo, verifica che il tuo gateway e il suo upstream accettino i campi della ricerca degli strumenti. Per impostazione predefinita, Claude Code invia i campi degli strumentidefer_loadinge i blocchitool_reference, con l'headeranthropic-betache li abilita. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi conENABLE_TOOL_SEARCH. - Per le distribuzioni di Google Cloud's Agent Platform, vedi Risoluzione dei problemi di Google Cloud's Agent Platform.
Model is not a recognized model id
La stringa che hai passato a un cambio di modello non è una che Claude Code può usare come modello, quindi ha rifiutato il cambio senza inviare una richiesta e la sessione mantiene il suo modello attuale. Puoi ottenere questo errore quando un modello è impostato tramite il metodo Agent SDK setModel(), da un'app che esegue la CLI di Claude Code per te, come l'app Desktop, o quando scegli un modello da un dispositivo connesso tramite Remote Control. Prima della v2.1.200, Claude Code salvava la stringa e falliva alla richiesta successiva con There's an issue with the selected model.
Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?
In questo esempio un'app ha inviato il nome visualizzato Sonnet 5, che il messaggio ripete senza il suo spazio. L'hint finale nomina l'alias o l'ID del modello più vicino. Quando nulla è abbastanza vicino, recita invece Run /model to see available models. In una sessione che l'app Desktop avvia per te, l'hint senza corrispondenza recita Switch to a different model.
Quando cambi tramite l'Agent SDK o un'app sull'API Anthropic, solo una stringa che non può essere un ID modello ottiene questo errore, come un nome visualizzato o una stringa vuota.
Quando scegli un modello da un dispositivo Remote Control, Claude Code controlla la stringa localmente. Qualsiasi stringa che non sia un alias di modello, un modello che Claude Code elenca o che hai configurato, o un ID che inizia con claude- ottiene questo errore, un ID digitato male come claud-sonnet-5 incluso. Prima della v2.1.260, questo controllo non copriva le scelte di Remote Control, quindi una stringa non riconosciuta veniva applicata e falliva alla richiesta successiva.
Cosa fare:
- Esegui
/modelsenza argomenti per aprire il selettore e scegliere dai modelli disponibili per il tuo account, quindi passa l'alias o l'ID mostrato lì - Se hai usato un alias che solo una versione più recente di Claude Code supporta, esegui
claude update, oppure passa l'ID completo del modello. Il server può comunque richiedere una versione minima di Claude Code per quel modello; vedi Claude Code does not support this model. - Un modello salvato prima della v2.1.200 non viene riparato da questo controllo. Se un valore obsoleto continua a tornare, rimuovilo dalle posizioni elencate in Impostazione del modello.
- Su qualsiasi provider diverso dall'API Anthropic, o dietro un gateway o
ANTHROPIC_BASE_URLpersonalizzato, solo una stringa vuota ottiene questo errore. Claude Code può comunque scrivere la riga diagnostica del modello non riconosciuto al momento della richiesta, su ogni provider.
Model not found
Hai cambiato a un modello per nome e Claude Code non ha potuto confermare che esista un modello con quel nome. Quando il nome non è un alias di modello o un'altra ortografia che Claude Code accetta localmente, Claude Code lo verifica con una richiesta API minima, e questo errore è solitamente la risposta del tuo endpoint API. Con /model <name>, un nome che non può essere un ID modello affatto, come uno contenente spazi, ottiene lo stesso messaggio.
Model 'claude-opus-9' not found
Su provider con ID modello specifici del provider, il messaggio può aggiungere un suggerimento Try '...' instead che nomina l'ID del tuo provider per un modello di fallback.
Cosa fare:
- Esegui
/modelsenza argomenti e scegli dai modelli disponibili per il tuo account, oppure usa un alias di modello comesonnet, che si risolve in un valore predefinito mantenuto - Se hai digitato un ID completo, controllalo rispetto al catalogo dei modelli del tuo provider. Un modello appena lanciato può essere disponibile sull'API Anthropic prima che il tuo provider o la tua regione lo offra.
- Nell'Agent SDK,
setModel()fallisce con questo messaggio e la sessione continua a funzionare sul suo modello precedente. Nell'SDK TypeScript, chiamasupportedModels()per elencare i modelli a cui puoi passare. - Prima della v2.1.265,
/modelha anche rifiutato l'ortografia dell'aliasopusplan[1m]con questo errore. Su quelle versioni, aggiorna Claude Code, oppure imposta il modello in impostazioni o con--modelinvece.
Couldn't confirm model with the API
Hai cambiato modello tramite il metodo setModel() dell'Agent SDK o tramite un'app che esegue la CLI di Claude Code per te, come l'app Desktop, e la richiesta che conferma l'ID del modello con il tuo endpoint API non ha ricevuto risposta entro 15 secondi. La sessione mantiene il modello corrente.
Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.
In una sessione che l'app Desktop avvia per te, il messaggio termina a Try again.
Cosa fare:
- Cambia di nuovo al modello
- Se il cambio continua a fallire, controlla che Claude Code possa raggiungere il tuo endpoint API; vedi Errori di rete e connessione
Errore API durante il controllo del modello selezionato
Hai selezionato un modello con /model <name>, oppure un'app connessa alla sessione ha richiesto il cambio. L'API ha rifiutato la richiesta minima che Claude Code invia per verificare il modello, per un motivo che non ha una voce propria, come un rate limit o un errore del server. La sessione mantiene il suo modello attuale, e il messaggio termina dicendo così:
API error: 429 <the server's explanation> · model not changed
Il mezzo del messaggio è lo stato HTTP e la spiegazione propria del server.
Cosa fare:
- Agisci sulla spiegazione del server; per un rate limit o uno stato 5xx, attendi e seleziona di nuovo il modello
- I rifiuti con la loro propria dicitura sono coperti dalle voci circostanti, come Model not found e Model is restricted by your organization's settings
Claude Opus is not available with the Claude Pro plan
Il tuo piano di abbonamento attivo non include il modello che hai selezionato.
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.
In una sessione che l'app Claude Desktop esegue, il messaggio dice di sign out and sign in again invece di nominare i comandi.
Cosa fare:
- Esegui
/modele seleziona un modello che il tuo piano include - Se hai aggiornato il tuo piano di recente e vedi ancora questo, esegui
/logoutquindi/login. Il token memorizzato riflette il tuo piano al momento dell'accesso, quindi l'aggiornamento su claude.ai non ha effetto in una sessione esistente finché non ti autentichi di nuovo. - Vedi claude.com/pricing per quali modelli ogni piano include
Claude Code does not support this model
L'API ha rifiutato la richiesta con un 400 perché la tua versione di Claude Code è al di sotto di un minimo richiesto. O il modello che hai selezionato richiede una versione più recente, che il server controlla per modello, o la politica della tua organizzazione ne richiede una. Il 400 porta il codice di errore claude_code_version_too_old, e il messaggio dice quale minimo si applica.
API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.
La dicitura della politica organizzativa recita:
API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.
La versione che l'API controlla è quella segnalata dal binario di Claude Code che ha effettuato la richiesta.
Cosa fare:
Aggiorna quel binario, quindi avvia una nuova sessione. Da dove proviene il binario decide come, tranne in un ambiente auto-ospitato:
| Il binario che ha effettuato la richiesta | Come aggiornarlo |
|---|---|
| Un Claude Code che hai installato | Esegui claude update |
| L'app Claude desktop | Aggiorna l'app |
| Il binario che l'estensione VS Code raggruppa | Aggiorna l'estensione |
| Il binario che un pacchetto Agent SDK raggruppa | Aggiorna il pacchetto SDK, quindi riavvia la tua applicazione. In un eseguibile a file singolo compilato, ricostruiscilo |
- Se esegui
claude updatesul canale di rilascio stable, non ti porta oltre la release stable più recente, che può essere ancora al di sotto del minimo richiesto. Passa al canale latest, quindi aggiorna di nuovo. Se la tua organizzazione blocca il tuo canale o la tua versione tramite impostazioni gestite, chiedi al tuo amministratore di cambiarlo - Per la dicitura per modello, puoi continuare a lavorare nella sessione attuale passando a un altro modello: esegui
/modelnella CLI, chiamasetModel()sull'oggettoQuerydell'SDK TypeScript in modalità di input in streaming, o chiamaset_model()suClaudeSDKClientdell'SDK Python - Per la dicitura della politica organizzativa, aggiorna prima di continuare
Model is restricted by your organization's settings
L'amministratore della tua organizzazione ha disabilitato questo modello nella console di amministrazione claude.ai, oppure le impostazioni gestite lo escludono tramite un'allowlist availableModels o un elenco deniedModels. L'avviso appare all'avvio quando --model, ANTHROPIC_MODEL, o l'impostazione model ha nominato il modello limitato, e nomina il modello che la sessione usa invece. Se le impostazioni gestite non lasciano alcun modello consentito per la sessione da usare, vedi Le impostazioni gestite bloccano il modello predefinito. L'avviso di sostituzione può anche apparire a metà sessione dopo che un amministratore disabilita il modello su cui una sessione è in esecuzione nella console di amministrazione claude.ai.
Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.
Digitare /model <name> per un modello limitato viene rifiutato e la sessione mantiene il suo modello attuale. Per un modello disabilitato nella console di amministrazione, il rifiuto recita Model '<name>' is restricted by your organization's settings. Run /model to choose a different model. Per un modello che le impostazioni gestite escludono, recita Model '<name>' is not available. Your organization restricts model selection.
Un avviso con prefisso il nome di un agente, di una skill o di un comando significa che la restrizione si è applicata al modello richiesto di quel subagent: il subagent viene eseguito sul modello sostituito e il modello della tua sessione rimane invariato. Prima della v2.1.223, Claude Code mostrava l'avviso solo per i subagent lanciati con lo strumento Agent.
Claude Code tratta un alias di famiglia di modelli, uno di opus, sonnet, haiku, o fable, come una richiesta per quella famiglia piuttosto che per la sua versione più recente. Sull'API Anthropic e su Claude Platform on AWS, un alias di famiglia limitato si risolve nella versione più recente della famiglia che le impostazioni della tua organizzazione consentono, e l'avviso di sostituzione nomina quella versione. Claude Code rifiuta /model <alias> solo quando ogni versione della famiglia è limitata. Prima della v2.1.205, un alias di famiglia veniva sostituito o rifiutato in base alla sua versione più recente sola, anche quando una versione precedente della stessa famiglia era consentita.
Cosa fare:
- Esegui
/modelper scegliere dai modelli che la tua organizzazione consente. I modelli limitati sono nascosti dal selettore. - Se il modello limitato è stato impostato in
--model,ANTHROPIC_MODEL, il campomodeldi un file di impostazioni, o il frontmattermodeldi un subagent, di una skill o di un comando, rimuovi o aggiorna quel valore in modo che l'avviso non si ripeta - Se hai bisogno di accesso al modello limitato, chiedi all'amministratore della tua organizzazione di abilitarlo. Vedi Restrizioni del modello dell'organizzazione.
Can't switch to the default model
Hai selezionato il modello Predefinito, ad esempio selezionando la riga Predefinito nel selettore /model o digitando /model default. Claude Code ha rifiutato il cambio, quindi la sessione mantiene il suo modello attuale.
Can't switch to the default model: your organization's managed settings block it (claude-opus-4-6) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".
La dicitura dopo i due punti nomina ciò che ha bloccato il cambio:
your organization's managed settings block it ... in "deniedModels": un elenco di negazione gestito blocca il modello a cui l'opzione Predefinito si risolveyour organization allows only the models listed in "availableModels": un'allowlistavailableModelsgestita conavailableModelsMatchimpostato su"exact"lascia fuori il modello a cui l'opzione Predefinito si risolveClaude Code couldn't read your organization's managed settings to check which models they allow: le impostazioni gestite non potevano essere lette, e Claude Code rifiuta il cambio piuttosto che applicarlo senza controllo
Cosa fare:
- Per le diciture
deniedModelseavailableModels, esegui/modele seleziona un modello che la tua organizzazione consente per nome - Chiedi al tuo amministratore di aggiornare l'impostazione gestita che il messaggio nomina
- Per la dicitura
couldn't read, riavvia Claude Code; se continua a succedere, chiedi al tuo amministratore di controllare le impostazioni gestite
Se una sessione invece non riesce ad avviarsi con un messaggio Claude Code can't start in queste impostazioni gestite, vedi Le impostazioni gestite bloccano il modello predefinito.
Model switch was blocked by a PreModelSwitch hook
Un hook PreModelSwitch non ha approvato il cambio di modello che tu o un client hai richiesto, quindi la sessione mantiene il suo modello attuale. Quando il cambio è venuto da un host Agent SDK o Remote Control piuttosto che da un comando che hai digitato, il messaggio recita Model switch blocked by a PreModelSwitch hook senza nominare il modello di destinazione.
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 ragione dopo i due punti dice cosa ha rifiutato il cambio:
- Una ragione che un hook ha scritto: un hook PreModelSwitch ha fornito quella ragione quando ha negato il cambio o chiesto conferma. Affronta ciò che chiede, o seleziona un modello che i tuoi hook consentono.
PreModelSwitch hook <name> did not respond before its timeout: un hook che non risponde prima del suo timeout blocca il cambio. Correggi il comando sospeso o aumenta iltimeoutdi quell'hook, quindi cambia di nuovo.confirmation required, and this session cannot ask: un hook ha rispostoasksenza una ragione, e una richiesta di controllo non ha modo di mostrare la richiesta di conferma. Un comando/modelin un'esecuzione-psegnala la stessa condizione con(run /model interactively to confirm)dopo la ragione. Effettua il cambio da una sessione interattiva, o cambia la decisione dell'hook per questo modello.so organization-managed PreModelSwitch hooks could not be checked: Claude Code non ha potuto dire quali hook PreModelSwitch i plugin gestiti della tua organizzazione forniscono, ad esempio perché un plugin gestito non è riuscito a caricarsi. Uno di quegli hook potrebbe bloccare il cambio, quindi Claude Code rifiuta piuttosto che applicare il cambio senza controllo. L'inizio della ragione nomina cosa ha fallito. Claude Code ricontrolla ad ogni tentativo di cambio, quindi un fallimento che da allora si è chiarito smette di bloccare; se continua a fallire, eseguiclaude --debuge cambia di nuovo per catturare i dettagli, quindi correggi il plugin o chiedi al tuo amministratore di correggerlo.a PreModelSwitch hook failed before answeringoPreModelSwitch hooks were cancelled (the control stream closed) before answering: l'esecuzione dell'hook è terminata senza un verdetto, e Claude Code non lo tratta come approvazione. Eseguiclaude --debugper vedere cosa ha fallito, quindi cambia di nuovo.
Prima della v2.1.260, il rifiuto del plugin gestito recitava plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log. Claude Code ha ritentato il caricamento del plugin una volta e poi ha rifiutato i cambi successivi nella sessione, anche quando la tua organizzazione non ha gestito alcun plugin. Riavvia la sessione per eseguire di nuovo il caricamento del plugin su quelle versioni.
Couldn't save it as your default
Hai selezionato un modello da salvare come predefinito, ad esempio con /model <name> o Enter nel selettore /model, e Claude Code non ha potuto scrivere la selezione nel file delle impostazioni utente, ~/.claude/settings.json. Il cambio stesso è stato applicato, quindi la sessione attuale viene eseguita sul modello che hai selezionato, ma il tuo predefinito rimane invariato e la sessione successiva inizia sul valore precedente.
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 ragione dopo il percorso del file dice cosa ha fallito:
can't be written (<code>): la scrittura ha fallito con il codice di errore del sistema operativo tra parentesi, comeEROFSquando il file, o il file a cui si collega, si trova su un filesystem che rifiuta le scritture. Rendi il file scrivibile e cambia di nuovo. Se un altro strumento genera il file, imposta la chiavemodelin quello strumento; vedi Una modifica che hai fatto in Claude Code viene persa nelle nuove sessioni.isn't valid JSON: il file su disco non si analizza, e Claude Code lo lascia intatto piuttosto che sovrascrivere il contenuto che non può leggere di nuovo. Correggi l'errore di sintassi, quindi cambia di nuovo; vedi Correggi un file di impostazioni rotto.
Un avviso che termina couldn't confirm it was saved as your default (~/.claude/settings.json is still being written) significa che la scrittura non era terminata dopo tre secondi. Continua in background, quindi il predefinito potrebbe comunque essere salvato; controlla quale modello la tua sessione successiva inizia, oppure esegui /model <name> di nuovo.
Prima della v2.1.265, l'avviso diceva che il modello era saved as your default for new sessions anche quando la scrittura ha fallito.
L'advisor è meno capace del modello principale attuale
Il tuo modello advisor si colloca al di sotto del modello principale della tua sessione, quindi Claude Code mantiene la selezione ma non collega l'advisor alle richieste del modello principale.
Advisor set to Opus 4.8
Note: Opus 4.8 is less capable than the current main model (Sonnet 5.5), so the advisor will not activate. Choose a more capable advisor, or switch to a smaller main model.
Altri messaggi segnalano la stessa condizione:
- In una sessione interattiva, una notifica recita
Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor. - Quando avvii con il flag
--advisorin modalità non interattiva, e l'esecuzione non è una sessione in background, un avviso viene scritto su stderr e l'esecuzione si avvia comunque. Dice"<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.Una sessione interattiva scrive quell'avviso solo nel log di debug.
Cosa fare:
- Scegli un advisor di rango più alto o un modello principale di rango più basso. Scegli un modello advisor mostra la classifica ed elenca gli advisor accettati per ogni modello principale.
- Lascia impostato l'advisor se vuoi che i subagent il cui modello può assistere continuino a usarlo
Prima della v2.1.287, Claude Code classificava diversamente diverse combinazioni. Mostrava questa nota per un advisor Sonnet 5.5 con un modello principale Opus 4.7 o Opus 4.8, una combinazione che ora accetta. Collegava anche alcuni advisor che ora producono questa nota, come un advisor Opus 4.8 con un modello principale Sonnet 5.5.
thinking.type.enabled is not supported for this model
La tua versione di Claude Code è più vecchia del minimo per il modello selezionato. La CLI ha inviato una configurazione di ragionamento che il modello non accetta più.
API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.
Cosa fare:
- Esegui
claude updatee riavvia Claude Code. Opus 4.7 ha bisogno della v2.1.111 o successiva. Opus 4.8 ha bisogno della v2.1.154 o successiva. Sonnet 5 ha bisogno della v2.1.197 o successiva. Opus 5 ha bisogno della v2.1.219 o successiva. Opus 5.5 ha bisogno della v2.1.280 o successiva. Sonnet 5.5 ha bisogno della v2.1.284 o successiva - Sul canale di rilascio stable, l'aggiornamento non ti porta oltre la release stable più recente, che può essere ancora più vecchia di queste versioni. Passa al canale latest, quindi aggiorna
- Se non puoi aggiornare, esegui
/modele seleziona Opus 4.6 o Sonnet 4.6 - Se colpisci questo nell'Agent SDK, aggiorna il pacchetto SDK. Opus 4.8 ha bisogno di TypeScript SDK v0.3.154 o successiva e Python SDK v0.2.88 o successiva. Sonnet 5 ha bisogno di TypeScript SDK v0.3.197 o successiva. Opus 5 ha bisogno di TypeScript SDK v0.3.219 o successiva. Opus 5.5 ha bisogno di TypeScript SDK v0.3.280 o successiva. Sonnet 5.5 ha bisogno di TypeScript SDK v0.3.284 o successiva
Effort isn't available with thinking turned off
Hai disattivato il ragionamento esteso e hai eseguito a un livello di sforzo superiore a high. Il modello non accetta quella combinazione, quindi l'API ha rifiutato la richiesta.
API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)
L'hint dopo il · varia in base alla sessione: in una sessione non interattiva recita use --effort high (or the effortLevel setting), e in una sessione che l'app Claude Desktop esegue recita you can lower effort to High.
Cosa fare:
- Abbassa il livello di sforzo a
higho inferiore. - Riattiva il ragionamento, ad esempio annullando
MAX_THINKING_TOKENSo rimuovendo"alwaysThinkingEnabled": falsedalle tue impostazioni.
Prima della v2.1.242, Claude Code mostrava il messaggio proprio dell'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. Prima della v2.1.251, Claude Code inviava la richiesta al livello di sforzo che hai impostato, quindi Opus 5 rifiutava ogni richiesta superiore a high con il ragionamento disattivato. Claude Code ora invia invece lo sforzo high ai modelli che sa rifiutano la combinazione, come Opus 5.
Il budget di ragionamento supera il limite di output
Il budget di ragionamento esteso configurato supera la lunghezza massima della risposta, quindi non c'è spazio rimasto per la risposta effettiva.
API Error: 400 ... max_tokens must be greater than thinking.budget_tokens
Cosa fare:
- Aumenta
CLAUDE_CODE_MAX_OUTPUT_TOKENSal di sopra del budget di ragionamento - Vedi Ragionamento esteso per come il budget interagisce con la lunghezza dell'output
Response exceeded the output token maximum
La risposta di Claude ha raggiunto il numero massimo di token di output consentito dalla richiesta ed è stata troncata in quel punto:
API Error: Claude's response exceeded the ... output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.
API Error: Claude's response exceeded the 64000 output token maximum for a request sent without streaming. The CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable cannot raise this limit.
La forma che nomina a request sent without streaming significa che una richiesta in streaming è fallita e Claude Code l'ha inviata di nuovo senza streaming, il che limita la risposta a 64.000 token di output. Prima della v2.1.299, una risposta troncata su una richiesta inviata di nuovo in questo modo terminava il turno senza questo messaggio, come se la risposta fosse completa.
Cosa fare:
- Se Claude ha scritto del testo prima che la risposta venisse troncata, rispondi
continuein una sessione interattiva per chiedere il resto. Quel testo rimane nella conversazione. - Se il messaggio dice di impostare
CLAUDE_CODE_MAX_OUTPUT_TOKENS, consultaCLAUDE_CODE_MAX_OUTPUT_TOKENSper sapere come viene limitato il valore e Impostare le variabili d'ambiente per sapere dove impostarlo - Per mantenere ogni risposta sotto il limite, chiedi a Claude l'output in parti più piccole, ad esempio un file o una sezione per risposta
Mancata corrispondenza dei blocchi di uso degli strumenti o di ragionamento
La cronologia della conversazione ha raggiunto l'API in uno stato incoerente.
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
Tutte le varianti significano la stessa cosa: la sequenza di blocchi tool_use, tool_result e thinking nella cronologia non corrisponde più a ciò che l'API si aspetta.
Cosa fare:
- Se stai usando Opus 4.7 o Opus 4.8, esegui prima
claude update. Le versioni precedenti alla v2.1.156 possono attivare questo errore durante il normale uso degli strumenti, e/rewindnon lo cancella. - Esegui
/rewind, o premi Esc due volte, per tornare indietro a un checkpoint prima del turno corrotto e continua da lì. Vedi Checkpointing per come i checkpoint vengono creati e ripristinati.
Invalid data in redacted_thinking block
L'API ha rifiutato la richiesta con un 400 perché non poteva accettare un blocco redacted_thinking che un turno precedente nella cronologia della conversazione porta.
API Error: 400 ... Invalid `data` in `redacted_thinking` block
Claude Code lascia il ragionamento precedente della conversazione fuori dalla richiesta e ritenta una volta, quindi la sessione continua senza mostrare l'errore. Prima della v2.1.282, Claude Code manteneva il blocco rifiutato, e ogni turno successivo falliva con lo stesso errore.
Cosa fare:
- Se sei sulla v2.1.281 o precedente e ogni turno fallisce con questo errore, esegui
claude updatee riprendi la sessione - Se l'errore persiste, esegui
/clearper avviare una conversazione che non porta il blocco
Unsupported tool content removed
Quando Claude Code si connette direttamente all'API Anthropic e carica o visualizza un'anteprima di una sessione salvata, rimuove il contenuto dello strumento che l'API Anthropic non accetta e lascia questa riga dove il contenuto rimosso si trovava tra due blocchi di ragionamento:
[Unsupported tool content removed]
Tale contenuto raggiunge un file di sessione quando qualcosa di diverso dall'API Anthropic ha risposto nel formato dell'API, tipicamente un proxy di terze parti impostato tramite ANTHROPIC_BASE_URL che traduce le chiamate agli strumenti di un altro provider. Claude Code lo rimuove solo quando la sessione si connette direttamente all'API Anthropic, e carica la cronologia salvata come è quando la sessione viene eseguita tramite un proxy o su un altro provider. Prima della v2.1.246, Claude Code inviava l'uso dello strumento e il suo risultato di nuovo all'API, e ogni turno della sessione ripresa falliva con un errore 400 come messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ....
Cosa fare:
- Nessuno necessario quando vedi la riga segnaposto. La sessione continua senza il contenuto rimosso.
- Se ogni turno di una sessione ripresa fallisce invece con l'errore 400, esegui
claude updatee riprendi la sessione di nuovo. Le versioni precedenti alla v2.1.246 non rimuovono il contenuto.
role 'system' must precede an 'assistant' message
L'API ha rifiutato la richiesta con un 400 perché un messaggio di sistema si trova in una posizione nella conversazione che non accetta:
API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ...
Claude Code invia parte del suo testo di promemoria e allegato come messaggi di sistema all'interno della conversazione. Quando l'API rifiuta la posizione di uno, Claude Code ritenta la richiesta una volta con quel testo inviato come messaggi utente ordinari. Le diciture di posizionamento fratello dell'API, come use the top-level 'system' parameter for the initial system prompt, ottengono lo stesso recupero.
Quando l'errore appare, il messaggio di sistema rifiutato non è uno che Claude Code può rimuovere. Questo di solito significa che un proxy o gateway LLM tra Claude Code e l'API ha aggiunto un messaggio di sistema proprio.
Cosa fare:
- Se l'errore si ripete ad ogni turno dietro un proxy o gateway configurato tramite
ANTHROPIC_BASE_URL, connettiti senza il proxy per confermare la fonte, e segnala l'errore a chi lo gestisce - Esegui
/clearper avviare una conversazione fresca. Se l'errore ritorna anche lì, la causa è sul percorso della richiesta, non nella conversazione salvata.
Prima della v2.1.280, Claude Code non riconosceva questa dicitura, quindi l'errore appariva anche quando il messaggio di sistema rifiutato era uno che Claude Code stesso inviava, e ogni turno successivo della conversazione falliva allo stesso modo.
Invalid encrypted_content in search_result block
L'API ha rifiutato la richiesta con un 400 perché la cronologia della conversazione contiene contenuto di ricerca web ospitato che non può decrittare. La dicitura nomina il campo che non può leggere:
API Error: 400 ... Invalid `encrypted_content` in `search_result` block
API Error: 400 ... Invalid `encrypted_index` in `text` block
API Error: 400 ... Failed to decrypt web search result content
API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block
I risultati dello strumento di ricerca web ospitato dell'API portano campi crittografati che solo l'API può leggere. La dicitura encrypted_stdout nomina l'output di un programma di esecuzione del codice ospitato che ha letto tali risultati, che l'API crittografa anche. L'API rifiuta una richiesta che riproduce il contenuto che non può decrittare, come il contenuto prodotto per un'organizzazione diversa.
Lo strumento WebSearch proprio di Claude Code registra i risultati della ricerca come testo semplice, quindi questi blocchi di solito raggiungono una conversazione tramite un proxy o gateway LLM che ha eseguito la ricerca web ospitata stesso.
Per le tre diciture di ricerca web, Claude Code lascia le chiamate di ricerca, i risultati e le citazioni fuori da ciò che invia e ritenta la richiesta una volta, quindi la sessione continua senza mostrare l'errore. La dicitura encrypted_stdout non ha tale recupero, quindi quel messaggio ti raggiunge comunque. Prima della v2.1.282, Claude Code manteneva anche i blocchi di ricerca web rifiutati, e ogni turno successivo e /compact falliva allo stesso modo.
Cosa fare:
- Se sei sulla v2.1.281 o precedente e ogni turno fallisce con una delle diciture di ricerca web, esegui
claude updatee riprendi la sessione - Se l'errore persiste, o il messaggio nomina
encrypted_stdout, esegui/rewindper tornare indietro a un checkpoint prima del turno che ha aggiunto il contenuto, oppure esegui/clearper avviare una conversazione che non lo porta - Se esegui Claude Code dietro un proxy o gateway, segnala l'errore a chi lo gestisce
Rifiuto della politica di utilizzo
L'API ha rifiutato di rispondere perché il contenuto nella conversazione ha attivato un controllo della Politica di utilizzo.
Se il messaggio include la riga Details: `[reasoning_extraction]`, vedi Le misure di protezione hanno segnalato una richiesta del ragionamento di Claude.
Il messaggio include un ID richiesta e un ID messaggio che puoi citare al supporto se ritieni che il rifiuto sia errato.
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
Il messaggio nomina il modello che ha rifiutato, o Claude quando nessun modello è registrato.
Il controllo valuta l'intera conversazione, non solo il tuo ultimo prompt, quindi inviare un nuovo messaggio nella stessa sessione di solito ri-attiva lo stesso rifiuto. Lo stesso si applica dopo l'uscita e la riapertura della sessione con --continue o --resume, poiché la trascrizione su disco contiene ancora il contenuto che attiva. Su Amazon Bedrock, Google Cloud's Agent Platform, e Microsoft Foundry, questo messaggio copre anche le richieste che le misure di sicurezza del modello hanno contrassegnato come un argomento di cibersicurezza. Vedi Le misure di sicurezza hanno contrassegnato un argomento di cibersicurezza.
Prima della v2.1.219, il messaggio recitava 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.
Cosa fare:
- Premi Esc due volte o esegui
/rewindper tornare indietro a un checkpoint prima del turno che ha attivato il rifiuto, quindi riformula o prendi un approccio diverso. Vedi Checkpointing. - Se non riesci a identificare quale turno l'ha causato, esegui
/clearper avviare una conversazione fresca nello stesso progetto. La tua conversazione precedente è preservata su disco e rimane disponibile in/resume. - In modalità non interattiva (
-p), dove il rewind non è disponibile, ritenta con un prompt riformulato in una nuova sessione senza--continue. I controlli della politica variano in base al modello, quindi passare a un modello diverso con--modelpuò anche risolvere il rifiuto in alcuni casi.
Le misure di sicurezza hanno contrassegnato un argomento di cibersicurezza
Le misure di sicurezza del modello hanno contrassegnato il contenuto nella conversazione come un argomento di cibersicurezza. Il messaggio nomina il modello che ha contrassegnato la richiesta:
API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude
Se il messaggio include la riga Details: `[reasoning_extraction]`, vedi Le misure di protezione hanno segnalato una richiesta del ragionamento di Claude.
Questo messaggio si collega al Cyber Verification Program, che concede l'accesso per il lavoro di cibersicurezza legittimo. I modelli con fallback automatico del modello mostrano un messaggio diverso, senza questo link; su Opus 5.5 e Sonnet 5.5 si apre con <model>'s safeguards flagged this session. Quella sezione spiega anche quando Claude Code cambia invece modello.
Su Amazon Bedrock, Google Cloud's Agent Platform, e Microsoft Foundry, un flag di cibersicurezza produce invece il messaggio di rifiuto della politica di utilizzo.
Cosa fare:
- Se il tuo lavoro richiede questo contenuto, richiedi l'accesso tramite il Cyber Verification Program
- Se la tua richiesta non riguardava un argomento di cibersicurezza, esegui
/feedbackper segnalare il falso positivo - Per continuare a lavorare nella stessa sessione, premi Esc due volte o esegui
/rewindper tornare indietro a un checkpoint prima del turno che ha attivato il flag, quindi prendi un approccio diverso. Vedi Checkpointing.
Se il messaggio che vedi è formulato invece come uno di questi, si tratta della stessa segnalazione su una versione precedente di Claude Code:
- Dalla v2.1.219 alla v2.1.296, il messaggio poteva includere anche
Apply to the Cyber Verification Program to reduce these interruptions.prima della frase conclusiva - Dalla v2.1.203 alla v2.1.218, il messaggio era
<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:seguito dallo stesso link al centro assistenza. Nelle sessioni interattive, proseguiva conIf you were not engaging in a cybersecurity topic, please send feedback via /feedback. - Prima della v2.1.203, il messaggio era
<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:seguito da un link a un modulo di esenzione
Le misure di protezione hanno segnalato una richiesta del ragionamento di Claude
L'API ha rifiutato la richiesta perché le misure di protezione l'hanno segnalata come una richiesta al modello di riprodurre il suo ragionamento interno nella risposta. L'API chiama questa categoria di rifiuto reasoning_extraction, e il messaggio di rifiuto include questa riga:
Details: `[reasoning_extraction]`
Prima della v2.1.234, i messaggi di rifiuto non includevano la riga Details.
Cosa fare:
- Rimuovi o riformula qualsiasi istruzione che chieda a Claude di scrivere il suo ragionamento parola per parola o in un formato fisso, come una sezione
<thinking>, una sezione scratchpad o un camporeasoningnell'output JSON. L'istruzione può trovarsi nel tuo prompt o in una personalizzazione che Claude Code carica insieme ad esso, come CLAUDE.md, una skill, il prompt di un subagent, uno stile di output o la descrizione di uno strumento MCP. - Per verificare se la causa è una personalizzazione, esegui
claude --safe-modenel tuo terminale per avviare una sessione con le personalizzazioni disattivate, quindi invia lo stesso prompt - Dopo aver modificato una personalizzazione, avvia una nuova sessione
- Per riformulare un prompt che hai già inviato, vedi Riavvolgi e riassumi
- Puoi comunque chiedere a Claude di spiegare la sua risposta. Chiedi una breve spiegazione, le prove alla base di un risultato o un riepilogo delle azioni che ha eseguito. Per leggere i riepiloghi del ragionamento di Claude, vedi
showThinkingSummaries. - Per altri esempi, e per cosa fare se una richiesta riformulata viene comunque rifiutata, vedi Keep reasoning in thinking blocks
Output blocked by content filtering policy
Il filtro dei contenuti di output dell'API ha interrotto la risposta che Claude stava generando. Il testo del messaggio proviene dall'API:
API Error: Output blocked by content filtering policy
Cosa fare:
- Riformula il tuo ultimo messaggio o adotta un approccio diverso
- Per tornare indietro a un checkpoint prima del turno che ha attivato il blocco, premi Esc due volte o esegui
/rewind. Vedi Checkpointing
Errori della riga di comando
Questi errori provengono dalla riga di comando claude e dai suoi sottocomandi, da un nome di comando che invii al prompt e da comandi come /security-review che raccolgono il contesto eseguendo comandi shell prima che venga eseguito il loro prompt. Provengono anche da /tui, che riavvia la CLI.
Conflitto tra --bg e --print
Questo messaggio richiede Claude Code v2.1.198 o versioni successive. Hai combinato --bg con -p o --print nella stessa invocazione di claude. --bg avvia una sessione in background a cui ti colleghi in seguito con claude agents, mentre --print viene eseguito in modalità non interattiva e non avvia mai la sessione interattiva a cui si collega claude agents. Prima della v2.1.198 questa combinazione creava silenziosamente un job in background a cui non era mai possibile collegarsi.
--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.
Cosa fare:
- Rimuovi
-po--print.--bgaccetta il prompt come argomento posizionale, quindiclaude --bg "<task>"è il comando completo. Consulta Inviare nuovi agenti dalla tua shell. - Per eseguire il prompt in modo non interattivo e stampare il risultato invece di creare una sessione in background, rimuovi
--bged eseguiclaude -p "<task>"
Couldn't tell whether --bg is a flag or text
Hai eseguito claude con --bg o --background in una posizione in cui Claude Code non riusciva a capire se lo intendevi come flag per il background o come testo. Il comando non ha avviato nulla, ha stampato questa riga ed è uscito con codice 1:
Couldn't tell whether --bg is a flag or text here, so nothing was started. To start a background session put it first: claude --bg <prompt>
Se hai digitato --background, la riga nomina invece --background.
Cosa fare:
- Per avviare una sessione in background, esegui di nuovo il comando nella tua shell mettendo il flag per primo:
claude --bg --name nightly-audit "<task>"
Conflitto tra un flag del prompt di sistema e la sua forma con file
Hai passato --append-subagent-system-prompt insieme a --append-subagent-system-prompt-file in un'unica invocazione di claude, quindi claude esce con codice 1 invece di avviare la sessione:
Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.
Prima della v2.1.283, claude usciva allo stesso modo quando passavi --system-prompt con --system-prompt-file, oppure --append-system-prompt con --append-system-prompt-file, perché queste coppie entravano in conflitto invece di combinarsi. In quelle versioni il messaggio nomina la coppia che hai combinato.
Cosa fare:
- Mantieni una sola forma del flag ed elimina l'altra. Per combinare un file di prompt fisso con un testo specifico per ogni esecuzione, unisci il testo al file prima dell'avvio invece di passare entrambi i flag
Invalid --agents configuration
Il valore che hai passato a --agents non è valido, quindi claude esce con codice 1 invece di avviare la sessione. Quando passi --safe-mode o imposti CLAUDE_CODE_SAFE_MODE, Claude Code ignora completamente --agents. Con --resume o --continue, un valore JSON inline non viene controllato e la sessione si avvia; un valore letto da un file viene controllato a ogni avvio. Prima della v2.1.242, Claude Code avviava comunque la sessione.
Error: Invalid --agents configuration:
<what failed>
Ciò che segue la prima riga dipende da come il valore non è risultato valido. Claude Code esegue questi controlli in ordine e si ferma al primo che fallisce. Se il tuo valore ha due tipi di problemi, vedi il secondo solo dopo aver corretto il primo:
- Quando il valore inizia con
{ma non viene analizzato come JSON, oppure il contenuto di un file--agentsnon viene analizzato, Claude Code stampa una rigainvalid JSON:che riporta il messaggio del parser JSON - Quando viene analizzato ma una definizione di agente non corrisponde allo schema per i subagent definiti dalla CLI, Claude Code stampa una riga per ogni problema
- Quando il nome di un agente inizia con
-, Claude Code stampa<name>: agent names must not start with '-'
Quando ci sono più di 20 righe di problemi, Claude Code stampa le prime 20 e sostituisce le restanti con …and N more.
Con --print, --agents accetta anche il percorso di un file JSON al posto dell'oggetto inline. Prima della v2.1.281, --agents accettava solo JSON inline e trattava un percorso di file come JSON non valido. La forma con file ha rifiuti propri, stampati al posto di questo messaggio, tra cui questi:
Error: --agents takes a JSON object, or a file path only with --print (-p): Claude Code ha letto il valore come percorso di file in una sessione interattiva. Passa le definizioni come JSON inline, oppure aggiungi-pper leggerle da un file.Error: --agents file not found: <path>: non esiste alcun file in quel percorso. Un valore che non inizia con{e non è JSON valido viene letto come percorso, quindi anche un JSON inline alterato dalla tua shell può fallire in questo modo. Controlla il percorso o le virgolette ed esegui di nuovo il comando.
Cosa fare:
- Correggi ogni problema elencato nel messaggio, quindi esegui di nuovo il comando. Consulta i campi accettati da un subagent definito dalla CLI.
Cloud sessions cannot be created from a --restricted session
Quando avvii una sessione con --restricted, Claude Code si rifiuta di creare sessioni cloud a partire da essa, perché la nuova sessione verrebbe eseguita al di fuori del processo con restrizioni e non applicherebbe la modalità con restrizioni. Claude Code rifiuta sul client, prima di contattare il server, quindi non viene creata alcuna sessione cloud:
Cloud sessions cannot be created from a --restricted session: they would not enforce it.
Cosa fare:
- Esegui l'attività localmente nella sessione con restrizioni
- Se controlli il modo in cui è stata avviata la sessione, avvia una nuova sessione
claudesenza--restrictede crea la sessione cloud da lì
Prima della v2.1.248, Claude Code non aveva il flag --restricted; le versioni precedenti rifiutano il flag stesso con un errore di opzione sconosciuta.
Cloud sessions are disabled by your organization's policy
La policy allow_remote_sessions della tua organizzazione è disattivata, quindi le sessioni cloud e i comandi che le usano non sono disponibili:
Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.
Il messaggio compare quando crei una sessione cloud dal terminale e quando invii un comando che richiede le sessioni cloud, come /teleport, /remote-env o /web-setup. Prima della v2.1.268, l'invio di uno di questi comandi restituiva invece Unknown command.
Se il messaggio invece nomina una credenziale usata da questa sessione e termina con Cloud sessions use your claude.ai login., consulta Cloud sessions use your claude.ai login. Se Claude Code non è riuscito affatto a caricare la policy della tua organizzazione, vedi invece un messaggio diverso.
Cosa fare:
- Chiedi a un Owner della tua organizzazione di abilitare le sessioni cloud nelle impostazioni di amministrazione di Claude Code all'indirizzo claude.ai/admin-settings/claude-code
Cloud sessions use your claude.ai login
Quando il rifiuto della policy nomina una credenziale usata da questa sessione e termina con questa frase, Claude Code ha controllato la policy sulle sessioni cloud dell'organizzazione che ha emesso quella credenziale. Quell'organizzazione può essere diversa da quella a cui appartiene il tuo accesso a claude.ai:
Cloud sessions are disabled by your organization's policy. This session is using ANTHROPIC_API_KEY, so Claude Code checked the policy for the organization that key belongs to. Cloud sessions use your claude.ai login.
L'ultima frase significa che le sessioni cloud vengono eseguite con il tuo accesso a claude.ai anziché con quella credenziale. Questa forma compare quando avvii, riprendi o invii un messaggio a una sessione cloud dalla tua shell, ad esempio con --cloud o --teleport. Prima della v2.1.296, anche in questo caso Claude Code stampava la forma che ti dice di contattare l'amministratore della tua organizzazione.
Couldn't verify your organization's policy for cloud sessions
Questi messaggi indicano che Claude Code non è riuscito a caricare la policy della tua organizzazione, che controlla prima di creare, riprendere o inviare un messaggio a una sessione cloud. Finché la richiesta della policy non è terminata, il messaggio è:
Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.
All'interno di una sessione, anche un comando che richiede le sessioni cloud, come /teleport o /web-setup, restituisce questo messaggio. Lo fa anche nei casi in cui la tua shell stamperebbe una forma Cloud sessions aren't available:, e la sua seconda frase recita Check your network connection, then restart Claude Code and try again.
Una volta che la richiesta della policy è fallita, il messaggio indica cosa è fallito. Questo vale quando avvii, riprendi o invii un messaggio a una sessione cloud dalla tua shell con un flag come --cloud o --teleport. Senza alcun percorso verso l'API, recita:
Cloud sessions aren't available: couldn't reach api.anthropic.com to load your organization's policy. Check your network or proxy.
Altri errori seguono la stessa apertura con la loro causa specifica, ad esempio un proxy che ha rifiutato la richiesta con HTTP 403, un errore del server o credenziali che l'API non ha accettato. Quando l'API non ha accettato una credenziale che questa sessione usa al posto del tuo accesso a claude.ai, come una variabile d'ambiente ANTHROPIC_API_KEY, il messaggio può anche nominarla e dirti di rimuoverla:
Cloud sessions aren't available: api.anthropic.com didn't accept this session's credentials when Claude Code asked for your organization's policy. Cloud sessions use your claude.ai login. ANTHROPIC_API_KEY is set, so this session is using API-key auth — unset it (or run in a shell without it) to use cloud sessions.
Prima della v2.1.296, anche questi errori stampavano il messaggio Couldn't verify.
Cosa fare:
- Per il messaggio
Couldn't verify, controlla la tua connessione di rete e riprova. All'interno di una sessione, riavvia prima Claude Code - Per un messaggio
Cloud sessions aren't available:, fai ciò che richiede la sua causa, ad esempio controllare il tuo proxy o rimuovere la credenziale indicata, quindi esegui di nuovo il comando
Nulla è stato messo in stash perché una cartella ha sostituito un file tracciato
Questo messaggio indica che una cartella nel tuo checkout si trova ora dove prima c'era un file o un link tracciato da git. Compare dopo che scegli l'opzione di stash mentre porti una sessione cloud nel tuo terminale, ad esempio con claude --teleport o /teleport. Mettere in stash quello stato potrebbe eliminare i file all'interno della cartella, quindi Claude Code rifiuta lo stash e lascia invariati il checkout e l'indice:
Error: Nothing was stashed: "f" is now a folder in place of a tracked file or link, and stashing could delete what's in it for good. Commit the change or move the folder somewhere else, then try again.
Cosa fare:
- Esegui il commit della modifica o sposta la cartella altrove, come indica il messaggio, quindi esegui di nuovo il teleport
Il valore di --json-schema non è un JSON Schema valido
Lo schema che hai passato a --json-schema in modalità non interattiva non ha superato la compilazione JSON Schema, quindi claude esce con codice 1 invece di eseguire il prompt. Prima della v2.1.205, uno schema non valido produceva un output non strutturato senza alcun errore, e qualsiasi schema che usava la parola chiave format veniva considerato non valido.
Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values
Il testo dopo i secondi due punti è la diagnostica del validatore e nomina la parola chiave o la posizione che non ha superato il controllo. Gli schemi che usano la parola chiave format, come "format": "email", sono validi: Claude Code accetta format come annotazione e non la applica.
Claude Code esegue due controlli prima della compilazione dello schema: rifiuta un valore che non è JSON analizzabile con Error: --json-schema is not valid JSON, e un JSON valido che non è un oggetto con Error: --json-schema must be a JSON object.
Cosa fare:
- Correggi la parte dello schema indicata dalla diagnostica, quindi esegui di nuovo il comando
- Consulta Ottenere output strutturato per uno schema e un comando funzionanti
Settings file exceeds the 2MiB limit
Il file che hai passato a --settings è più grande di 2 MiB, quindi claude esce con codice 1 all'avvio invece di caricarlo. Prima della v2.1.214, Claude Code leggeva il file senza alcun controllo sulle dimensioni, e un file di diversi gigabyte o un file di dispositivo come /dev/zero faceva crescere la memoria senza limiti.
Error: Settings file exceeds the 2MiB limit: /path/to/settings.json
Claude Code rifiuta allo stesso modo un percorso --settings che non è un file regolare: un dispositivo, una FIFO o un socket riporta Error: Cannot use settings file (Not a regular file (device, FIFO, or socket)) seguito dal percorso, e una directory riporta un motivo EISDIR.
Cosa fare:
- Fai puntare
--settingsa un normale file di impostazioni JSON inferiore a 2 MiB. Consulta Impostazioni per il formato.
Configuration error in ~/.claude.json
Claude Code non è riuscito ad analizzare ~/.claude.json, il file che contiene i dettagli del tuo account, i server MCP e lo stato di ogni progetto. Un avvio non interattivo come claude -p esce con codice 1.
Quando Claude Code trova un backup, l'output lo indica e stampa una riga cp che lo ricopia al suo posto:
Claude configuration file at /home/user/.claude.json is corrupted: <JSON parser's message>
The corrupted file has been backed up to: /home/user/.claude/backups/.claude.json.corrupted.1793664000000
A backup file exists at: /home/user/.claude/backups/.claude.json.backup.1793660400000
You can manually restore it by running: cp -f "/home/user/.claude/backups/.claude.json.backup.1793660400000" "/home/user/.claude.json"
Configuration error in /home/user/.claude.json: <JSON parser's message>
Cosa fare:
- L'output contiene una riga
cp: esegui quella riga nel terminale. Su Windows, eseguila in PowerShell. - L'output non contiene una riga
cp, oppure l'errore si ripresenta dopo averla eseguita: se~/.claude.jsoncontiene ancora la tua configurazione, correggi il suo JSON. Se non ci riesci, copia sopra di esso un altro file.claude.json.backup.<timestamp>da~/.claude/backups/, se ce n'è uno, oppure rinominalo. Senza alcun file in~/.claude.json, Claude Code si avvia con le impostazioni predefinite e senza nulla di ciò che il file conteneva. ~/.claude.jsonnon contiene più la tua configurazione: trova un file.claude.json.corrupted.<timestamp>che la contenga ancora, in~/.claude/backups/o nella tua directory home. Correggi il suo JSON, poi copialo sopra~/.claude.json. Se non riesci a trovarne o correggerne uno, prova gli stessi passaggi con un file.claude.json.backup.<timestamp>che contenga la tua configurazione. Se nessuno la contiene, rinomina~/.claude.jsone aggiungi di nuovo i tuoi server MCP conclaude mcp add.
Claude configuration file was empty and no backup holds anything
Questo messaggio all'avvio indica che il file che nomina era vuoto e che nessuna delle copie .backup del file contiene qualcosa. Claude Code si è avviato con i valori predefiniti per ciò che quel file contiene. I tuoi file settings.json e .mcp.json sono file separati.
Claude configuration file at /home/user/.claude.json was empty and no backup holds anything: starting with defaults.
Cosa fare:
- Configura di nuovo ciò che avevi impostato in quel file. Ad esempio, aggiungi i tuoi server MCP con ambito
userelocalusandoclaude mcp adddal terminale. - Accedi di nuovo se Claude Code te lo chiede
Prima della v2.1.318, Claude Code segnalava un file vuoto senza backup come danneggiato.
The current directory no longer exists
Hai avviato claude da una directory che è stata eliminata o spostata dopo che la tua shell vi è entrata, ad esempio un worktree o una directory temporanea rimossa da un'altra shell. Claude Code non riesce a leggere la sua directory di lavoro, quindi esce con codice 1 prima di avviare la sessione, sia in modalità interattiva sia in modalità non interattiva. Prima della v2.1.239, Claude Code andava in crash mostrando su stderr il codice sorgente minificato del bundle e uno stack ENOENT ... uv_cwd grezzo invece di questo messaggio.
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 causa e la soluzione sono le stesse per entrambe le forme.
Quando Claude Code non riesce a leggere la directory di lavoro per un motivo diverso, come una modifica dei permessi, il messaggio nomina invece il codice di errore: Can't read the current directory (EACCES). Start Claude Code from a different directory.
Su macOS, EPERM per una directory in ~/Desktop, ~/Documents, ~/Downloads o iCloud Drive di solito significa che macOS sta bloccando l'accesso della tua app terminale a quella cartella. Gli altri comandi che leggono quella cartella falliscono allo stesso modo: ls lì riporta Operation not permitted, anche con sudo.
Cosa fare:
- Spostati in una directory esistente, come la tua directory home o la directory del progetto, quindi esegui di nuovo
claude - Se la directory è stata ricreata nello stesso percorso, la tua shell mantiene ancora quella eliminata. Esegui
cd "$PWD"oppure esci e rientra nella directory, quindi esegui di nuovoclaude - Per
EPERMsu macOS, chiudi la tua app terminale con Cmd+Q, riaprila, torna a quella cartella ed eseguiclaude. Selsin quella cartella continua a fallire, apri Impostazioni di Sistema > Privacy e sicurezza > File e cartelle, attiva la cartella per la tua app terminale, quindi riapri il terminale
Directory temporanea rifiutata o impossibile da creare
Su macOS e Linux, Claude Code crea all'avvio una directory temporanea privata, claude-<uid>, nella directory temporanea di sistema o nella directory indicata dall'override CLAUDE_CODE_TMPDIR. Quando la directory non può essere creata, o una voce già presente in quel percorso non supera i controlli di sicurezza, Claude Code stampa l'errore su stderr ed esce con codice 1 anziché avviare la sessione:
Claude Code's temporary directory /tmp/claude-501 could not be created: the volume holding /tmp is full (ENOSPC). Free space on that volume, or set CLAUDE_CODE_TMPDIR to a directory on another one, then try again.
Temp directory /tmp/claude-501 is not a directory (may be an attacker-planted symlink). Refusing to use it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.
Temp directory /tmp/claude-501 is owned by uid 502, expected 501. Refusing to use it — another user may have pre-created it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.
Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.
Cosa fare:
- Per
could not be createdseguito dais full (ENOSPC), libera spazio su disco nel volume indicato dal messaggio. Quando invece diceyour disk quota on the volume holding /tmp is used up (EDQUOT), elimina i tuoi file su quel volume che non ti servono più - Per le forme
Refusing to use it, rimuovi la voce indicata stessa, non ciò a cui punta un link, e avvia di nuovo Claude Code; per la formaowned by uid, solo un amministratore o quell'utente può rimuoverla - Per
is not readable, eseguichmod 0700sulla directory indicata, oppure rimuovila e avvia di nuovo - In tutti questi casi, imposta
CLAUDE_CODE_TMPDIRsu una directory che controlli e avvia di nuovo Claude Code, lasciando intatto il percorso rifiutato
Prima della v2.1.309, Claude Code stampava solo il testo di errore del sistema operativo quando il volume era pieno o la tua quota era esaurita. Un esempio è ENOSPC: no space left on device, mkdir '/tmp/claude-501', e si applicano gli stessi passaggi.
Claude Code non è riuscito a salvare perché il disco è pieno
Questa riga su stderr dopo un'esecuzione di claude -p indica che il disco è pieno o che la tua quota disco è esaurita, quindi Claude Code non è riuscito a salvare tutto ciò che riguarda l'esecuzione:
Error: Claude Code could not save all of this session's transcript under /Users/you/.claude because the disk is full (ENOSPC). If you resume this session, part of the conversation may be missing. Free up space on that disk before the next run.
Con output di testo o json, l'esecuzione esce con codice 1 e la risposta è già stata stampata. Con output stream-json, l'esecuzione mantiene il suo consueto codice di uscita e la risposta arriva comunque.
Cosa fare:
the disk is full (ENOSPC): prima della prossima esecuzione, libera spazio sul disco che contiene il percorso indicato nel messaggioyour disk quota is used up (EDQUOT): prima della prossima esecuzione, libera spazio o richiedi una quota maggiore
Directory couldn't be resolved to a real location
Hai eseguito /add-dir per una sottodirectory della tua directory di lavoro, e Claude Code non è riuscito a risolvere la directory nella sua posizione reale.
Hai già accesso ai file di una sottodirectory della directory di lavoro, quindi /add-dir carica solo le sue skill, i suoi comandi e i suoi agenti. Prima di caricarli, Claude Code controlla che la posizione reale della directory, con tutti i collegamenti simbolici risolti, si trovi all'interno della directory di lavoro. Quando Claude Code non riesce a risolvere quella posizione, non carica nulla e mostra questo messaggio:
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.
Cosa fare:
- Verifica che il percorso indichi una directory reale all'interno della directory di lavoro, quindi esegui di nuovo
/add-dir - Il messaggio non modifica il tuo accesso ai file; segnala solo che il contenuto
.claude/della directory non è stato caricato
Prima della v2.1.261, questo messaggio compariva anche per ogni /add-dir <subdirectory> quando la directory di lavoro si trovava su un automount /net/<host>, dove Claude Code per scelta progettuale non risolve i percorsi; la directory era a posto e riprovare non poteva servire.
Workspace not trusted when starting Remote Control
[!NOTE]
Se
claude ultrareviewha stampatoError: Workspace not trusted, consulta invece Workspace not trusted when running claude ultrareview.
Hai avviato la modalità server di Remote Control con claude remote-control o il suo alias claude rc in una directory che non hai considerato attendibile, e il comando non ha potuto chiederti se considerarla attendibile. Ad esempio, lo standard input o lo standard output del comando non è un terminale perché uno dei due è reindirizzato o collegato tramite pipe. Il comando esce con codice 1:
Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.
Due varianti che iniziano anch'esse con Error: Workspace not trusted. compaiono in un terminale troppo piccolo per mostrare cosa attiva la fiducia nella directory, o in uno che non ha riportato le sue dimensioni. Ingrandisci la finestra o passa a una normale finestra di terminale, quindi esegui di nuovo claude rc.
Nella tua directory home il messaggio è diverso, perché la finestra di dialogo di fiducia nel workspace non salva mai la fiducia per la directory home, quindi accettarla lì non può soddisfare questo controllo. Prima della v2.1.214, la directory home mostrava il messaggio precedente, il cui consiglio lì non può funzionare.
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).
Se rispondi n o premi Enter alla domanda Trust <directory>?, il comando stampa un messaggio Remote Control did not start che nomina la directory ed esce con codice 1. Esegui di nuovo claude rc per rispondere y.
Cosa fare:
- Considera prima attendibile la directory da un terminale: esegui lì
claude rce rispondiy, oppure esegui lìclaudee accetta la finestra di dialogo di fiducia nel workspace, quindi esegui di nuovo il comando originale - Nella tua directory home, spostati in una directory di progetto e avvia Remote Control da lì
Prima della v2.1.284, il comando non chiedeva mai, nemmeno in un terminale.
Workspace not trusted when running claude ultrareview
In una cartella che non hai considerato attendibile, quando claude ultrareview non può chiederti se la consideri attendibile, l'esecuzione esce con codice 1 prima che la revisione inizi:
Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog. Or, in a script or CI job, pass `--trust-workspace` to trust the folder for this run only.
Ad esempio, il sottocomando non può chiedere quando il suo standard input o standard output non è un terminale. Inviare l'output a un file, come in claude ultrareview --json > findings.json, significa che lo standard output non è un terminale.
Cosa fare:
- In uno script o in un job di CI, aggiungi
--trust-workspaceper considerare attendibile la cartella per quell'esecuzione:claude ultrareview --trust-workspace. Aggiungilo solo per codice di cui ti fidi, perché git e Claude Code possono quindi eseguire programmi indicati nella configurazione git e nelle impostazioni di progetto della cartella. Per una pull request il cui codice non è attendibile, esegui la revisione da un branch di cui ti fidi. - Sulla tua macchina, esegui
claudein quella cartella e accetta la finestra di dialogo di fiducia nel workspace, quindi esegui di nuovo il comando originale
Ciascuno di questi messaggi di claude ultrareview indica che nessuna revisione è stata avviata e che il codice di uscita è 1:
Error: Workspace not trusted. This terminal ...: il terminale non ha riportato il numero di righe e colonne, oppure non riesce a contenere la domanda di fiducia e i relativi avvisi. Ingrandiscilo o usa un terminale che riporti le sue dimensioni, quindi esegui di nuovoclaude ultrareview. Al di fuori della tua directory home, puoi anche eseguireclaudein quella cartella una volta e accettare la finestra di dialogo di fiducia, così le esecuzioni successive lì non chiederanno nulla.Error: Workspace not trusted. <folder> is your home directory: poiché la fiducia per la tua directory home non viene mai salvata, eseguire primaclaudelì non può aiutare. Esegui invececlaude ultrareviewda una directory di progetto, dopo aver eseguitoclaudelì una volta per accettare la finestra di dialogo di fiducia, oppure aggiungi--trust-workspace.No answer in time.seguito daError: Workspace not trusted: la domandaTrust <folder>? [y/N]è rimasta senza risposta per 5 minuti. Esegui di nuovoclaude ultrareviewe rispondi.Ultrareview did not start: <folder> is not trusted: hai rifiutato alla domandaTrust <folder>? [y/N], ad esempio rispondendono premendo Enter. Per avviare la revisione, esegui di nuovoclaude ultrareviewe rispondiy.Ultrareview did not start: `--trust-workspace` takes no value: dopo--trust-workspacesegue qualcosa che non è un flag, come un numero di PR ofalse. Se non ti fidi della cartella, ometti il flag. Per considerarla attendibile per questa esecuzione, metti il numero di PR o il branch di base prima del flag:claude ultrareview 1234 --trust-workspace.
Prima della v2.1.309, claude ultrareview non accettava --trust-workspace.
Remote Control non si è avviato perché una domanda non ha ricevuto risposta
Questo messaggio indica che claude remote-control ha posto la domanda di primo avvio citata nel messaggio e non ha ricevuto risposta:
Remote Control did not start: "Enable Remote Control?" got no answer. Run `claude remote-control` at a terminal and answer y once; it won't ask again.
Remote Control did not start: "Choose [1/2] (default: 1):" got no answer. You can run `claude remote-control` and choose, or pass --spawn=same-dir or --spawn=worktree.
Cosa fare:
Enable Remote Control?: in uno script o in un servizio, lo standard input termina prima che qualcuno possa rispondere. Eseguiclaude remote-controluna volta in un terminale, con lo stesso utente con cui viene eseguito il tuo script o servizio, e rispondiy.Choose [1/2] (default: 1):: esegui di nuovoclaude remote-controle scegli una modalità di spawn, oppure passa--spawn=same-diro--spawn=worktreeper saltare la domanda
Not carried over to the sessions Remote Control starts
Hai avviato Remote Control con un flag globale di claude prima del verbo remote-control, uno che limiterebbe o configurerebbe le sessioni avviate da Remote Control, come --settings, --setting-sources, --permission-mode, --disallowed-tools o --mcp-config. Un flag posto prima del verbo non raggiunge mai quelle sessioni. Claude Code si rifiuta invece di avviarsi, nominando il flag:
Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).
Claude Code non rifiuta i flag globali che si possono scartare senza conseguenze, come --verbose, --model, o un --session-id o --plugin-dir inserito da un wrapper: li ignora e Remote Control si avvia.
Claude Code si rifiuta di avviarsi anche per un flag globale che non riconosce ancora come innocuo, quindi un flag aggiunto in una release più recente può comparire in questo messaggio finché una release successiva non lo contrassegna come innocuo.
Cosa fare:
- Rimuovi il flag da prima del verbo e passa le opzioni specifiche di Remote Control dopo di esso;
claude remote-control --helple elenca - Quando il flag rifiutato è
--permission-mode, eseguiclaude remote-control --permission-mode <mode>per impostare la modalità di permesso per le sessioni avviate da Remote Control
Prima della v2.1.248, claude remote-control non accettava i propri flag quando veniva prima un flag globale, e il comando falliva con un errore unknown option.
--sandbox or --no-sandbox is not supported by claude remote-control
Questo errore indica che il comando che avvia il tuo server Remote Control passa --sandbox o --no-sandbox dopo remote-control, e claude remote-control non accetta nessuno dei due flag. Il server esce con codice 1 invece di avviarsi:
Error: --sandbox is not supported by claude remote-control. The flag had no effect and was removed. To sandbox sessions, set sandbox.enabled to true in settings.
Error: --no-sandbox is not supported by claude remote-control. The flag had no effect and was removed. Remove it from the command.
Cosa fare:
- Rimuovi il flag dal comando, anche in uno script o in una definizione di servizio che avvia il server per te, quindi eseguilo di nuovo
- Per eseguire in sandbox le sessioni avviate dal server, attiva il sandboxing impostando
sandbox.enabledsutruein un file di impostazioni
Entrambi i flag sono stati rimossi da claude remote-control nella v2.1.300, quindi un comando scritto per una versione precedente può ancora contenerne uno.
claude import is not yet available in this build
Hai eseguito claude import, e Claude Code ha trovato il flusso di importazione disattivato, quindi il comando esce con codice 1 invece di avviare l'importazione. Prima della v2.1.222, una build con il flusso di importazione disattivato trattava import come un prompt e avviava una sessione interattiva invece di stampare questo messaggio.
`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.
Claude Code attiva claude import tramite un feature flag che recupera da Anthropic e memorizza nella cache su disco. Questo messaggio indica che il valore nella cache è disattivato. La causa è di solito una delle seguenti:
- Non hai avviato una sessione dopo l'installazione, quindi Claude Code non ha ancora recuperato il flag. Il primo
claude importpuò stampare questo messaggio anche quando la funzionalità è disponibile per te. - Usi Claude Code tramite Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry o Claude Platform su AWS, oppure tramite un gateway delle app Claude. Claude Code non recupera i feature flag in queste sessioni, quindi
claude importrimane non disponibile. - Hai impostato
DISABLE_TELEMETRY,DO_NOT_TRACK,CLAUDE_CODE_DISABLE_FEATURE_FLAGS,DISABLE_GROWTHBOOKoCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, che disattivano il recupero dei feature flag, quindiclaude importrimane non disponibile.
Cosa fare:
- Su una nuova installazione, avvia
claude, attendi che la sessione si carichi, esci ed esegui di nuovoclaude import - Dove il recupero dei feature flag rimane disattivato, prepara tu stesso la configurazione: aggiungi i server MCP con
claude mcp add, e crea i fileCLAUDE.md, le skill e i comandi e i subagent che vuoi trasferire. Il messaggio nomina anche~/.claude/settings.json. Della configurazione checlaude importtrasferisce, quel file contiene solo la modalità di permesso; Claude Code non legge i server MCP da esso.
Could not read Claude Code config
Hai eseguito claude import mentre Claude Code non riusciva ad analizzare ~/.claude.json, il file in cui memorizza i dettagli del tuo account e lo stato per progetto. Il sottocomando legge quel file per verificare la disponibilità ma non mostra la finestra di dialogo di ripristino mostrata dalla sessione interattiva, quindi esce con codice 1. Prima della v2.1.222, claude import con un file di configurazione illeggibile avviava una sessione interattiva, la cui finestra di dialogo di ripristino gestiva il file.
Could not read Claude Code config — run `claude` with no arguments to recover it.
Cosa fare:
- Esegui
claudesenza argomenti. Claude Code rileva il file non valido e propone di reimpostarlo. Quindi esegui di nuovoclaude import. - Per mantenere le modifiche manuali che hai apportato, correggi invece la sintassi JSON in
~/.claude.jsonin un editor, quindi esegui di nuovoclaude import
Could not import a server from Claude Desktop
Claude Code non è riuscito ad aggiungere uno dei server che hai selezionato in claude mcp add-from-claude-desktop. Il comando importa comunque gli altri server selezionati e stampa una riga per ogni server che non è riuscito ad aggiungere. Prima della v2.1.205, il primo server che falliva interrompeva l'importazione.
Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.
Il testo dopo il nome del server è il motivo. Il più comune è il controllo sul nome: Claude Desktop consente nei nomi dei server caratteri, come spazi e punti, che claude mcp limita a lettere, numeri, trattini e trattini bassi. Altri motivi includono una configurazione del server che non supera la convalida e un server bloccato dalla policy MCP della tua organizzazione.
Cosa fare:
- Rinomina il server in
claude_desktop_config.jsonusando solo lettere, numeri, trattini e trattini bassi, quindi esegui di nuovoclaude mcp add-from-claude-desktop - Aggiungi quel server direttamente con
claude mcp addoclaude mcp add-jsoncon un nome valido. Consulta Importare server MCP da Claude Desktop.
Cannot add MCP server to the managed scope
Hai eseguito claude mcp add o claude mcp add-json con --scope managed. Quell'ambito contiene i server che la tua organizzazione fornisce tramite l'impostazione gestita managedMcpServers. Claude Code li legge solo dalle impostazioni gestite, quindi il comando non può scrivere un server in quell'ambito.
Cannot add MCP server to scope: managed
Cosa fare:
- Aggiungi il server a un ambito in cui puoi scrivere:
local,useroproject. Senza--scope, il comando usalocal. Consulta Ambiti di installazione MCP - Per fornire il server a ogni utente della tua organizzazione, aggiungilo a
managedMcpServersnelle impostazioni gestite che distribuisci
Cannot add MCP server when managed settings allow only plugin servers
Hai eseguito claude mcp add o claude mcp add-json mentre le impostazioni gestite della tua organizzazione impostano strictPluginOnlyCustomization su true o su un elenco che include mcp. Con questa impostazione, Claude Code non carica i server MCP da ~/.claude.json o .mcp.json, quindi il comando esce con codice 1 invece di salvare un server che non verrebbe mai caricato:
Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide. Install a plugin that provides this server, or ask your administrator to make it available.
claude mcp add-from-claude-desktop segnala ogni server che selezioni come non importato, con questo messaggio come motivo. /import segnala questo messaggio per ogni server MCP che tenta di aggiungere e importa comunque gli altri elementi che ha trovato.
Prima della v2.1.284, questi comandi salvavano il server e segnalavano il successo, e il server non veniva mai caricato.
Cosa fare:
- Installa un plugin che fornisce il server
- Chiedi al tuo amministratore di distribuire il server in un plugin, oppure di fornirlo tramite
managedMcpServersse si tratta di un server HTTP o SSE remoto
Can't read .mcp.json
Un comando che legge il .mcp.json del progetto, come claude mcp add o claude mcp add-json con --scope project, oppure claude mcp remove, ha rilevato che il file nella directory corrente non è un file regolare o è più grande di 2 MiB, quindi esce con questo errore invece di leggere il file.
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.
Prima della v2.1.257, una FIFO in .mcp.json lasciava il comando in attesa indefinitamente senza alcun output, e un collegamento simbolico a un file di dispositivo come /dev/zero faceva crescere la memoria finché il processo non veniva terminato.
Cosa fare:
- Controlla cosa si trova in
.mcp.jsonnella directory corrente. Sostituiscilo con un normale file JSON nel formato dell'ambito di progetto, oppure eliminalo, quindi esegui di nuovo il comando.
MCP server was not saved or removed
Questo errore significa che un comando come claude mcp add o claude mcp remove non è riuscito a scrivere la tua modifica in ~/.claude.json. Altri processi di Claude Code potrebbero aver mantenuto il file bloccato, oppure il file potrebbe essere di sola lettura o protetto da una sandbox.
MCP server "example" was not saved to /home/user/.claude.json. If other Claude Code processes use that file, they may have kept it locked: add the server again, with CLAUDE_CODE_CONFIG_LOCK_WAIT_MS=60000 set to wait up to a minute. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox first.
Dopo una rimozione, il messaggio riporta was not removed from al posto di was not saved to, e remove the server again al posto di add the server again. Per un server di ambito local, il percorso è seguito dalla directory di progetto a cui appartiene la voce, come (local scope for /path/to/project).
Cosa fare:
- Sono in esecuzione altri processi di Claude Code: il comando attende circa 10-20 secondi il blocco sul file, poi rinuncia senza scrivere. Esegui di nuovo lo stesso comando con
CLAUDE_CODE_CONFIG_LOCK_WAIT_MSimpostata su un'attesa più lunga in millisecondi, ad esempio60000. - Il file è di sola lettura o protetto da sandbox: rendi scrivibile il file indicato dal messaggio ed esegui di nuovo lo stesso comando di aggiunta o rimozione, oppure esegui quel comando al di fuori della sandbox.
Prima della v2.1.283, claude mcp add, claude mcp add-json e claude mcp remove segnalavano il successo anche quando la modifica non raggiungeva il file. Prima della v2.1.318, il messaggio non menzionava il blocco e Claude Code non leggeva CLAUDE_CODE_CONFIG_LOCK_WAIT_MS.
MCP server may not have been saved or removed
Hai eseguito claude mcp add, claude mcp add-json o claude mcp remove per un server nell'ambito user o local, e Claude Code non è riuscito a rileggere ~/.claude.json per confermare la modifica. La modifica potrebbe essere o non essere su disco. Le parentesi dopo to confirm the change indicano il motivo.
MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.
Dopo una rimozione, il messaggio riporta may not have been removed e termina con then remove the server again if it is still listed. Se il motivo è the file was not found, il server potrebbe essere ancora configurato.
Prima della v2.1.283, i comandi segnalavano il successo anche quando la modifica non poteva essere confermata.
Cosa fare:
- Esegui
claude mcp get <name>per verificare se la modifica è su disco. Per un server con ambitolocal, eseguilo dalla directory del progetto a cui appartiene il server, poiché l'ambito locale è per progetto. - Se il server manca dopo un'aggiunta, o è ancora elencato dopo una rimozione, esegui di nuovo lo stesso comando di aggiunta o rimozione.
Server is Anthropic-hosted and doesn't support local OAuth
Hai avviato un accesso per un server MCP il cui URL punta a un host di connettori ospitato da Anthropic che esegue l'autenticazione tramite un provider di identità di terze parti. Questi host includono microsoft365.mcp.claude.com, gmail.mcp.claude.com e gcal.mcp.claude.com. Claude Code si rifiuta di avviare il suo flusso OAuth locale per questi host sia dal pannello /mcp sia da claude mcp login, perché il loro accesso funziona solo tramite claude.ai.
"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.
Cosa fare:
- Rimuovi la tua voce con
claude mcp remove <name>, in modo che non possa nascondere il connettore claude.ai allo stesso URL - Dopo averla rimossa, collega il servizio su claude.ai/customize/connectors, con l'accesso effettuato all'account che usi in Claude Code. Una volta collegato, il connettore compare automaticamente in Claude Code se il tuo metodo di autenticazione attivo è un accesso con abbonamento claude.ai
Server rejected the Authorization header minted by the configured headersHelper
Un server MCP il cui headersHelper fornisce l'header Authorization ha risposto alla connessione con HTTP 401 o 403, quindi Claude Code segnala la connessione come non riuscita. Poiché l'helper fornisce l'header Authorization, Claude Code non ripiega su OAuth per il server:
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 esegue di nuovo l'helper a ogni tentativo di connessione, quindi un nuovo tentativo dopo un rifiuto temporaneo, come una race condition nella rotazione dei token, può riuscire con una credenziale nuova.
Cosa fare:
- Esegui tu stesso il comando
headersHelpernel modo in cui lo esegue Claude Code: dalla directory in cui Claude Code lo esegue, con le variabili d'ambiente che Claude Code imposta per esso e senza le variabili delle credenziali che Claude Code rimuove per un server proveniente da un.mcp.jsondi progetto, da un plugin o da un file di agente di progetto. Verifica che stampi un valoreAuthorizationaccettato dall'endpoint del server - Dopo aver corretto l'helper o la sua fonte di credenziali, seleziona il server in
/mcpe scegli Reconnect
Prima della v2.1.248, Claude Code eseguiva l'individuazione OAuth per un server il cui helper forniva l'header Authorization. Quell'individuazione poteva fallire con Incompatible auth server: does not support dynamic client registration invece di segnalare la credenziale rifiutata.
MCP server rejected the elicitation capability
Un server MCP basato su Java MCP SDK dalla 0.11.0 alla 0.17.0 ha rifiutato la connessione. Queste versioni dell'SDK non riescono ad analizzare le modalità di elicitation form e url che Claude Code dichiara nel suo handshake. Il messaggio recita:
This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability. Set "bareElicitationCapability": true for it, or upgrade to Java MCP SDK 0.17.1+ (Spring AI 1.0.7+ or 1.1.6+).
Cosa fare:
- Aggiorna il server a Java MCP SDK 0.17.1 o successivo, oppure a una delle release di Spring AI indicate nel messaggio
- Oppure aggiungi
"bareElicitationCapability": truealla voce di quel server nella tua configurazione MCP, quindi riavvia Claude Code. Il campo è accettato nelle voci stdio,sse,httpewse richiede Claude Code v2.1.281 o versioni successive
Questa voce di .mcp.json imposta il campo per un server HTTP:
{
"mcpServers": {
"inventory": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"bareElicitationCapability": true
}
}
}
Dopo il riavvio, /mcp mostra il server come connesso. Claude Code dichiara la modalità form solo a quel server, quindi rimuovi il campo una volta che lo hai aggiornato.
Un server può anche fallire con un proprio testo di errore, ad esempio uno che contiene Unrecognized field "form". Si applicano le stesse soluzioni.
MCP permission prompt tool not found
Lo strumento che hai passato a --permission-prompt-tool non era tra gli strumenti MCP connessi quando l'esecuzione ha avuto bisogno per la prima volta di una decisione sui permessi, o perché il suo server non si è mai connesso o perché nessun server connesso espone uno strumento con quel nome. Claude Code invia comunque il tuo prompt: l'esecuzione non interattiva esce con questo errore, e con codice di uscita 1, alla prima chiamata a uno strumento, quindi non produce alcuna risposta anche se la richiesta è stata effettuata. Prima del primo prompt, Claude Code attende che quel server si connetta fino al timeout di connessione per server di 30 secondi impostato da MCP_TIMEOUT. Prima della v2.1.206, l'avvio non attendeva che il server terminasse la connessione, quindi anche un server sano ma lento ad avviarsi produceva questo errore.
Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none
L'elenco dopo Available MCP tools: nomina gli strumenti MCP che erano connessi.
Cosa fare:
- Verifica che il server si avvii e rimanga connesso: esegui
claude mcp listnella stessa directory e conferma che il server sia elencato come connesso - Conferma che il nome dello strumento corrisponda al nome
mcp__<server>__<tool>esposto dal server - Se il server ha bisogno di più di 30 secondi per avviarsi, aumenta
MCP_TIMEOUT
OAuth callback port is already in use
Quando accedi a un server MCP remoto con OAuth, Claude Code avvia un listener locale per ricevere il callback di accesso. Se la porta di cui ha bisogno quel listener è occupata da un altro processo, l'accesso fallisce con questo messaggio. Questo accade soprattutto con una porta di callback fissa impostata tramite la variabile MCP_OAUTH_CALLBACK_PORT o --callback-port, poiché senza di essa Claude Code sceglie una porta disponibile.
OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.
Su Windows, il comando suggerito è invece netstat -ano | findstr :<port>.
Cosa fare:
- Esegui il comando indicato nel messaggio per trovare il processo che occupa la porta, e interrompilo o attendi che termini
- Se un altro programma ha bisogno di quella porta in modo permanente, registra un URI di reindirizzamento diverso presso il server e impostane la porta con
MCP_OAUTH_CALLBACK_PORTo--callback-port, a seconda di quello che usi - Quindi avvia di nuovo l'accesso, ad esempio selezionando il server in
/mcp
No available ports for OAuth redirect
Quando accedi a un server MCP remoto con OAuth, Claude Code avvia un listener locale per ricevere il callback di accesso. L'accesso fallisce con questo messaggio quando Claude Code non riesce ad associare una porta locale per esso. Qualcosa sulla macchina gli impedisce di mettersi in ascolto su 127.0.0.1, ad esempio un software di sicurezza o una policy della sandbox che nega i listener locali.
No available ports for OAuth redirect
Prima della v2.1.268, Claude Code non ripiegava su una porta assegnata dal sistema operativo, quindi il messaggio compariva anche quando solo le porte scelte da esso non potevano essere associate. Questo può accadere sugli host Windows in cui Hyper-V riserva intervalli di porte che coprono le porte tra cui sceglie Claude Code.
Cosa fare:
- Verifica se un software di sicurezza o una policy della sandbox impedisce ai processi di mettersi in ascolto su
127.0.0.1, e consenti a Claude Code di associare una porta locale - Quindi avvia di nuovo l'accesso, ad esempio selezionando il server in
/mcp
/security-review non riesce senza origin/HEAD
/security-review costruisce il contesto della revisione calcolando il diff del tuo branch rispetto a origin/HEAD, il riferimento locale che registra quale branch è quello predefinito sul tuo remote origin. Quando quel riferimento non esiste, i comandi git che raccolgono il diff falliscono e la revisione si interrompe prima di iniziare.
Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]
fatal: ambiguous argument 'origin/HEAD...': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Il messaggio potrebbe citare invece git log o un diverso git diff. Git crea origin/HEAD solo quando il remote dichiara un branch predefinito e il tuo refspec di fetch lo include, cosa che avviene con un git clone completo di un remote con commit. Il riferimento manca in queste configurazioni:
- Un checkout a branch singolo o di CI, che esegue il fetch con un refspec troppo ristretto
- Un remote il cui HEAD lato server punta a un branch che nessuno ha mai inviato
- Un repository senza remote
origin, o uno di cui non hai mai eseguito il fetch
Claude Code mostra lo stesso errore per qualsiasi skill che inserisce contesto dinamico, e un comando inserito che fallisce interrompe l'invocazione di quella skill.
Stringhe analoghe compaiono prima ancora che il comando venga eseguito:
Shell command permission check failed for pattern "...": il controllo dei permessi del comando non lo ha consentito. Controlli dei permessi sui comandi iniettati spiega quali risultati interrompono l'invocazione in ciascuna modalità di permesso e come pre-approvare un comando conallowed-toolsSkill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found: il frontmatter della skill richiede bash su una macchina che non ce l'ha. Installa Git for Windows o modifica il frontmatter inshell: powershell. Consulta Come vengono eseguiti i comandi iniettati
Cosa fare:
- Crea il riferimento indicando il branch predefinito del tuo remote:
git remote set-head origin <default-branch>. Questo funziona ogni volta che esiste il riferimento di tracciamento localeorigin/<default-branch>. Se non esiste, come nei clone a branch singolo, esegui prima il fetch del branch: eseguigit remote set-branches --add origin <branch>, poigit fetch origin, quindi esegui di nuovo il comando set-head. Esegui di nuovo/security-review. - Se preferisci non indicare il branch, esegui
git fetch origine poigit remote set-head origin --auto, che chiede al remote quale branch è il suo predefinito. Fallisce conerror: Cannot determine remote HEADquando il remote non dichiara alcun branch predefinito, perché è vuoto o il suo HEAD punta a un branch che nessuno ha mai inviato; in tal caso indica esplicitamente il branch. Fallisce conerror: Not a valid refquando il tuo clone non esegue il fetch di quel branch; amplia prima il refspec come indicato sopra. - Se il repository non ha alcun remote, aggiungine uno con
git remote add origin <url>ed esegui il fetch prima di creare il riferimento. Se il remote è vuoto, invia prima il tuo branch congit push -u origin HEADe indica quel branch nel comando set-head;origin/HEADpunterà quindi al branch che hai appena inviato, quindi/security-reviewvedrà un diff vuoto finché il branch non se ne discosta.
No shell command in a skill or command was run
No shell command in <name> was run indica che un comando di contesto dinamico !`<command>` in quel file di skill o di comando contiene un carattere che lo strumento Bash o PowerShell rifiuta:
- Entrambi gli strumenti: un carattere di controllo grezzo diverso da una tabulazione o da un a capo
- Strumento PowerShell: anche U+FEFF o U+180E
Il messaggio termina con il comando rifiutato, mostrando ogni carattere rifiutato come �, come in questo esempio dello strumento Bash:
No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.
build.sh --target�dist
Cosa fare:
- Trova ogni
�nel comando citato alla fine del messaggio. Rimuovi il carattere che rappresenta dal file di skill o di comando, oppure dagli argomenti o dalle opzioni sostituiti nel file.
Input must be provided when using --print
Il semplice claude ha bisogno che stdout sia un terminale per avviare l'interfaccia interattiva. Quando stdout è reindirizzato, o la console non è un vero terminale, come PowerShell ISE e alcuni pannelli di output degli IDE, claude viene invece eseguito in modalità non interattiva. È la stessa modalità di claude -p, che richiede un prompt, quindi il messaggio nomina --print anche se non hai passato il flag. Passare -p/--print senza prompt e senza nulla inviato tramite pipe su stdin produce lo stesso errore ovunque.
Error: Input must be provided either through stdin or as a prompt argument when using --print
Cosa fare:
- Per l'uso interattivo, esegui
claudein un vero terminale: Windows Terminal o la console di PowerShell anziché ISE, e il terminale integrato del tuo IDE anziché un pannello di output - Per l'uso singolo, passa il prompt:
claude -p "your question", oppure invialo tramite pipe conecho "your question" | claude -p
Claude Code can't read the keyboard here
Hai eseguito claude senza -p, il che avvia una sessione interattiva, ma il suo standard input non è un terminale. Qualcosa lo ha collegato tramite pipe o reindirizzato, oppure il programma che ha avviato claude ha fornito un proprio flusso di input.
Una sessione interattiva ha bisogno di un terminale da cui leggere i tuoi tasti, e ciò che Claude Code fa senza di esso dipende dalla tua piattaforma:
- Windows: Claude Code stampa il messaggio su stderr ed esce con codice 1 invece di avviare l'interfaccia
- macOS e Linux: Claude Code legge i tuoi tasti da
/dev/ttye avvia la sessione, con l'eventuale testo inviato tramite pipe come primo prompt. Vedi il messaggio quando/dev/ttynon può essere aperto, e la sua prima riga nomina/dev/ttyal posto della formulazione per Windows.
Su Windows il messaggio recita:
Claude Code can't read the keyboard here: stdin is not a terminal (it is piped, redirected, or supplied by the program that launched claude), and on Windows it can't fall back to the console for input yet.
Run claude directly in Windows Terminal, PowerShell, or Command Prompt, without piping or redirecting its input.
To send text as a prompt and print the reply instead, add -p; it also works with --continue and --resume <session-id> (for example: type notes.md | claude -p --continue).
Cosa fare:
- Per lavorare in modo interattivo, esegui
claudedirettamente in un terminale, senza collegare tramite pipe o reindirizzare il suo input - Per ottenere una risposta senza l'interfaccia interattiva, ad esempio da uno script, aggiungi
-pe fornisci il prompt come argomento o su stdin, come inclaude -p "your question"oecho "your question" | claude -p. Lo stesso funziona con--continuee--resume <session-id>.
Prima della v2.1.287, Claude Code avviava l'interfaccia invece di stampare questo messaggio, e poi non mostrava nulla sullo schermo oppure falliva con un errore contenente Raw mode is not supported.
Se invece vedi Raw mode is not supported durante claude install, consulta Raw mode is not supported durante l'installazione.
Input contained only whitespace
In modalità non interattiva, Claude Code rifiuta un prompt composto interamente da spazi, tabulazioni o a capo invece di inviarlo, perché l'API rifiuta i messaggi senza testo visibile. Il messaggio che vedi dipende dalla provenienza del prompt vuoto:
- Argomento del prompt o stdin tramite pipe per
claude -p:claudeesce conError: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print - Messaggio inviato a una sessione
--input-format stream-jsono Agent SDK in esecuzione: Claude Code termina il turno senza chiamare il modello e la sessione rimane utilizzabile. Il rifiuto arriva come messaggio informativo e come testo del risultato del turno:Blank prompt — the message was only whitespace, so nothing was sent to the model.
Prima della v2.1.229, Claude Code inviava all'API il messaggio composto solo da spazi, che rifiutava la richiesta con un errore 400.
Cosa fare:
- Includi testo visibile nel prompt. Se uno script costruisce il prompt da una variabile o da un file, verifica che la fonte non sia vuota prima di chiamare Claude Code.
stream-json input carried over 256M characters with no newline
Il tuo programma ha inviato più di 268.435.456 caratteri su stdin senza un a capo a un'esecuzione claude -p --input-format stream-json, quindi Claude Code stampa questo errore su stderr ed esce con codice 1 invece di continuare a bufferizzare l'input. Il messaggio indica questo limite come 256M. Prima della v2.1.257, Claude Code bufferizzava tale input senza limiti, facendo crescere la memoria finché il processo non andava in crash o veniva terminato.
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.
Un input così lungo senza un a capo di solito significa che il producer non è affatto un producer stream-json, ad esempio un file binario o un normale output di log inviato tramite pipe per errore. Un singolo messaggio che supera il limite non supera lo stesso controllo.
Cosa fare:
- Controlla cosa viene inviato tramite pipe su stdin. Con
--input-format stream-json, ogni messaggio deve essere una singola riga JSON terminata da un a capo - Per inviare invece testo semplice, rimuovi
--input-format stream-json;claude -plegge per impostazione predefinita un prompt in testo semplice da stdin
Unknown command
In una sessione di terminale interattiva, hai inviato un nome con / che non corrisponde ad alcun comando in questa sessione, quindi Claude Code segnala il nome invece di eseguire qualcosa:
Unknown command: /hepl. Did you mean /help?
Claude Code suggerisce il nome di comando o l'alias più vicino tra quelli elencati nel menu in questa sessione. Quando non c'è nulla di simile, il messaggio termina dopo il nome. La causa è di solito una delle seguenti:
- Un errore di battitura, come
/heplper/help. Come il menu dei comandi associa ciò che digiti spiega come scegliere una corrispondenza vicina prima dell'invio - Un comando che esiste ma non è disponibile in questa sessione perché un requisito non è soddisfatto, come la tua piattaforma, il tuo piano o il tuo metodo di autenticazione. Consulta la voce per
/web-setup,/scheduleo/auto-mode-setup. Alcuni comandi rispondono con un proprio messaggio quando la policy della tua organizzazione li disabilita, comeCloud sessions are disabled by your organization's policy - Un comando di un plugin o di un server MCP che non è installato o connesso in questa sessione
Claude Code risponde in questo modo a un nome con / senza corrispondenza solo in una sessione di terminale interattiva. In ogni altra sessione, invia invece il prompt a Claude come un normale messaggio, con una nota che indica che il comando non è stato eseguito e un elenco dei comandi che Claude può eseguire nella sessione. Queste sessioni includono:
- Le esecuzioni con
-p - Le applicazioni Agent SDK
- La scheda Code dell'app Desktop
- Il pannello di chat dell'estensione VS Code
- Le sessioni cloud e le attività pianificate cloud
Per un comando integrato che non può essere eseguito in una di queste sessioni, Claude Code risponde comunque che il comando non è disponibile invece di inviarlo a Claude. Prima della v2.1.274, solo le sessioni cloud e le attività pianificate cloud inviavano a Claude un nome senza corrispondenza. Prima della v2.1.273, anche queste rispondevano Unknown command.
Claude Code non tratta come comando ogni prompt che inizia con /. Invia il prompt a Claude come un normale messaggio quando la prima parola dopo la / inizia con un segno di punteggiatura, come il /-- che apre un commento di documentazione Lean, oppure è un percorso come /var/log/syslog.
Prima della v2.1.236, se premevi Enter mentre il menu dei comandi elencava una corrispondenza vicina al nome che avevi digitato, Claude Code eseguiva quella corrispondenza, quindi un errore di battitura come /hepl eseguiva /help invece di produrre questo messaggio.
Cosa fare:
- Esegui il nome suggerito, oppure digita
/seguito da parte del nome per vedere cosa è disponibile in questa sessione - Se Claude Code segnala come sconosciuto un comando documentato, controlla la sua riga nel riferimento dei comandi per il requisito che indica
Diff is too large for ultrareview
Il diff tra il tuo branch e il branch di base, incluse le modifiche non sottoposte a commit e quelle in staging, supera i limiti di dimensione per una ultrareview, quindi /code-review ultra e il sottocomando claude ultrareview rifiutano la revisione prima dell'avvio della sessione cloud. Una revisione rifiutata non consuma un'esecuzione gratuita e non addebita crediti di utilizzo. Il messaggio indica i limiti in vigore, la dimensione del tuo diff e i file che contribuiscono con il maggior numero di righe modificate. Prima della v2.1.216, il messaggio mostrava solo le statistiche grezze del diff.
Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.
La revisione di una pull request applica gli stessi limiti; quella forma del messaggio inizia con PR #<N> is too large for ultrareview e indica il numero di file e di righe della PR.
Cosa fare:
- Passa un branch di base più vicino al tuo lavoro, ad esempio
/code-review ultra develop, in modo che la revisione copra solo il diff rispetto a quel branch - Suddividi la modifica in branch più piccoli e revisiona ciascuno di essi. I file indicati nel messaggio contribuiscono con il maggior numero di righe modificate, quindi inizia spostandoli in un branch dedicato.
Could not find merge-base with the base branch
/code-review ultra e il sottocomando claude ultrareview revisionano il diff tra il tuo branch e un branch di base, operazione che richiede un commit condiviso dai due. Quando git merge-base non ne trova nessuno, Claude Code rifiuta la revisione prima dell'avvio della sessione cloud. Su un clone che Claude Code può verificare come completo, con almeno un branch, ripiega sulla revisione di ogni file tracciato invece di rifiutare. Vedi questo rifiuto quando il branch di base non può essere trovato affatto, quando Claude Code non riesce a verificare che il tuo clone sia completo, oppure nel raro caso di un repository in cui il diff dell'intero albero non è possibile, come con il formato di oggetti SHA-256.
Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.
Il suggerimento dopo la prima frase dipende da ciò che Claude Code ha osservato:
- Non hai passato un branch di base: Claude Code ha effettuato il confronto con il branch predefinito del repository e suggerisce di passare esplicitamente il tuo branch di base, come nell'esempio sopra
- Hai passato un branch di base già presente nel tuo clone: il suggerimento è
Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`) - Hai passato un branch di base non presente nel tuo clone: Claude Code lo ha recuperato da origin prima del confronto. Il suggerimento è
<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`); quando Claude Code non riesce a stabilire se il tuo clone è shallow, suggerisce invecegit fetch --unshallow origin. Prima della v2.1.221, il suggerimento proponevagit fetch --unshallow originper ogni branch di base recuperato, e su un clone completo quel comando fallisce confatal: --unshallow on a complete repository does not make sense.
Cosa fare:
- Se il tuo vero branch di base è un altro, passalo esplicitamente:
/code-review ultra <branch> - Se il tuo clone potrebbe non avere la cronologia completa, esegui
git fetch --unshallow origine ripeti la revisione
Your checkout has no branches
Un checkout può avere commit ma nessun branch: se esegui git init seguito da git fetch <url> e git checkout FETCH_HEAD, ottieni un HEAD scollegato senza ref. Claude Code impacchetta il tuo repository come git bundle per caricarlo per una ultrareview, e non può creare un bundle di un repository privo di branch o di altri ref, quindi /code-review ultra e il sottocomando claude ultrareview rifiutano la revisione prima dell'avvio della sessione cloud.
Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.
Prima della v2.1.221, Claude Code tentava di revisionare ogni file tracciato in questo checkout, e il caricamento falliva.
Cosa fare:
- Crea un branch al commit corrente con
git checkout -b <name>, poi ripeti la revisione
No GitHub account is connected to your Claude account
Hai eseguito /code-review ultra <PR#> o claude ultrareview <PR#>, e prima di creare la sessione cloud Claude Code chiede al server se l'account GitHub collegato al tuo account Claude può accedere al repository della PR. Nessun account è collegato, oppure il collegamento è scaduto, quindi il clone nel cloud fallirebbe e Claude Code rifiuta l'avvio. Claude Code non consuma un'esecuzione gratuita né addebita crediti di utilizzo per un avvio rifiutato.
Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).
Quando /web-setup non è disponibile nella tua sessione, il messaggio indica solo il link a claude.ai.
Cosa fare:
- Esegui
/web-setupper collegare il tuo login della GitHub CLI al tuo account Claude, oppure collega un account su claude.ai/connect-github - Ripeti la revisione un minuto dopo il collegamento
Prima della v2.1.248, Claude Code non eseguiva questo controllo prima dell'avvio.
Your connected GitHub account can't see the repository
Hai eseguito /code-review ultra <PR#> o claude ultrareview <PR#>, e l'account GitHub collegato al tuo account Claude non può leggere il repository della PR, quindi il clone nel cloud fallirebbe e Claude Code rifiuta l'avvio. Claude Code non consuma un'esecuzione gratuita né addebita crediti di utilizzo per un avvio rifiutato.
Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.
Quando /web-setup non è disponibile nella tua sessione, il messaggio indica solo l'installazione dell'app.
Cosa fare:
- Se la tua CLI
ghlocale può leggere il repository, esegui/web-setupper collegare quel login al tuo account Claude - Ripeti la revisione dopo la modifica
Prima della v2.1.248, Claude Code non eseguiva questo controllo prima dell'avvio.
The GitHub App preflight failed transiently
Hai avviato una sessione cloud da un repository locale, e due passaggi sono falliti insieme. Claude Code non è riuscito a creare o caricare il bundle del tuo repository. Prima del caricamento, ha verificato se il servizio cloud può clonare il repository da GitHub e, invece di una risposta definitiva, quel controllo è terminato con un errore che un nuovo tentativo potrebbe risolvere, come un errore di rete, un timeout o un errore temporaneo del server. Il messaggio completo inizia con ciò che ha bloccato il bundle, ad esempio Could not upload repo bundle (<error>), e termina con la frase relativa al controllo preliminare:
Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead
Cosa fare:
- Esegui di nuovo il comando dopo qualche istante. Quando il controllo GitHub ha esito positivo, Claude Code può avviare la sessione da un clone GitHub, quindi il caricamento fallito non blocca più l'avvio
- Se i nuovi tentativi continuano a fallire, l'inizio del messaggio indica cosa ha bloccato il caricamento. Quando si tratta di una causa che puoi risolvere, risolvila in modo che la sessione possa invece avviarsi dal tuo repository locale
Prima della v2.1.251, Claude Code terminava il messaggio con Please set up GitHub on https://claude.ai/code anche quando il controllo GitHub falliva solo temporaneamente, e un consiglio di configurazione non può risolvere un errore temporaneo.
Il caricamento del repository non può seguire un'impostazione git
Hai avviato una sessione cloud che carica il tuo repository locale, oppure una ultrareview di un branch, e il caricamento non può seguire una delle impostazioni git che determinano quali regole di attributo si applicano ai tuoi file. Se il caricamento procedesse ignorando una regola, un file che git trasforma prima di memorizzarlo, ad esempio uno che un clean filter cifra, potrebbe arrivare nel cloud così com'è sul disco. Claude Code rifiuta invece il caricamento, e nulla viene caricato:
Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository’s .git/config or directly into your ~/.gitconfig, then retry.
Il messaggio indica l'impostazione e dove è definita, e termina con la correzione per il caso riscontrato. Lo stesso rifiuto compare per core.attributesFile e attr.tree, ciascuno con la propria correzione.
Il messaggio può indicare un file di configurazione che la tua configurazione git include tramite una direttiva include o includeIf, anche quando la condizione di quella direttiva non si applica a questo repository.
Cosa fare:
- Applica la correzione indicata nell'ultima frase del messaggio
GitHub isn't connected to your Claude account
Hai avviato una sessione cloud dal tuo repository locale, ad esempio con /autofix-pr. Nessun account GitHub è collegato al tuo account Claude, oppure il collegamento è scaduto, quindi Claude Code rifiuta l'avvio:
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
Quando crei un'attività pianificata nel cloud con /schedule, lo stesso messaggio compare come nota di configurazione che indica il repository; la nota non impedisce la creazione dell'attività.
Cosa fare:
- Esegui
/web-setupper collegare il tuo login della GitHub CLI al tuo account Claude, oppure collega un account su claude.ai/connect-github. Consulta Opzioni di autenticazione GitHub per capire in cosa differiscono le due opzioni. - Esegui di nuovo il comando un minuto dopo il collegamento
Prima della v2.1.268, Claude Code segnalava questa situazione come un errore temporaneo del controllo della Claude GitHub App e suggeriva di riprovare o di installare l'app; nessuna delle due azioni collega un account GitHub.
Una policy dell'organizzazione GitHub sta bloccando Claude
Hai eseguito al prompt di Claude Code un comando che avvia una sessione cloud, come /autofix-pr. Prima di creare la sessione, Claude Code verifica l'accesso di Claude al repository su GitHub, e GitHub l'ha rifiutato perché la tua organizzazione GitHub ha una policy che blocca Claude. Claude Code si ferma lì e mostra un messaggio che indica la policy.
Quando a bloccare l'accesso è un'allowlist di IP, il messaggio è:
Your GitHub organization has an IP allowlist that is blocking Claude. Add Claude's IP ranges to your GitHub allowlist.
Quando a bloccarlo è il single sign-on, il messaggio è:
Your GitHub organization requires single sign-on. Disconnect and reconnect GitHub on the Connectors page in Claude on the web, click Authorize next to your organization when GitHub asks, then try again.
Quando a bloccarlo è una policy di accesso condizionale di Microsoft Entra ID, il messaggio è:
Your GitHub organization's identity provider (Microsoft Entra ID) has a Conditional Access policy that is blocking Claude. Ask your GitHub Enterprise or Entra ID admin to allow Claude in that policy.
Cosa fare:
- Allowlist di IP: chiedi a un owner della tua organizzazione o enterprise GitHub di consentire gli indirizzi IP in uscita di Anthropic. Consulta Allowlist e firewall di GitHub per gli indirizzi e le impostazioni GitHub da modificare.
- Single sign-on: scollega GitHub su claude.ai/customize/connectors, poi collegalo di nuovo. Quando GitHub lo chiede, fai clic su Authorize accanto alla tua organizzazione in modo che il nuovo collegamento sia autorizzato per il suo single sign-on.
- Policy di accesso condizionale: chiedi al tuo amministratore di GitHub Enterprise o di Microsoft Entra ID di consentire Claude in quella policy
- Dopo la modifica, esegui di nuovo il comando
Single sign-on authorization needed
Hai eseguito /install-github-app e scelto un repository la cui organizzazione impone il single sign-on SAML. Prima della configurazione, Claude Code verifica il tuo accesso al repository con la GitHub CLI, e GitHub ha rifiutato quel controllo perché il tuo token gh non è ancora autorizzato per l'organizzazione. La procedura guidata mostra l'avviso con i passaggi per l'autorizzazione:
Single sign-on authorization needed
<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.
Cosa fare:
- Autorizza di nuovo il tuo login della GitHub CLI con gli scope
repoeworkfloweseguendogh auth refresh -h github.com -s repo,workflow, e autorizza l'organizzazione quando GitHub richiede il single sign-on - Se ti autentichi con un personal access token in
GH_TOKEN, apri github.com/settings/tokens, seleziona Configure SSO sul token e autorizza l'organizzazione - Esegui di nuovo
/install-github-app
Prima della v2.1.273, Claude Code mostrava invece l'avviso Admin permissions required per questa condizione.
Failed to resume the conversation
Claude Code non è riuscito a leggere o elaborare la trascrizione salvata della sessione selezionata dal selettore di claude --resume, quindi termina il processo anziché proseguire in uno stato caricato solo in parte. Il messaggio include il comando per riprovare:
Failed to resume the conversation.
Run claude --resume <session-id> to retry, or claude to start a new session.
Claude Code esce con codice 1 dopo aver mostrato il messaggio. Il selettore di /resume all'interno di una sessione in esecuzione riporta invece Failed to resume conversation nella conversazione, e la tua sessione corrente continua a funzionare. Prima della v2.1.216, una ripresa non riuscita dal selettore di claude --resume restava indefinitamente sull'indicatore Resuming conversation… invece di mostrare questo messaggio.
Cosa fare:
- Esegui
claude --resume <session-id>con l'ID di sessione indicato nel messaggio per riprovare - In una versione precedente alla v2.1.285, se il nuovo tentativo fallisce allo stesso modo, esegui
claude updatee riprendi di nuovo. Quelle versioni falliscono la ripresa quando la trascrizione salvata contiene una voce che non riescono a leggere. - Se il nuovo tentativo fallisce ancora, esegui
claudeper avviare una nuova sessione
No conversation found with the session ID
Hai passato un ID di sessione a claude --resume <session-id> e nessuna trascrizione salvata corrisponde:
No conversation found with session ID: <session-id>
Claude Code esce con codice 1 dopo aver mostrato il messaggio. Claude Code cerca l'ID prima nel progetto corrente, poi in tutti gli altri progetti su questa macchina. Prima della v2.1.223, la ricerca si fermava alla directory del progetto corrente e ai suoi worktree git, quindi riprendi dalla directory in cui la sessione ha lavorato per ultima.
Cause comuni:
- ID digitato in modo errato: per un'esecuzione non interattiva, l'ID è il campo
session_iddell'output di--output-format json - Trascrizione eliminata: Claude Code rimuove le trascrizioni dopo il periodo di conservazione, 30 giorni per impostazione predefinita, secondo le regole di pulizia per la conservazione
- Macchina diversa: Claude Code memorizza le trascrizioni in locale, quindi riprendi la sessione sulla macchina in cui è stata eseguita
- Copie duplicate: se hai copiato una directory di progetto sotto
~/.claude/projectscosì che due trascrizioni riportano lo stesso ID, Claude Code mostra questo messaggio anziché riprendere arbitrariamente una delle copie
Cosa fare:
- Per una sessione interattiva, apri il selettore delle sessioni con
claude --resumee premiCtrl+Aper estenderlo a tutti i progetti su questa macchina, poi seleziona la sessione - Le sessioni create con
claude -po con l'Agent SDK non compaiono nel selettore, quindi ricontrolla l'ID confrontandolo con ilsession_idstampato dall'esecuzione originale
Windows reported an error (EBADF) when Claude Code read this session's transcript file
Hai ripreso una sessione su Windows, il suo file di trascrizione salvato si è aperto normalmente, e la lettura è poi fallita con l'errore di sistema EBADF. L'errore di sistema non spiega perché la lettura è fallita, quindi il messaggio suggerisce le cause probabili e cosa provare:
Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.
Il messaggio segue la riga di errore del comando stesso, ad esempio Failed to resume session <session-id>. Un comando claude --resume o claude -p esce con codice 1 dopo averlo mostrato. Dopo /resume all'interno di una sessione, la tua sessione corrente continua a funzionare.
Cosa fare:
- Escludi la cartella che contiene le trascrizioni delle tue sessioni dai software che analizzano o intercettano le letture dei file, come strumenti di sicurezza, cifratura o gestione degli endpoint. Le trascrizioni si trovano in
%USERPROFILE%\.claude\projectsper impostazione predefinita, oppure nella directory indicata daCLAUDE_CONFIG_DIR - Se non puoi aggiungere un'esclusione, aggiungi invece Claude Code alle applicazioni consentite di quel software
- Riprendi di nuovo la sessione
Prima della v2.1.282, l'errore non era accompagnato da alcuna spiegazione: claude --resume <session-id> terminava con Failed to resume session <session-id>, e un'esecuzione con -p stampava solo il testo dell'errore di sistema, ad esempio Failed to resume session: EBADF: bad file descriptor, read.
Cannot switch renderers in this session
Quando cambi renderer, Claude Code riavvia il proprio processo. Hai eseguito /tui in una sessione che Claude Code rifiuta di riavviare, quindi non effettua il cambio e non salva nulla. Il messaggio che vedi ti indica la causa:
Cannot switch renderers while work is running in the background: hai attività in background in esecuzione che un riavvio abbandonerebbe, come una shell in background o un subagent. Attendi che l'attività termini o interrompila con/tasks, poi esegui di nuovo/tui fullscreeno/tui defaultCannot switch renderers in this session: la sessione ha restrizioni che Claude Code non può trasmettere al processo riavviato. Prima della v2.1.234, Claude Code effettuava comunque il riavvio e la sessione rilanciata veniva eseguita senza di esse
Nel messaggio sulle restrizioni, la parte tra parentesi indica le restrizioni rilevate da Claude Code:
Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.
Ogni motivo che il messaggio può mostrare tra parentesi:
launch flags: a custom system prompt, a tool allowlist, or restricted settings: hai avviato la sessione con un flag che Claude Code non ritrasmette al processo riavviato. Questi flag includono--system-prompt,--system-prompt-file,--append-system-prompt-file, un'allowlist--tools,--setting-sourcese--permission-prompt-toolpermission rules set for this session only: un aggiornamento dei permessi da un hook o da un chiamante SDK ha aggiunto regole deny o ask con destinazionesession. Le regole allow limitate alla sessione non provocano il rifiuto. Un riavvio le elimina, e Claude Code invece chiede di nuovoask-before-running rules with no command-line form: un aggiornamento dei permessi da un hook o da un chiamante SDK ha aggiunto regole ask insieme alle regole che Claude Code ritrasmette come--allowed-toolse--disallowed-tools. Non esiste alcun flag per le regole askpermission rules a command line cannot carry intacteadded directories a command line cannot carry intact: un aggiornamento dei permessi ha aggiunto una regola o un percorso di directory durante la sessione. La riga di comando del processo riavviato non può trasmetterne il testo come lo stesso valore
Cosa fare:
- In una sessione avviata senza quelle restrizioni, esegui
/tui fullscreen, oppure/tui defaultper tornare indietro. Claude Code salva lì l'impostazionetui
Can't restart while work is running or Remote Control is connected
Claude Code non si è riavviato, e la tua sessione continua a funzionare come prima. Segui la soluzione indicata nel messaggio.
Claude Code couldn't restart
Quando questo messaggio dice che la tua conversazione è salvata, la conversazione è su disco e puoi riprenderla dal punto in cui si è interrotta. Claude Code si stava riavviando, ad esempio per passare al rendering a schermo intero o uscirne dopo che hai eseguito /tui, e non è riuscito ad avviare il nuovo processo, quindi è uscito con stato 1:
Claude Code couldn't restart. Your conversation is saved. Start Claude Code again and run /resume to pick it up.
Quando il riavvio non aveva alcuna conversazione da riaprire, ad esempio perché /tui era il tuo primo input in una nuova sessione, il messaggio è Claude Code couldn't restart. Start Claude Code again.
Cosa fare:
- Esegui di nuovo
claudenella tua shell. Se il messaggio diceva che la tua conversazione è salvata, esegui/resumenella nuova sessione e seleziona la conversazione. Se non è nell'elenco, estendi il selettore delle sessioni - Se i riavvii continuano a fallire, avvia Claude Code dalla tua shell con
claude --debug-file claude-debug.log. Se un riavvio da quella sessione fallisce,claude-debug.lognella directory da cui hai avviato registra una rigaFailed to relaunch:con l'errore del sistema operativo. Includi quella riga quando segnali il problema
Couldn't open Claude Desktop
Hai eseguito /desktop o il suo alias /app in una sessione, oppure claude --desktop nella tua shell, e il comando di sistema che Claude Code usa per aprire Claude Desktop è fallito. Dopo /desktop, la sessione resta nel terminale; claude --desktop stampa il messaggio senza il prefisso Error: ed esce con stato 1.
Il testo tra parentesi indica il comando fallito, con il suo stato di uscita e la prima riga del suo output di errore quando li ha prodotti. Su macOS quel comando è open, come in questo esempio; su Windows è rundll32:
Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.
Cosa fare:
- Apri tu stesso Claude Desktop, poi esegui di nuovo
/desktopoclaude --desktop - Per leggere l'output di errore completo del comando fallito, attiva il logging di debug con
/debuged esegui di nuovo/desktop, oppure eseguiclaude --desktop --debug-file <path>, poi controlla il log di debug
Prima della v2.1.285, il messaggio terminava con Open Claude Desktop and run /desktop again. Prima della v2.1.275, era Failed to open Claude Desktop. Please try opening it manually. e non diceva cosa fosse fallito.
/terminal-setup ha lasciato invariata la tua keymap di Zed
Hai eseguito /terminal-setup in Zed, e Claude Code non è riuscito a completare l'aggiornamento del tuo keymap.json di Zed, quindi ha lasciato il file così com'era.
Ogni messaggio indica il percorso della tua keymap e termina con il blocco di scorciatoie da tastiera da aggiungere tu stesso:
Couldn't update your Zed keymap, so it was left unchanged.
To add the binding yourself, add this block to the keymap array in <path to keymap.json>:
{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }
La prima riga del messaggio indica la causa:
Couldn't read your Zed keymap, so it was left unchanged.: Claude Code non è riuscito a leggere il file, ad esempio a causa dei permessi del fileYour Zed keymap isn't a readable list of keybindings, so it was left unchanged.: il file è stato letto correttamente ma non viene interpretato come un array di blocchi di scorciatoie da tastiera, nemmeno consentendo commenti//e virgole finaliCouldn't back up your Zed keymap; not modifying it.: Claude Code non è riuscito a copiare il file in un backup.bakaccanto a esso, quindi non ha modificato nullaCouldn't update your Zed keymap, so it was left unchanged.: il risultato unito non è stato verificato come keymap valida contenente la scorciatoia, quindi Claude Code lo ha scartato invece di scriverlo. Un blocco di scorciatoie da tastiera con una chiave duplicata può causare questo problema
Cosa fare:
- Copia il blocco dal messaggio nell'array di primo livello del tuo
keymap.jsonal percorso indicato nel messaggio - Per
isn't a readable list of keybindings, correggi l'errore di sintassi, oppure rendi un array il valore di primo livello del file, poi esegui di nuovo/terminal-setup
Prima della v2.1.247, /terminal-setup non riusciva a interpretare una keymap di Zed che usava commenti // o virgole finali, e sostituiva l'intero file con la sola propria scorciatoia pur segnalandola come installata. Per ripristinare una keymap sostituita da una versione precedente, usa il file di backup .bak descritto in Inserire prompt su più righe.
Skill usage reports are not available on this connection
Hai eseguito /skill-doctor tramite Remote Control, dal telefono o dal browser. Claude Code non invia il report sull'utilizzo delle skill tramite Remote Control e risponde invece con questo messaggio:
Skill usage reports are not available on this connection.
Cosa fare:
- Esegui
/skill-doctornel terminale della macchina su cui è in esecuzione la sessione, oppure esegui lìclaude -p "/skill-doctor"
Custom output styles can't be selected over Remote Control
Hai eseguito /output-style dall'app mobile o dal web tramite Remote Control, oppure il comando è arrivato in un messaggio inoltrato nella sessione. Poiché un turno di questo tipo potrebbe non provenire dal proprietario dell'account, Claude Code elenca e seleziona solo gli stili predefiniti su di esso, e aggiunge questo avviso ogni volta che il comando elenca gli stili o non riconosce il nome che hai fornito. Il nome di uno stile personalizzato riceve la stessa risposta di un nome inesistente:
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.
Cosa fare:
- Scegli uno stile predefinito, ad esempio
/output-style concise - Per usare uno stile personalizzato, imposta
outputStylenel file.claude/settings.local.jsondel progetto, oppure esegui/output-style <style>nel terminale della sessione stessa, se ne ha uno
Output styles are saved to local settings which this session doesn't load
Hai provato a cambiare stile di output con /output-style <style> o /config outputStyle=<style> in una sessione le cui fonti di impostazioni escludono local. Alcuni esempi sono una sessione dell'Agent SDK il cui settingSources non include "local" e una sessione CLI avviata con un valore di --setting-sources che non include local. Entrambi i comandi salvano lo stile in .claude/settings.local.json, un file che una sessione di questo tipo non rilegge mai, quindi Claude Code rifiuta invece di scrivere un'impostazione che non avrebbe alcun effetto:
Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.
Cosa fare:
- Aggiungi
localalle fonti di impostazioni della sessione e cambia di nuovo stile - Imposta la chiave
outputStylein un file di impostazioni che la sessione carica, come.claude/settings.jsonnel progetto o~/.claude/settings.json. Nell'SDK TypeScript, imposta inveceoutputStyleall'interno dell'oggetto inlinesettings; consulta Attivare uno stile di output
/recap only runs when you ask for it yourself
La richiesta /recap non proviene dal tuo input. È arrivata in un messaggio inoltrato nella sessione da un thread di Slack, Teams o di un progetto, oppure in un prompt inviato da un'attività pianificata nel cloud o da un altro programma.
Un messaggio inoltrato riceve l'avviso anche se l'hai scritto tu. Claude Code non può stabilire che un messaggio inoltrato o automatizzato provenga dalla persona il cui account esegue la sessione, quindi risponde con questo avviso invece di un riepilogo:
/recap only runs when you ask for it yourself in this session: from the terminal, the Claude app or claude.ai/code, or over Remote Control. A message relayed from Slack, Teams or a project thread, or sent by a routine or another program, can't request it.
Un /recap che passi a claude -p, o che la tua applicazione Agent SDK invia a una sessione da essa avviata, conta come tuo input.
Cosa fare:
- Apri tu stesso la sessione ed esegui lì
/recap: nel suo terminale, nell'app Desktop o nell'app mobile, su claude.ai/code, oppure tramite Remote Control - Se l'ha inviato un'attività pianificata nel cloud o un altro programma, rimuovi
/recapda quel prompt
/feedback is disabled by your organization's policy
Questo messaggio indica che il feedback sul prodotto è disattivato, quindi il comando che hai digitato non apre la finestra di dialogo del feedback. Sia una policy dell'organizzazione sia un rifiuto precedente producono il messaggio:
- Policy dell'organizzazione: la policy della tua organizzazione non consente il feedback sul prodotto da Claude Code.
/feedback,/buge/sharerispondono tutti con il messaggio. - Rifiuto precedente: il servizio di feedback ha rifiutato una segnalazione che hai inviato, ad esempio con
Couldn't send feedback: Feedback has not been enabled for your organization./feedbacke/bugpossono quindi rispondere con il messaggio. Questo dura sette giorni da quel rifiuto su questa macchina. Vale per ogni piano, inclusi Pro e Max.
Il messaggio indica il comando che hai digitato al prompt di Claude Code:
/feedback is disabled by your organization's policy. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.
Il messaggio può anche essere costituito dalla sola prima frase.
Cosa fare:
- Per segnalare un bug, apri una issue su github.com/anthropics/claude-code/issues. Chiunque può leggere le issue lì, quindi ometti codice, trascrizioni e qualsiasi altra informazione riservata.
- Dopo un rifiuto precedente, attendi che siano trascorsi i sette giorni, quindi invia di nuovo una segnalazione per verificare se il servizio la rifiuta ancora
Prima della v2.1.319, un rifiuto precedente non produceva questo messaggio.
Prima della v2.1.302, il messaggio completo era /feedback is disabled by your organization's policy. Contact your organization admin to enable it.
Errori dei plugin
Questi errori provengono dalla configurazione di plugin e marketplace. Per i problemi dei plugin che non producono uno dei messaggi in questa pagina, come un URL del marketplace che non si carica o un plugin che si installa ma non appare, vedi Risoluzione dei problemi dei plugin.
plugin eval è attualmente in accesso anticipato
Hai eseguito claude plugin eval o claude plugin eval init e ha terminato con codice 1 con uno di questi messaggi prima di fare qualsiasi cosa:
`plugin eval` is currently in early access
`plugin eval` is currently unavailable
Il primo messaggio significa che la tua build è più vecchia della v2.1.269, la prima versione in cui il comando è generalmente disponibile. Il secondo significa che Anthropic ha disattivato il comando lato server; nulla sulla tua macchina lo riattiva.
Cosa fare:
- Esegui
claude --version, quindiclaude update, ed esegui il comando di nuovo in una nuova sessione. Vedi i requisiti per le valutazioni dei plugin - Se vedi il secondo messaggio su una build attuale, riprova più tardi dopo un altro
claude update
Marketplace è registrato da una fonte non attendibile
Il marketplace è registrato con un nome che è riservato per i marketplace ufficiali di Anthropic, ma la sua fonte registrata non è un repository GitHub anthropics. Claude Code ri-controlla i nomi riservati ogni volta che carica o aggiorna un marketplace, quindi il marketplace e i plugin installati da esso smettono di caricarsi. Prima della v2.1.205, una voce registrata prima che il suo nome diventasse riservato continuava a caricarsi.
Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.
Per un marketplace la cui fonte non è un repository GitHub o un URL Git, come una directory locale, la frase centrale legge can only be used with GitHub sources from the 'anthropics' organization invece. claude plugin marketplace add esegue lo stesso controllo e rifiuta un nome riservato con Failed to add marketplace: seguito dalla stessa frase del nome riservato.
Cosa fare:
- Se il marketplace è già registrato, esegui
claude plugin marketplace remove <name>, quindi aggiungilo di nuovo dal repository ufficialegithub.com/anthropics - Se pubblichi un marketplace di terze parti che ha utilizzato il nome prima che diventasse riservato, rinominalo e chiedi agli utenti di aggiungerlo di nuovo dalla tua fonte
- Vedi l'elenco dei nomi riservati in Schema del Marketplace
Il nome del marketplace è un'altra ortografia di un nome riservato
Il nome del marketplace non è di per sé un nome riservato, ma Claude Code lo tratta come un'altra ortografia di uno. Nomi riservati elenca quali ortografie contano come un nome riservato. Claude Code rifiuta un tale nome quando aggiungi il marketplace:
Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.
Quando un marketplace è già registrato con un tale nome, la sua voce smette di caricarsi, e /plugin, claude plugin install, e claude plugin update avvertono:
known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins
Quando il nome avrebbe bisogno di quoting della shell, il rifiuto al momento dell'aggiunta legge This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.
Cosa fare:
- Rinomina il marketplace con un nome che non ortografia un nome riservato e aggiungilo di nuovo
- Per l'avvertimento della voce ignorata, esegui il comando
claude plugin marketplace removeche fornisce, o rimuovi la voce da~/.claude/plugins/known_marketplaces.json
Claude Code rifiuta il nome del marketplace
Il nome di un marketplace registrato impersona un marketplace ufficiale di Anthropic secondo le regole che quella sezione elenca.
Se un marketplace è stato registrato con un tale nome prima che il controllo lo bloccasse, il marketplace e i plugin installati da esso smettono di caricarsi, perché Claude Code controlla il nome ogni volta che legge il catalogo del marketplace. Quando il nome imita uno ufficiale, claude plugin list e la scheda Errors di /plugin segnalano ogni plugin interessato con un messaggio che inizia:
Claude Code refuses the marketplace name "anthropic-plugins-v2"
Per un nome che imita, l'errore del marketplace stesso legge Claude Code refuses this marketplace's name: it looks like one of Anthropic's own invece. claude plugin marketplace add rifiuta qualsiasi nome che impersona con Marketplace name impersonates an official Anthropic/Claude marketplace.
Prima della v2.1.282, claude plugin list e /plugin segnalano i plugin di un nome che imita come non riusciti a caricarsi anche, senza nominare il nome del marketplace come la causa.
Cosa fare:
- Per mantenere un marketplace che un file di impostazioni dichiara inline con
"source": "settings", rinominalo prima di rimuovere il vecchio nome, perché la rimozione del marketplace elimina anche la sua voce dai tuoi file di impostazioni. Claude Code v2.1.292 o successivo elenca questi passaggi nel messaggio:- In ogni file di impostazioni che elenca il marketplace sotto
extraKnownMarketplaces, assegna alla chiave della voce e al suosource.nameun unico nuovo nome in ASCII semplice che non sembri uno ufficiale. Se un amministratore aggiunge il marketplace tramite le impostazioni gestite della tua organizzazione, è l'amministratore a eseguire questo passaggio - Esegui
claude plugin marketplace remove <old-name>, oppure rimuovi il vecchio nome nella scheda Marketplaces di/plugin. Questo disinstalla anche i suoi plugin ed elimina i loro dati, opzioni e segreti - Avvia di nuovo Claude Code, nella cartella del progetto se il file è un file di impostazioni di progetto. Quindi installa i plugin dal marketplace rinominato
- In ogni file di impostazioni che elenca il marketplace sotto
- Per mantenere qualsiasi altro marketplace, attendi fino a quando il suo manutentore lo rinomina, quindi esegui
claude plugin marketplace update <name> - Per rimuovere il marketplace, esegui
claude plugin marketplace remove <name>. Questo disinstalla anche i plugin installati dal marketplace ed elimina i loro dati, opzioni e segreti - Se pubblichi il marketplace, rinominalo nel tuo
marketplace.json; gli utenti aggiornano il marketplace invece di rimuoverlo
Marketplace è già aggiunto da una fonte diversa
Hai indicato una nuova fonte di marketplace con --marketplace <source> nel comando di installazione, in una sessione o dalla tua shell. Il catalogo che Claude Code ha recuperato da quella fonte ha lo stesso nome di un marketplace che hai già aggiunto da una fonte diversa. Claude Code mantiene il marketplace esistente invece di sostituirlo, e il plugin non viene installato.
Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.
Cosa fare:
- Se il marketplace che hai già aggiunto è quello che desideri, installa da esso per nome:
/plugin install <plugin>@<name> - Per passare alla nuova fonte, esegui
/plugin marketplace remove <name>, quindi riprova l'installazione
Il comando del plugin fa riferimento a user_config in un comando shell
Un hook del plugin, monitor, o comando MCP headersHelper fa riferimento a un'opzione del plugin ${user_config.KEY}, e la stringa sostituita verrebbe passata a una shell. Un valore configurato contenente $(...), backtick, o ; verrebbe eseguito come codice lì, quindi Claude Code rifiuta di avviare il componente invece di sostituire il valore. Il controllo viene eseguito sul modello di comando, quindi l'errore appare anche quando nessun valore è ancora configurato. Prima della v2.1.207, il valore veniva sostituito nel comando shell.
La formulazione dipende da quale superficie ha fatto riferimento all'opzione. Un hook in forma shell segnala:
Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}
Un monitor segnala:
Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.
Un MCP headersHelper segnala:
headersHelper for MCP server 'internal-api' references ${user_config.*}. The substituted value would be passed to a shell; read the value inside the helper script instead (e.g. from an env var set in the server's "env" block).
Cosa fare:
- Per un hook, aggiungi un array
argsin modo che venga eseguito in forma exec, dove ogni${user_config.KEY}diventa un argomento senza shell in mezzo. Oppure elimina il riferimento e leggi la variabile di ambiente$CLAUDE_PLUGIN_OPTION_<KEY>all'interno dello script - Per un monitor, elimina il riferimento e fai leggere al monitor script il valore da un file di configurazione
- Per un
headersHelper, sposta${user_config.KEY}nel campoheadersdel server, che non viene analizzato dalla shell, o leggi il valore all'interno dello script helper
Controllo dell'integrità dell'archivio del plugin non riuscito
La voce del marketplace del plugin utilizza una fonte archive con un pin sha256, e il digest del file scaricato non corrisponde al pin. Claude Code rifiuta l'installazione, quindi nulla cambia nella cache del plugin. La mancata corrispondenza ha tre possibili cause:
- Il file all'URL è cambiato dopo che l'autore ha calcolato il pin
- L'autore ha inserito il digest sbagliato nella voce del marketplace
- L'URL serve un file diverso da quello che l'autore ha pinato
Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.
Cosa fare:
- Se pubblichi il plugin, ricalcola il digest del file esatto che l'URL serve, ad esempio con
shasum -a 256 my-plugin.zip, oGet-FileHash -Algorithm SHA256 my-plugin.zipin PowerShell, e aggiornasha256nella voce del marketplace - Se installi il plugin, esegui
/plugin marketplace update <name>per aggiornare il catalogo nel caso in cui la voce sia stata corretta, quindi riprova l'installazione - Se i digest continuano a non corrispondere dopo un aggiornamento, chiedi al proprietario del marketplace quale file hanno pinato prima di installare
Il percorso esce dalla directory del plugin
Uno dei percorsi dei componenti del plugin porta al di fuori della directory del plugin oppure non è stato possibile confermare che si trovi al suo interno, quindi Claude Code elimina quel percorso e carica il resto del plugin. Per un percorso che il plugin dichiara in plugin.json o nella sua voce del marketplace, il nome del componente nel messaggio, come commands o hooks, indica il campo che ha dichiarato il percorso.
commands path escapes plugin directory: ./../shared.md
Nell'output del comando claude plugin, lo stesso errore legge Path escapes plugin directory: ./../shared.md (commands).
Claude Code rifiuta sia un percorso che punta al di fuori del plugin come scritto, come ../shared-utils, sia un symlink che porta al di fuori del plugin e non è uno che le regole del symlink del marketplace consentono. Per un symlink, il messaggio dice anche dove il percorso si risolve:
commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory
Un messaggio che riporta il percorso completo di uno dei file propri di un plugin del marketplace, come hooks/hooks.json, significa che Claude Code ha saltato quel file. Questo accade quando Claude Code non riesce a confermare che il file si trovi all'interno del plugin o, per un plugin in un marketplace locale, all'interno di quel marketplace. Il messaggio segnala ciascuno di questi file sotto il nome del componente indicato:
hooks/hooks.json:hooksmonitors/monitors.json:monitorssettings.json:settingsSKILL.mdalla radice del plugin:skills
Ad esempio, questo messaggio riguarda un hooks/hooks.json che si risolve al di fuori sia del plugin sia del suo marketplace locale:
hooks path escapes plugin directory: /home/user/my-marketplace/my-plugin/hooks/hooks.json — it resolves to /home/user/dotfiles/hooks.json, outside the plugin directory and its marketplace directory
Su macOS e Linux, Claude Code rifiuta anche un percorso del componente che contiene una barra rovesciata ovunque in esso, anche quando il percorso rimane all'interno del plugin. Un plugin i cui percorsi dei componenti utilizzano separatori in stile Windows si carica su Windows e attiva questo rifiuto sulle altre piattaforme:
commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform
Prima della v2.1.251, Claude Code caricava un percorso commands dichiarato in una voce del marketplace anche quando puntava al di fuori della directory del plugin.
Prima della v2.1.257, il controllo sui percorsi dichiarati dal plugin guardava solo la grafia del percorso, non dove porta un collegamento simbolico.
Cosa fare:
- Se hai installato il plugin e non lo mantieni, segnala il messaggio al suo autore
- Per un percorso che il plugin dichiara, sposta il file referenziato all'interno della directory del plugin e punta il percorso ad esso con un percorso relativo
./ - Se il percorso, o una cartella sopra di esso all'interno del plugin, è un collegamento simbolico che porta al di fuori del plugin, sostituisci il collegamento simbolico con una copia di ciò a cui punta
- Se il messaggio dice che un percorso dichiarato dal plugin contiene una barra rovesciata, scrivi il percorso con barre in avanti, ad esempio
./commands/deploy.md - Se il messaggio termina con
EACCES, ripristina il tuo permesso di esecuzione su ogni directory che porta al file o alla cartella indicati dal percorso. Controlla le directory sopra il percorso, quindi segui ogni collegamento simbolico che incontri e controlla le directory che portano a dove punta. Per qualsiasi altro codice di errore, cercalo tra le cause e i passaggi per un percorso che non è stato possibile controllare. - Per condividere file con altri plugin nello stesso marketplace, collegali con un symlink all'interno della directory del plugin, seguendo le regole del symlink
Percorso del file del server non letto
Il messaggio path not read significa che Claude Code non ha letto un file di server MCP o LSP indicato da un plugin, a causa del percorso del file. Il resto del plugin si carica, senza i server definiti dal file.
Una parte .. conta anche quando il percorso rimane all'interno del plugin, come in questo esempio:
mcp-servers path not read: ./sub/../x.json is absolute or has a ".." part
Cosa fare:
- Se hai installato il plugin e non lo mantieni, segnala il messaggio al suo autore
- Se mantieni il plugin, tieni il file del server all'interno della directory del plugin. Indicalo nel manifest o nella voce del marketplace con un percorso che inizia con
./e non contiene.., ad esempio./servers/x.json - Per condividere un file del server tra plugin dello stesso marketplace, collega il file in ciascun plugin con un collegamento simbolico, seguendo le regole dei collegamenti simbolici
Plugin non caricato: il suo manifest non è stato letto
Claude Code non è riuscito a confermare che il manifest di un plugin del marketplace in .claude-plugin/plugin.json si trovi all'interno del plugin, quindi non carica nulla da quel plugin. Per un plugin in un marketplace locale, Claude Code non è inoltre riuscito a confermare che il manifest si trovi all'interno di quel marketplace. Il messaggio appare nella scheda Errors di /plugin, e il motivo alla sua fine indica cosa ha trovato Claude Code.
Ad esempio, questo messaggio riguarda un plugin in un marketplace locale la cui cartella .claude-plugin è un collegamento simbolico che porta al di fuori del marketplace:
Plugin not loaded: its manifest /home/user/my-marketplace/my-plugin/.claude-plugin/plugin.json was not read, because it resolves to /home/user/dotfiles/my-plugin/.claude-plugin/plugin.json, outside the plugin directory and its marketplace directory
Cosa fare:
- Se il motivo termina con
EACCES, ripristina il tuo permesso di esecuzione su ogni directory che porta al manifest. Controlla le directory sopra il manifest, quindi segui ogni collegamento simbolico che incontri e controlla le directory che portano a dove punta. Per qualsiasi altro codice di errore, cercalo tra le cause e i passaggi per un percorso che non è stato possibile controllare. - Se mantieni il plugin e il motivo indica dove si risolve il manifest, la cartella
.claude-plugino lo stessoplugin.jsonè un collegamento simbolico che porta lì. Sostituisci quel collegamento con una copia di ciò a cui punta. - Se hai installato il plugin e non lo mantieni, segnala il messaggio al suo autore
Il percorso non poteva essere controllato
Claude Code ha chiesto al sistema operativo se un percorso del plugin esiste e ha ricevuto un errore diverso da "non trovato", quindi non carica ciò che il percorso nomina. Quanto del plugin si carica dipende da quale percorso ha fallito:
- Una delle posizioni dei componenti predefiniti di un plugin, come la cartella
skills/, il filemonitors/monitors.json, o unoSKILL.mdalla radice del plugin: gli altri componenti del plugin si caricano ancora - La directory del plugin stesso: nulla da quel plugin si carica
Non vedi questo errore per un percorso che non esiste affatto. In /plugin, l'errore appare sotto il plugin e nomina il percorso e il codice che il sistema operativo ha restituito:
skills path could not be checked: /home/user/my-plugin/skills (ELOOP)
In claude plugin list, lo stesso errore legge Path not found: /home/user/my-plugin/skills (skills, ELOOP).
Le cause che producono questo errore includono:
ELOOP: un symlink nel percorso punta a se stesso o forma un cicloEIOoESTALE: il percorso è su un mount di rete che è rotto o stantioEACCES: una delle directory sopra il percorso nega il permesso di attraversarla
Cosa fare:
- Sostituisci un symlink che punta a se stesso con una cartella reale, o eliminalo
- Se il percorso è su un mount di rete, rimonta la condivisione
- Se il codice è
EACCES, ripristina il tuo permesso di esecuzione sulle directory sopra il percorso - Esegui
/reload-pluginsdopo aver corretto il percorso, o riavvia Claude Code, per caricare il plugin o il componente
Prima della v2.1.265, Claude Code trattava una cartella del componente predefinito che non poteva controllare come assente e caricava il plugin senza quel componente, senza errore.
Il percorso della voce del marketplace non rimane all'interno della directory del marketplace
La voce del marketplace del plugin dichiara un percorso di origine che Claude Code non può risolvere a una posizione all'interno della directory del marketplace stesso, quindi il plugin non si installa o carica. Il rifiuto copre:
- Un percorso della voce che è assoluto, sale fuori dal marketplace con
.., o è scritto come un percorso di rete - Su macOS e Linux, un percorso della voce che contiene una barra rovesciata ovunque dopo il
./iniziale - Una voce in un marketplace recuperato da una fonte remota, come git o un URL, che raggiunge il suo target attraverso un symlink che si risolve al di fuori della directory del marketplace
- Una voce relativa in un marketplace aggiunto da un URL diretto al suo
marketplace.json: Claude Code scarica solo quel file, quindi nessun file di plugin locale esiste per il percorso da nominare. Vedi I plugin con percorsi relativi falliscono nei marketplace basati su URL
claude plugin install segnala il rifiuto così:
Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)
Quando il percorso di una voce di un plugin già installato fallisce lo stesso controllo, claude plugin list mostra il plugin come failed to load con:
Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.
Cosa fare:
- Se mantieni il marketplace, scrivi il
sourcedella voce come un percorso relativo semplice con barre in avanti, come./plugins/my-plugin, e mantieni qualsiasi symlink che attraversa puntato all'interno della directory del marketplace - Se hai aggiunto il marketplace da un URL diretto, le voci relative non possono risolversi. Chiedi all'autore del marketplace di utilizzare un'altra fonte di plugin, o aggiungi il marketplace dal suo repository git invece
Impossibile caricare la configurazione del marketplace
Claude Code mantiene i marketplace dei plugin che hai aggiunto in un file di registro in ~/.claude/plugins/known_marketplaces.json. Un comando di plugin che ha bisogno del registro, come claude plugin install, fallisce con uno di due messaggi quando Claude Code non può utilizzare il file:
Failed to load marketplace configuration: il file esiste ma non è JSON valido o non può essere letto. Un file vuoto fallisce in questo modo anche.Marketplace configuration file is corrupted: il file è JSON valido ma i suoi contenuti non corrispondono allo schema del registro.
Con un file vuoto, claude plugin install segnala:
✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF
Prima della v2.1.246, claude plugin install non segnalava questo fallimento.
Cosa fare:
- Apri
~/.claude/plugins/known_marketplaces.jsone ripara il JSON, o correggi le voci che il messaggio nomina come non corrispondenti allo schema del registro - Se non puoi ripararla, elimina il file o sostituisci i suoi contenuti con
{}, quindi aggiungi di nuovo ogni marketplace conclaude plugin marketplace add <source>. Claude Code ri-registra i marketplace che le tue impostazioni utente o gestite dichiarano inextraKnownMarketplacesla prossima volta che lo avvii in una cartella che hai fiducia.
Il plugin è richiesto dalla tua organizzazione
Hai eseguito claude plugin disable, o utilizzato la scheda Installed di /plugin, per disattivare un plugin sincronizzato da claude.ai che la tua organizzazione contrassegna come richiesto:
Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.
Claude Code non salva nulla e il plugin rimane abilitato.
Quando provi a disabilitare un plugin da cui dipende un plugin richiesto, Claude Code rifiuta allo stesso modo, con un messaggio che nomina il plugin richiesto che lo necessita.
Cosa fare:
- Chiedi a un amministratore della tua organizzazione claude.ai di cambiare lo stato richiesto del plugin su claude.ai
Il plugin non è stato disinstallato
Hai eseguito claude plugin uninstall, o scelto Uninstall nella scheda Installed di /plugin, e la disinstallazione si è fermata con un messaggio che inizia "<plugin>" was not uninstalled:. Se il testo dopo i due punti inizia con installed_plugins.json invece di nominare un file di impostazioni, la causa è il contenuto in installed_plugins.json che questa versione di Claude Code non può leggere. Per quella forma, vedi installed_plugins.json contiene un record che questa versione non può leggere.
Quando Claude Code ha rimosso la voce del plugin da enabledPlugins e ha letto i file di impostazioni di quel scope di nuovo, o il plugin era ancora acceso lì, o un file che potrebbe accenderlo non poteva essere letto o controllato. Eliminare le opzioni salvate del plugin, i segreti e i dati mentre una voce di impostazioni potrebbe accenderlo di nuovo perderebbe, quindi la disinstallazione si ferma invece: il plugin rimane installato e nulla che ha salvato viene eliminato.
✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.
Il mezzo del messaggio nomina il file e la causa:
it is still switched on in <file>, although the settings change reported no error: la scrittura delle impostazioni ha segnalato il successo ma la voce è ancora lì quando il file viene letto di nuovoit is still switched on in <file>, and the settings change failed (<error>): il file non poteva essere salvato, per il motivo tra parentesi<file> is there and could not be read: il file esiste ma non poteva essere letto come impostazioni, ad esempio perché non è JSON valido, quindi potrebbe ancora abilitare il plugin<file> (not read: it is on a network path or is a link to one, or could not be checked): Claude Code non ha letto il file di impostazioni del progetto o locale perché il file, o la cartella.claudeche lo contiene, è un link che porta a una posizione di rete, o perché non poteva esaminare quel percorso
claude plugin uninstall esce con 1, e con --json il risultato porta failureCode: "settings_still_on". /plugin mostra lo stesso messaggio.
Cosa fare:
- Segui l'ultima frase del messaggio: ripara o sostituisci il file di impostazioni che nomina, o rimuovi la voce del plugin da
enabledPluginsin quel file tu stesso, quindi esegui di nuovo la disinstallazione
Skipping connection (recent failure cached; retries automatically in 15 min, or edit the plugin config to retry now)
Questo messaggio significa che Claude Code non ha avviato un server MCP stdio fornito da un plugin, perché una connessione a quel server non è riuscita meno di 15 minuti prima:
Skipping connection (recent failure cached; retries automatically in 15 min, or edit the plugin config to retry now)
La sessione continua senza gli strumenti del server, e Claude Code non riprova il server in quella sessione allo scadere dei 15 minuti. Quando avvii una nuova sessione o un'esecuzione di claude -p almeno 15 minuti dopo la connessione non riuscita più recente, Claude Code riprova il server.
Cosa fare:
Per far riprovare il server a Claude Code senza aspettare:
- In una sessione interattiva: esegui
/mcp, seleziona il server e seleziona Reconnect - In un'applicazione Agent SDK: chiama
reconnectMcpServer()in TypeScript oClaudeSDKClient.reconnect_mcp_server()in Python con il nome del server - In
claude -p: avvia una sessione interattiva che carica lo stesso plugin, sulla stessa macchina e con lo stesso account del sistema operativo e lo stesso valore diCLAUDE_CONFIG_DIRdelle tue esecuzioni. Riconnetti lì il server da/mcp. Una volta che si connette, Claude Code prova la connessione nella tua esecuzione successiva. - Se stai sviluppando il plugin: modifica
command,argsoenvdel server nel file.mcp.jsonoplugin.jsondel plugin. Claude Code prova la connessione nella sessione o nell'esecuzione diclaude -psuccessiva che carica la voce modificata.
Il messaggio sostituisce l'errore della connessione non riuscita. Se anche il nuovo tentativo non riesce, Claude Code segnala l'errore di quel tentativo al posto di questo messaggio.
Errori degli strumenti
Questi errori derivano dalle chiamate agli strumenti di Claude. Claude corregge da solo la maggior parte degli errori degli strumenti. Quando un errore richiede una modifica da parte tua, l'elenco Cosa fare di quell'errore indica cosa cambiare.
No such tool available
Claude ha chiamato uno strumento con un nome che non è presente nell'elenco degli strumenti della sessione. Claude Code restituisce l'errore a Claude come risultato della chiamata allo strumento e il turno prosegue. Quando Claude Code riesce a capire perché lo strumento manca, aggiunge dopo il nome dello strumento una frase che indica il motivo o nomina lo strumento da chiamare al suo posto, come nella seconda riga:
Error: No such tool available: <tool name>
Error: No such tool available: read. Tool names are case-sensitive: call Read instead.
Subito dopo aver ripreso una sessione, un server MCP può trovarsi ancora al primo tentativo di connessione quando Claude chiama uno dei suoi strumenti. Claude Code allora attende il server e restituisce questo errore se lo strumento non è ancora disponibile al termine dell'attesa. Prima della v2.1.284, una chiamata di questo tipo falliva immediatamente invece di attendere.
Anche una chiamata il cui nome dello strumento è stato troncato da Claude Code a 200 caratteri fallisce con questo errore.
Cosa fare:
- Se succede una volta sola, non devi fare nulla. Claude legge l'errore e il turno prosegue.
- Se le chiamate agli strumenti di un server MCP continuano a fallire con questo errore, esegui
/mcpnella sessione oclaude mcp listnella tua shell per controllare lo stato del server, e riconnetti un server non riuscito da/mcp. Nell'Agent SDK, consulta Gestione degli errori.
MCP server connection closed before the tool call was answered
Una chiamata a uno strumento di un server MCP HTTP o di un connettore di claude.ai ha perso la connessione prima che il server rispondesse, quindi Claude Code non può sapere se lo strumento è stato eseguito:
MCP server "<name>" connection closed before the tool call was answered. The tool may have run: check whether it did before running it again.
Ripetere la chiamata potrebbe ripetere l'azione dello strumento, ad esempio creando una seconda issue. Per questo Claude Code ripete la chiamata da solo, una sola volta, quando il server contrassegna lo strumento come sicuro da ripetere.
Cosa fare:
- Verifica nel servizio su cui agisce lo strumento se l'azione è avvenuta, ad esempio se la issue o il record che doveva creare è presente
- Se l'azione è avvenuta, non eseguire di nuovo lo strumento. Claude ha ricevuto questo messaggio al posto del risultato dello strumento, quindi comunica a Claude l'esito.
- Se l'azione non è avvenuta, chiedi a Claude di eseguire di nuovo lo strumento. Non devi prima riconnettere il server, perché Claude Code si riconnette al server alla successiva chiamata a uno dei suoi strumenti. Se anche quella connessione fallisce, consulta Interruzioni di un server remoto durante la sessione.
- Se sei tu a sviluppare il server e lo strumento è sicuro da chiamare due volte, contrassegnalo come sicuro da ripetere in modo che Claude Code possa ripetere una chiamata persa
MCP server is disabled
Questo messaggio nel risultato di uno strumento indica che Claude ha chiamato uno strumento di un server MCP che è disattivato. Claude Code non si è connesso al server, quindi lo strumento non è stato eseguito, e Claude ha ricevuto questo testo al posto di un risultato:
MCP server "<name>" is disabled — re-enable it via /mcp to use its tools
Cosa fare:
- Se intendevi disattivare il server, non devi fare nulla
- Se Claude ha bisogno degli strumenti del server, riattivalo da
/mcpnel prompt di Claude Code - In un'applicazione Agent SDK, riattiva il server chiamando
toggleMcpServer()in TypeScript conenabledimpostato sutrue, oppuretoggle_mcp_server()in Python conenabledimpostato suTrue
MCP tool call timed out with the server's question unanswered
In modalità non interattiva, un server MCP ha richiesto un input tramite elicitation durante una chiamata a uno strumento, e il limite di tempo della chiamata è scaduto prima che arrivasse una risposta:
MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit. Do not call this tool again in this turn. Tell the user that the server's question got no answer, and wait for their reply.
Prima della v2.1.310, il risultato terminava con timed out after <N>s e non diceva nulla sulla domanda.
Cosa fare:
- Configura un hook
Elicitationche risponda alle richieste del server - In un'applicazione Agent SDK TypeScript, fai in modo che la tua callback
onElicitationrestituisca la risposta prima che il limite scada - Per concedere più tempo a una risposta, imposta un
timeoutpiù lungo in millisecondi nella voce di configurazione del server, come"timeout": 600000per 10 minuti - Esegui invece l'attività in una sessione interattiva e rispondi tu stesso alla finestra di dialogo del server
Permission prompt tool returned an invalid result
Lo strumento che hai passato a --permission-prompt-tool ha restituito una risposta che Claude Code non è riuscito a leggere, quindi la chiamata allo strumento che la attendeva non è stata eseguita, anche se la risposta consentiva la chiamata:
Permission prompt tool returned an invalid result. Expected a single text block param with type="text" and a string text value.
Cosa fare:
- Restituisci un solo blocco di testo il cui testo sia
{"behavior": "allow"}oppure{"behavior": "deny", "message": "<reason>"}. Per modificare l'input, aggiungiupdatedInputall'oggettoallow. Dalla v2.1.86 alla v2.1.206, unallowrichiedeva"updatedInput": {}per mantenere l'input. - Non restituire alcun
structuredContent, che il tuo MCP SDK potrebbe aggiungere da solo. Ad esempio, registra lo strumento:FastMCPoMCPServerdamcp.server: constructured_output=FalseFastMCPdafastmcp: conoutput_schema=None, e restituisci una stringa- MCP TypeScript SDK: senza
outputSchema
- Se l'errore si presenta solo con input di circa 40 KB o più, non copiare l'input in
updatedInputo nelmessagedi un deny. Per modificare un input così grande, aumenta il limite di output del tuo strumento di prompt.
Agent would be spawned with zero tools
Nessuna voce nell'elenco tools del subagent corrispondeva a uno strumento utilizzabile, quindi Claude Code si è rifiutato di avviare il subagent: senza strumenti, non avrebbe potuto agire. Il messaggio raggruppa le tue voci in base a cosa è andato storto:
- Non riconosciuta: la voce non corrisponde a nessun nome di strumento, di solito per un errore di battitura come
Grpeinvece diGrep. - Non disponibile per i subagent: la voce nomina uno strumento reale che i subagent non possono usare. I subagent in background mantengono un insieme più ridotto di strumenti integrati, quindi una voce che solo un subagent in primo piano può usare finisce qui quando il subagent verrebbe eseguito in background, che è il comportamento predefinito. Se elenchi
Agent, il messaggio lo riporta invece nel gruppo successivo. - Nessuno strumento corrispondente in questa sessione: la voce è valida ma al momento nessuno strumento della sessione corrente le corrisponde, come
mcp__github__*senza alcun server MCP di GitHub connesso, oppureAgentper un subagent che ha raggiunto il limite di profondità.
Omettere il campo tools non provoca mai questo rifiuto. Se lasci vuoto l'elenco tools, o se disallowedTools ne rimuove tutte le voci, Claude Code salta anch'esso il rifiuto e avvia il subagent senza strumenti.
Prima della v2.1.208, il subagent veniva avviato senza strumenti e poteva restituire un risultato vuoto o confuso.
Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.
Cosa fare:
- Correggi ogni voce indicata dall'errore confrontandola con gli strumenti disponibili per i subagent
- Rimuovi le voci relative a strumenti che la sessione non ha, come gli strumenti MCP di un server non connesso
- Se la voce indica un server MCP connesso, confronta la voce con il nome di quel server così come lo scrivono i nomi degli strumenti del server, ad esempio
reports__v2inmcp__reports__v2__get_totals. Per quel server, scrivimcp__reports__v2__*, ovveromcp__seguito dal nome completo e da__*. Con la forma più brevemcp__reports, che indica un server chiamatoreports, il subagent non riceve nessuno degli strumenti direports__v2 - Per uno strumento che i subagent in background escludono, come
CronCreate, rimuovi la voce - Per mantenere invece uno strumento come
CronCreate, lascia che Claude attenda il subagent, poiché un subagent che Claude attende viene eseguito in primo piano e mantiene lo strumento. Se la definizione impostabackground: true, rimuovi prima quel campo, perché mantiene il subagent in background - Elimina il campo
toolsinvece di elencare gli strumenti per dare al subagent ogni strumento disponibile per i subagent - Per un elenco
toolsche contiene soloAgent, aumenta il limite di profondità oppure assegna all'agente almeno un altro strumento: Claude Code negaAgenta quel limite, quindi un elenco che non contiene nient'altro si risolve in nessuno strumento
File is covered by a Read deny rule
Lo strumento Edit o Write è stato chiamato su un percorso corrispondente a una regola di negazione Read, anche per creare un nuovo file in quel percorso. Entrambi gli strumenti modificano contenuti che Claude deve poter rileggere, quindi Claude Code rifiuta la chiamata prima di qualsiasi accesso al file. NotebookEdit non è coperto dalle regole di negazione Read. Prima della v2.1.228, la regola bloccava solo lo strumento Edit, e prima della v2.1.208, solo una regola di negazione Edit bloccava le modifiche.
File is covered by a Read deny rule in your permission settings and cannot be edited.
Quando Claude Code rifiuta lo strumento Write, il messaggio termina invece con and cannot be written.
Cosa fare:
- Se Claude deve poter modificare il file, rimuovi o restringi la regola di negazione
Readin/permissionso nelle impostazioni - Se il file deve rimanere intatto, mantieni la regola e aggiungi una regola di negazione
Editper lo stesso percorso per bloccare anche lo strumento NotebookEdit
Setting blocks writes outside the working directories
Quando Claude tenta di scrivere un file e la chiamata allo strumento fallisce con questo messaggio, il percorso si trova al di fuori delle directory di lavoro della sessione e permissions.blockWritesOutsideWorkingDirectories è attiva:
<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories. Ask the user to add the directory with /add-dir, or to remove that setting.
Claude Code rifiuta quella scrittura in ogni modalità di permesso. Il rifiuto può anche riportare:
<path>: Writes outside the working directories are blocked (permissions.blockWritesOutsideWorkingDirectories). Add the directory with /add-dir, or remove that setting.
Cosa fare:
- Se Claude non deve scrivere lì, non fare nulla
- Per consentire a Claude di scrivere in una directory esistente che contiene il percorso, esegui
/add-dir <directory>nel prompt di Claude Code, oppure passa--add-dir <directory>quando avvii Claude Code - Se il percorso è un file di impostazioni di Claude Code, come
~/.claude/settings.json, modificalo tu stesso. Aggiungere la sua directory con/add-dirnon serve, perché a quel punto Claude Code rifiuta la scrittura in quanto file di impostazioni. - Per mantenere una directory scrivibile in ogni sessione, elencala in
permissions.additionalDirectoriesnelle tue impostazioni utente o nelle impostazioni gestite - Per disattivare
permissions.blockWritesOutsideWorkingDirectories, rimuovila da ogni file di impostazioni che la imposta, poi riavvia Claude Code - Se nessuno dei tuoi file di impostazioni contiene
permissions.blockWritesOutsideWorkingDirectories, l'impostazione può provenire da--settingso da un'applicazione host. Claude Code rifiuta queste scritture anche finché non riesce a leggerepermissionsnelle tue impostazioni gestite. Chiedi a chi avvia o gestisce la sessione.
Writes to Claude Code settings files are blocked
Quando Claude tenta di scrivere un file e la chiamata allo strumento fallisce con questo messaggio, Claude Code considera il file uno dei propri file di impostazioni e permissions.blockWritesOutsideWorkingDirectories è attiva:
<path>: Writes to Claude Code settings files are blocked while permissions.blockWritesOutsideWorkingDirectories is on, because a settings file can lift that block. While a managed settings folder cannot be resolved, any .json file counts as one.
Cosa fare:
- Per modificare un'impostazione, modifica tu stesso il file di impostazioni
- Per consentire di nuovo a Claude di modificare i file di impostazioni, rimuovi
permissions.blockWritesOutsideWorkingDirectoriesda ogni file di impostazioni che la imposta, poi riavvia Claude Code - Se il file non è uno dei tuoi file di impostazioni, cercalo tra gli altri file che Claude Code considera file di impostazioni:
- Un file che hai passato a
--agentso--mcp-config: modificalo tu stesso - La copia memorizzata delle impostazioni gestite dal server e i file conservati insieme a essa: chiedi a un Owner di modificare l'impostazione nelle impostazioni gestite dal server.
- Qualsiasi file
.json, finché Claude Code non riesce a determinare dove porta la cartellamanaged-settings.d/: chiedi al tuo amministratore di controllare quella cartella
- Un file che hai passato a
Path cannot contain null bytes
L'argomento percorso o pattern di una chiamata a uno strumento per i file conteneva un byte nullo, che i file system e gli strumenti di ricerca non possono accettare. Read, Write, Edit, NotebookEdit, Glob e Grep effettuano questo controllo, e il messaggio indica lo strumento e l'argomento:
Read file_path cannot contain null bytes (\0). Remove the null byte and try again.
La chiamata allo strumento fallisce, Claude vede l'errore e il turno prosegue.
Cosa fare:
- Nulla da parte tua: l'errore viene restituito a Claude come risultato dello strumento, e il messaggio stesso dice a Claude di rimuovere il byte nullo e riprovare
Prima della v2.1.281, un byte nullo in un percorso di Read, Write, Edit o NotebookEdit terminava l'intero turno con un errore che indicava Path contains null bytes, e lo strumento non veniva mai eseguito.
Command contains an invisible character
Lo strumento PowerShell si è rifiutato di eseguire un comando che contiene U+FEFF o U+180E:
Error: command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run. Remove the character, keep the text that needs it in a file that the command reads, or write it as $([char]0xFEFF) or $([char]0x180E) inside a double-quoted string
Cosa fare:
- Per un comando scritto da Claude: non hai nulla da correggere. Il messaggio spiega a Claude come riscrivere il comando.
- Per un file di skill o di comando: il messaggio segue
No shell command in <name> was run. Consulta dove trovare il carattere e rimuoverlo.
Command approved before Claude Code restarted was not run
Un comando shell che hai approvato non è stato eseguito, e Claude riceve questo messaggio come risultato del comando:
This call was not run. The command was approved before Claude Code restarted, and Claude Code could not confirm that the shell is back in the directory where it was approved. That directory may be gone or replaced, lie outside the directory where the session started, or be one that Claude Code needs approval to enter or is not allowed to examine. The shell's directory is <directory>. If the command still makes sense, cd to the directory it was meant for and make the call again; it may need approval again.
La terza frase del messaggio può invece riportare It does not keep track of that directory across a restart in a session that has been in a worktree.
Cosa fare:
- Lascia che Claude prosegua, e rispondi alla richiesta di conferma se ti viene chiesto di approvare di nuovo il comando.
File is too large to read as an image
Claude ha tentato di leggere un file come immagine con lo strumento Read, e il file supera i 128 MB, il massimo che Read carica da un file immagine. Non è stato letto nulla, e Claude riceve questo errore come risultato dello strumento:
File is too large to read as an image (the limit is 128MB): <path>. If it is an image, resize it or export a smaller copy, then read that.
Quando il percorso è una pipe o un dispositivo invece di un file normale, Read si interrompe non appena sono arrivati più di 128 MB e restituisce invece questo errore:
Cannot read this as an image: <path> is a pipe or a device, not a regular file, and it sent more than 128MB without ending.
Cosa fare:
- Se Claude ha seguito il messaggio
File is too largee ha proceduto a ridimensionare l'immagine o a leggerne una copia più piccola, non fare nulla - Se Claude si è fermato all'errore, esporta tu stesso una copia inferiore a 128 MB, ad esempio a una risoluzione più bassa, e indica a Claude quel file
- Se il percorso era una pipe o un dispositivo, indica invece a Claude un file immagine normale
subagent_type is required
subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...
Claude ha chiamato lo strumento Agent senza un subagent_type, e questa sessione non ha alcun subagent general-purpose da usare come alternativa. Questo accade in due configurazioni:
CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1è impostata in modalità non interattiva, il che rimuove tutti i subagent integrati- L'agente del thread principale della sessione ha un'allowlist
tools: Agent(...)che escludegeneral-purpose
Cosa fare:
- Di solito nulla: il messaggio elenca i subagent di cui la sessione dispone, quindi Claude può riprovare con uno di essi
- Se Claude continua a fallire, aggiungi
general-purposeall'allowlisttools: Agent(...), oppure rimuovi l'impostazione diCLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS
Prima della v2.1.235, la stessa chiamata falliva con Agent type 'general-purpose' not found.
L'indice della memoria supera il limite di lettura
Claude ha scritto nell'indice MEMORY.md della memoria automatica lasciandolo oltre uno dei suoi limiti di lettura: 200 righe o 25KB. La scrittura è riuscita, ma all'avvio di una sessione vengono caricate solo le prime 200 righe o i primi 25KB, a seconda di quale limite si raggiunge per primo, quindi tutto ciò che supera il limite viene scartato ogni volta che l'indice viene letto. Prima della v2.1.210, un indice oltre il limite veniva troncato silenziosamente al caricamento successivo senza alcun segnale al momento della scrittura.
Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.
Ai fini dei limiti conta solo il contenuto che viene caricato. Il frontmatter YAML e i commenti HTML a livello di blocco vengono rimossi prima del caricamento dell'indice, quindi sono esclusi dalla misurazione. Prima della v2.1.211, Claude Code misurava il file grezzo, e il frontmatter o i commenti potevano provocare questo errore anche quando il contenuto caricato rientrava nei limiti.
Claude Code consegna l'errore a Claude dopo la scrittura invece di mostrarlo come banner nel tuo terminale, quindi potresti notarlo solo nella trascrizione.
Quando la scrittura di Claude porta il file vicino a un limite senza superarlo, Claude Code restituisce, invece di questo errore, un promemoria più blando per compattare l'indice.
Cosa fare:
- Lascia che Claude riscriva
MEMORY.md, o chiediglielo: una riga per voce, sposta i dettagli nei file tematici e unisci o elimina le voci obsolete - Per ridurre tu stesso l'indice, consulta Verificare e modificare la memoria
Il pattern di pkill corrisponde al processo di Claude Code
Un comando pkill in una chiamata allo strumento Bash ha usato un pattern, tipicamente con -f, che corrisponde al processo stesso di Claude Code, quindi Claude Code rifiuta il comando invece di lasciargli terminare la sessione. Claude Code verifica il pattern con pgrep prima di eseguire pkill e rifiuta quando il proprio ID di processo compare nel risultato. Il controllo viene eseguito solo su Linux; su macOS, pkill viene eseguito senza modifiche. Prima della v2.1.214, il comando veniva eseguito, e un pattern corrispondente terminava la sessione di Claude Code a metà turno.
pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.
Il rifiuto compare nel risultato dello strumento Bash invece che come banner nel tuo terminale, e di solito Claude corregge il comando da solo.
Cosa fare:
- Restringi il pattern in modo che corrisponda solo al processo desiderato, ad esempio il percorso completo del binario di destinazione invece di una breve sottostringa
- Per arrestare i processi avviati dalla shell corrente, usa
pkill -P $$con il pattern, che limita la corrispondenza ai processi figli della shell stessa
Failed to write to a teammate's inbox
Claude Code non è riuscito a scrivere un messaggio nel file della casella di posta di un compagno di squadra in ~/.claude/teams/{team-name}/inboxes/, quindi il destinatario non ha ricevuto nulla. La scrittura fallisce quando Claude Code non riesce a creare o aggiornare il file, ad esempio perché il disco è pieno, la directory non è scrivibile o un altro agente mantiene il lock della casella di posta troppo a lungo. Prima della v2.1.224, Claude Code segnalava il messaggio come inviato anche quando la scrittura falliva.
L'errore compare nel risultato dello strumento dell'agente mittente invece che come banner nel tuo terminale, e il suo testo dice a Claude di riprovare:
Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.
I messaggi strutturati del protocollo del team di agenti falliscono allo stesso modo, e l'errore indica il messaggio non consegnato: quando Claude Code non riesce a scrivere un'approvazione del piano, un rifiuto del piano, una richiesta di arresto o un rifiuto dell'arresto, l'errore riporta Failed to write the <message> to <name>'s inbox — nothing was sent. La plan approval in quell'elenco è la decisione del lead che approva il piano di un compagno di squadra; l'invio del piano da parte del compagno di squadra è il messaggio separato plan approval request. Quel messaggio e altri due messaggi del protocollo hanno un proprio testo e una propria conseguenza:
Failed to write the plan approval request to the lead's inbox — plan not submitted; try again: il piano del compagno di squadra non ha mai raggiunto il lead, e il compagno di squadra rimane in plan mode fino a un nuovo invio riuscitoThe permission request could not be delivered to the team lead (mailbox write failed): la richiesta di permesso del compagno di squadra non ha mai raggiunto il lead, quindi nessuno ha approvato la chiamata allo strumentoThe confirmation could not be written to team-lead's inbox.: l'approvazione dell'arresto in sé ha avuto effetto e il compagno di squadra termina; manca solo la conferma al lead
Quando sei tu a inviare un messaggio a un compagno di squadra, digitando @name seguito dal messaggio nella sessione del lead, lo stesso errore compare come notifica, Couldn't write to @name's inbox — message not sent. Try again., e Claude Code mantiene il tuo testo nella casella del prompt così puoi inviarlo di nuovo.
Cosa fare:
- Chiedi al mittente di inviare di nuovo il messaggio; la contesa per il lock della casella di posta è temporanea e si risolve con un nuovo tentativo
- Controlla lo spazio libero su disco e verifica che
~/.claude/teamse i file al suo interno siano scrivibili dal tuo utente
La definizione dell'agente del compagno di squadra non è stata ripristinata
Claude ha inviato un messaggio a un compagno di squadra arrestato di un team di agenti, e Claude Code lo ha riattivato senza riapplicare la definizione del subagent da cui era stato generato. L'avviso segue il resoconto della ripresa nel risultato dello strumento dell'agente mittente e indica il motivo. Quando il file di definizione proviene da una cartella senza fiducia salvata, riporta:
Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.
Il controllo si applica a una definizione nella directory .claude/agents/ del progetto o di una directory --add-dir, e accettare la finestra di dialogo di fiducia per una cartella padre non è sufficiente.
Cosa fare:
- Esegui
claudenella cartella indicata dal log di debug e accetta la finestra di dialogo di fiducia. La definizione viene riapplicata la prossima volta che Claude Code riattiva il compagno di squadra; non devi riavviare la sessione del lead - Oppure imposta la voce
hasTrustDialogAcceptedsutruein~/.claude.json, usando esattamente la chiaveprojects["<path>"]stampata dal log di debug
Only a teammate can approve a shutdown request
Claude Code ha rifiutato un'approvazione di arresto di un team di agenti perché la sessione che l'ha inviata non è in esecuzione come compagno di squadra. Non è stato inviato nulla e nulla è stato arrestato. Il rifiuto compare nel risultato dello strumento della sessione mittente:
Only a teammate can approve a shutdown request, and this session is not running as one. Nothing was sent. To shut down a teammate, send that teammate a shutdown_request message. The teammate is the one that approves it.
Cosa fare:
- Se il rifiuto è comparso nella tua sessione del lead, verifica prima se nel frattempo il compagno di squadra si è arrestato. Il rifiuto torna a Claude con l'istruzione di inviare invece una
shutdown_request, e il turno prosegue. In una sessione del lead interattiva,<name> has shut down.compare quando il compagno di squadra approva una richiesta di arresto. - Se il compagno di squadra è ancora in esecuzione, chiedi al lead nel suo prompt di arrestare il compagno di squadra, ad esempio
Ask the researcher teammate to shut down. Consulta Arrestare i compagni di squadra. - Se un ex compagno di squadra che hai ripreso tu stesso con
claude --resumeha ricevuto questo rifiuto, non è stato inviato nulla. Per terminare quella sessione, esegui/exitnel suo prompt.
A command-line deny rule cannot be handed to a teammate intact
Questo messaggio indica che Claude Code non ha avviato un compagno di squadra in riquadro diviso nel tuo team di agenti. Claude Code passa le regole di negazione da riga di comando del lead a un compagno di squadra in riquadro diviso sulla riga di comando del compagno stesso, e si ferma quando il compagno di squadra ne interpreterebbe una in modo diverso:
A command-line deny rule cannot be handed to a teammate intact, so the teammate would not enforce it — spawn aborted
Cosa fare:
- Esegui
/confignella sessione del lead e imposta Teammate mode suin-process, poi chiedi a Claude di avviare di nuovo il compagno di squadra. Non devi trovare la regola né riavviare il lead. Un compagno di squadra in-process viene eseguito con le regole di negazione attive del lead. - Anche le sessioni successive che prendono
teammateModedalle tue impostazioni utente avviano i compagni di squadra in-process, perché/configsalva lì la scelta. Per tornare ai riquadri divisi in una sessione successiva, imposta Teammate mode suauto,tmuxoiterm2, a seconda di quello che usavi prima.
Message too large for cross-session delivery
Il messaggio tra sessioni di Claude verso un'altra delle tue sessioni su questa macchina era troppo lungo per essere inviato. Claude Code lo ha rifiutato, e la sessione ricevente non ha ricevuto nulla. Il rifiuto compare nel risultato dello strumento della sessione mittente, non come banner nel tuo terminale. Indica entrambe le dimensioni e come far rientrare il messaggio nel limite:
Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.
Inviare di nuovo lo stesso testo fallisce allo stesso modo.
Cosa fare:
- Chiedi a Claude di riassumere il messaggio, oppure di mettere il contenuto voluminoso in un file e inviare il percorso del file
- Chiedi a Claude di suddividere il contenuto in più messaggi più brevi
Prima della v2.1.235, Claude Code segnalava come inviato un messaggio troppo grande. La sessione ricevente lo scartava senza leggerlo.
Too many messages to this session just now
Claude ha inviato una rapida raffica di messaggi tra sessioni a una delle tue sessioni su questa macchina, e la raffica ha raggiunto quanto la casella di posta di quella sessione accetta. Claude Code ha rifiutato l'invio successivo, e la sessione ricevente non ne ha ricevuto nulla. Il rifiuto compare nel risultato dello strumento della sessione mittente, non come banner nel tuo terminale:
Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.
Cosa fare:
- Di solito nulla: Claude raggruppa il contenuto rimanente in un unico messaggio, oppure attende prima di inviarne altri
- Se sei stato tu a sollecitare la raffica, chiedi a Claude di combinare ciò che resta in un unico messaggio
Prima della v2.1.236, Claude Code segnalava questi invii come riusciti. La sessione ricevente li scartava senza leggerli.
Cross-session message was dropped at the recipient session's inbox
Claude ha inviato un messaggio tra sessioni a un'altra delle tue sessioni su questa macchina, e la casella di posta di quella sessione lo ha scartato prima che Claude in quella sessione lo leggesse. La riga indica il destinatario e, quando il destinatario ha fornito un motivo, aggiunge il motivo dopo un trattino:
Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.
Una sola riga può riguardare più messaggi scartati. In tal caso inizia al plurale, ad esempio Cross-session messages (12) were dropped. Per scoprire a quale sessione appartiene un indirizzo, confrontalo con la riga Peer address che /status mostra in ciascuna sessione.
Dopo il trattino, la riga riporta uno o più di questi motivi:
its queue of undelivered peer messages was full: il destinatario conteneva già tanti messaggi non consegnati provenienti da altre sessioni quanti ne consente la sua codayou sent faster than that session accepts: i messaggi della sessione mittente sono arrivati più velocemente di quanto il destinatario accetti da un singolo mittenteit repeated your previous message: il messaggio era identico a uno che la sessione mittente aveva inviato a questo destinatario poco primaa relay loop between sessions was cut: il messaggio proseguiva una catena di sessioni che si scambiavano messaggi, e la catena era passata troppe volte per il destinatario o era diventata troppo lunga
Cosa fare:
- Presumi che il destinatario non abbia mai visto i messaggi scartati. Claude Code dice lo stesso a Claude, e gli dice di includere tutto ciò che è ancora rilevante in un unico messaggio successivo invece di inviare di nuovo subito
- Se le tue sessioni si inviano aggiornamenti frequenti, chiedi a Claude di inviare messaggi meno numerosi e più corposi, come un unico resoconto quando una sessione termina il proprio lavoro
- Per
a relay loop between sessions was cut, digita tu stesso l'istruzione successiva in una delle sessioni. Un messaggio che Claude invia in risposta a un tuo prompt avvia una nuova catena
Prima della v2.1.238, la sessione mittente non riceveva alcuna segnalazione quando la casella di posta del destinatario scartava un messaggio.
Refusing to send a cross-session message
Prima di scrivere un messaggio tra sessioni verso un'altra delle tue sessioni su questa macchina, Claude Code verifica che il socket della casella di posta della sessione di destinazione sia l'endpoint a cui il messaggio era indirizzato. Quando un controllo fallisce, Claude Code rifiuta l'invio nella sessione mittente, e la sessione di destinazione non riceve nulla. Per un messaggio inviato da Claude, il rifiuto compare nel risultato dello strumento della sessione mittente:
Failed to send to api-worker: Refusing to send: reply target is a symlink
Il testo dopo Refusing to send: indica il controllo non superato:
reply target is a symlink: nel percorso del socket della sessione di destinazione si trova un collegamento simbolico. Claude Code non consegna attraverso di esso, perché un collegamento in quel punto potrebbe reindirizzare il messaggio verso un endpoint che la sessione di destinazione non ha creato.cannot vet reply target: Claude Code non è riuscito affatto a ispezionare il percorso di destinazione, ad esempio perché la lettura è fallita con un errore di permesso.
Cosa fare:
- Di solito nulla: i controlli impediscono a un messaggio di raggiungere un endpoint diverso dalla sessione a cui era indirizzato, e non è stato inviato nulla
- Se
reply target is a symlinksi ripete per una sessione, verifica cosa ha creato un collegamento nel percorso del socket di quella sessione, mostrato nel suo/statussottoPeer address
Refusing to read, write, or search a path
Claude Code controlla le regole di permesso di un percorso di file, poi conferma di nuovo quella risoluzione quando lo strumento apre il file o avvia la ricerca. Quando non riesce a confermare che il percorso porti ancora alla posizione approvata dal controllo, Claude Code rifiuta l'operazione invece di seguirlo. Il rifiuto compare nel risultato dello strumento:
Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.
Ogni rifiuto indica il proprio motivo:
its symlink resolution changed after permission was checked: un collegamento simbolico lungo il percorso, o nella radice di una ricerca Grep o Glob, è stato sostituito tra il controllo dei permessi e l'operazione. In un rifiuto di lettura, la frase tra parentesi indica quale confronto è fallito.its parent-directory symlink resolution changed after permission was checked: una directory attraversata dal percorso di scrittura non si risolve più nella posizione approvatawhere it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve): Claude Code non è riuscito a seguire il percorso fino a una posizione finale su disco, ad esempio perché i collegamenti simbolici lungo di esso formano un cicloit is a symbolic link. Write to the link's target path instead: nella posizione di scrittura richiesta si trova essa stessa un collegamento simbolico, ad esempio unCLAUDE.mdche è un collegamento simbolico adAGENTS.md; il messaggio indirizza Claude verso la destinazione del collegamentoRefusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.: la stessa condizione rilevata quando un altro processo di scrittura apre il file, come una scrittura su un.mcp.jsonche è un collegamento simbolicoRefusing to write into symlinked directory: <path>: la directory che contiene il file è essa stessa un collegamento simbolico, ad esempio la directory.claude/di un progetto collegata a un'altra posizionea path one of its Read deny rules is written through changed while the search was being prepared. Retry.: una regola di negazioneReadper la ricerca indica un percorso che passa attraverso un collegamento simbolico, e quel collegamento è cambiato mentre Claude Code preparava la ricercait could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.: la radice della ricerca esiste ma non è stato possibile aprirla; il codice tra parentesi è l'errore del sistema operativoits permission check expired before it ran (too many concurrent file operations). Retry.: Claude Code ha rimosso il record di approvazione a causa di molte operazioni simultanee sui file prima che lo strumento lo usasse; riprovare esegue un nuovo controllo dei permessiripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration: Claude Code non è riuscito a risolvere il binariorgin un percorso assoluto, quindi rifiuta le ricerche al di fuori della directory di lavoro invece di eseguirne una non coperta dalle tue regole di negazione
Cosa fare:
- Di solito nulla: il rifiuto raggiunge Claude come risultato dello strumento, e l'operazione rifiutata non viene eseguita
- Se un rifiuto relativo a un collegamento simbolico si ripete su un percorso, individua cosa continua a riscrivere un collegamento in quel punto, come uno strumento di build o un file watcher, oppure chiedi a Claude di usare il percorso risolto del file invece di quello collegato
- Se questo rifiuto compare per ogni file mentre Claude Code è in esecuzione su Windows all'interno di un AppContainer o di una sandbox con token limitato, aggiorna alla v2.1.265 o successiva
- Se su macOS compare un rifiuto di lettura per un file che nessuno sta riscrivendo, come uno screenshot trascinato nel prompt, aggiorna alla v2.1.273 o successiva
- Per il rifiuto relativo a ripgrep, installa ripgrep con il tuo gestore di pacchetti in modo che
rgsi risolva in un percorso assoluto nelPATH, oppure limita le ricerche alla directory di lavoro
Prima della v2.1.251, Claude Code ricontrollava la risoluzione di un percorso solo per le scritture di file, quindi un collegamento sostituito dopo il controllo dei permessi poteva reindirizzare una lettura o una ricerca verso una posizione diversa senza alcun messaggio. Tra questi, solo i rifiuti di scrittura relativi alla directory padre, alla scrittura attraverso un collegamento simbolico e alla directory collegata compaiono nelle versioni precedenti.
Prima della v2.1.280, il rifiuto where it leads on disk could not be determined non compariva.
The search failed, so this is not a "no matches" result
Una ricerca Grep o Glob eseguita da Claude è fallita prima di restituire qualsiasi risultato, quindi non si sa se esistono corrispondenze. Il messaggio che Claude riceve al posto dei risultati inizia così:
The search failed, so this is not a "no matches" result: matches may exist. What happened to the search program (ripgrep) is not known, and no results were read. Run the search once more. If it fails again, tell the user that searches are failing.
Cosa fare:
- La prima volta che compare: nulla. Il messaggio chiede a Claude di cercare prima di nuovo.
- Se Claude dice che le ricerche stanno fallendo: acquisisci l'errore di ripgrep per una segnalazione di bug:
- Dalla tua shell, avvia una sessione con gli stessi flag della sessione in cui le ricerche sono fallite, più
--debug-file claude-debug.log - Invia a Claude la richiesta che ha portato alla ricerca fallita
- Se la ricerca fallisce di nuovo, trova la riga che contiene
rg error (signal=inclaude-debug.log - Includi quella riga quando segnali il problema
- Dalla tua shell, avvia una sessione con gli stessi flag della sessione in cui le ricerche sono fallite, più
Task output swap refused
Claude Code salva l'output di ogni comando Bash in un file all'interno della propria directory temporanea. Ogni volta che apre uno di questi file, verifica che il percorso porti ancora al file che ha creato, senza alcun collegamento simbolico, hard link aggiuntivo o directory spostata che lo reindirizzi. Questo messaggio indica che il controllo è fallito, quindi Claude Code ha rifiutato l'operazione invece di scrivere o leggere l'output attraverso quel percorso. Il messaggio compare nel risultato dello strumento Bash:
task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.
Il testo tra parentesi indica il controllo non superato. Motivi come output symlink was re-pointed, output file identity changed e not a regular file segnalano tutti la stessa condizione: qualcosa nel percorso di output o lungo di esso non è più il file creato da Claude Code. Solo alcuni motivi includono una frase To recover:.
Se il controllo fallisce mentre un comando è ancora in esecuzione, Claude Code arresta il comando, e il suo risultato riporta:
Command killed: its output file was replaced or could no longer be verified
Cosa fare:
- Aggiorna alla v2.1.260 o successiva. Le versioni precedenti a volte mostravano questo messaggio anche quando non era presente alcun collegamento o directory spostata
- Riavvia Claude Code con
CLAUDE_CODE_TMPDIRimpostata su una nuova directory - Oppure controlla la directory del tuo progetto all'interno della directory temporanea di Claude Code,
/private/tmp/claude-501/-Users-you-my-projectnel messaggio di esempio. Se quel percorso è un collegamento simbolico, o una directory che non dovrebbe trovarsi lì, rimuovi il collegamento o la directory stessi invece della destinazione del collegamento, e riavvia Claude Code - Se il rifiuto si ripete, un processo sta sostituendo, collegando o rimuovendo voci nella directory temporanea di Claude Code mentre la sessione è in esecuzione. Imposta
CLAUDE_CODE_TMPDIRsu una directory non gestita da nient'altro e riavvia
Disco pieno o quota del disco esaurita
Libera spazio, inode o quota del disco sul volume che contiene la directory temporanea di Claude Code. Una riga nel risultato di un comando che inizia con Disk full:, Disk quota used up: o Nearly out of inodes: indica quella directory.
Claude Code salva l'output di ogni comando Bash e PowerShell in un file all'interno di quella directory. Se non riesce a creare quel file perché il volume o la tua quota su di esso è pieno, il tuo comando non viene avviato, e il risultato che Claude legge è:
The command was not started: this computer's disk is full (ENOSPC) on the volume holding /tmp/claude-501 (Claude Code's temporary directory), so the file that captures command output could not be created there and nothing ran. Free space on that volume, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another one, then retry. If this is the user's own computer, tell them before deleting anything to make room.
I messaggi Disk full:, Disk quota used up: e Nearly out of inodes: seguono un comando che è stato eseguito ed è terminato con un codice diverso da zero. Ad esempio:
Disk full: this computer's volume holding /tmp/claude-501 (Claude Code's temporary directory) has 3 MB free, so whatever this command printed was lost and its own writes may have failed with "No space left on device". Free space on that volume, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another one, then retry. If this is the user's own computer, tell them before deleting anything to make room.
Cosa fare:
- Su macOS e Linux, esegui
df -h <dir>nella tua shell per vedere quale volume contiene la directory e quanto è pieno.df -i <dir>mostra quanti inode sono liberi.<dir>è la directory indicata dal tuo messaggio, come indf -i /tmp/claude-501 Disk full: this computer's volumeodisk is full (ENOSPC): elimina i file che non ti servono in qualsiasi punto di quel volumeDisk quota used up:,disk quota is used up (EDQUOT)oDisk full: a test write: elimina i tuoi file su quel volume, anche se mostra ancora spazio liberoNearly out of inodes:: elimina molti file su quel volume. Ognuno occupa un inode indipendentemente dalla sua dimensione, quindi conta il loro numero, non la loro dimensione- Oppure riavvia Claude Code con
CLAUDE_CODE_TMPDIRimpostata su una directory in un volume con spazio disponibile - Poi chiedi a Claude di eseguire di nuovo il comando
Prima della v2.1.309, i messaggi riportavano quanto segue, e si applicano gli stessi passaggi:
Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)Command output was lost: the temp filesystem at <dir> is fulloppure... is out of inodesThe command was not started: this computer's disk is full (ENOSPC), so the file that captures command output could not be created. Nothing ran., oppure lo stesso con(EDQUOT). Questa forma non indica alcuna directory: controlla il volume che contiene la directory temporanea di sistema, come/tmp, o la directory impostata inCLAUDE_CODE_TMPDIR
Prima della v2.1.305, un comando che Claude Code non riusciva ad avviare perché il disco era pieno restituiva solo il testo di errore del sistema operativo. Quel testo riportava, ad esempio, ENOSPC: no space left on device, open <path>.output.
git is not installed on this Mac
Questo messaggio indica che un passaggio in Claude Code aveva bisogno di git, e il git trovato è il sostituto fornito da Apple in /usr/bin/git. Gli strumenti per sviluppatori che forniscono git non sono installati.
Claude Code non avvia il sostituto e mostra invece questo testo, ad esempio all'interno di un messaggio più lungo:
git is not installed on this Mac. To install it, run xcode-select --install, then try again.
Cosa fare:
- Nel Terminale, esegui
xcode-select --install, completa l'installazione che avvia, poi riprova ciò che stavi facendo in Claude Code
File is not valid UTF-8
Claude ha usato lo strumento Edit o NotebookEdit su un file i cui byte non si decodificano come UTF-8, e Claude Code ha rifiutato la modifica. Non è stato scritto nulla, quindi il file è rimasto com'era. Questi strumenti salvano l'intero file come UTF-8, il che avrebbe trasformato ogni byte che non riuscivano a decodificare nel carattere di sostituzione U+FFFD. Il messaggio compare nel risultato dello strumento:
File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary. This tool saves the whole file as UTF-8, which would replace every byte it cannot decode with U+FFFD. Nothing was written. Make the change with a shell command that reads and writes the file in its own encoding, or ask the user whether to convert the file to UTF-8 first.
Anche un file che dovrebbe essere UTF-8 riceve questo messaggio quando contiene anche una sola sequenza di byte non valida, perché il controllo riguarda i byte del file nel loro insieme.
Cosa fare:
- Per mantenere il file nella sua codifica attuale, lascia che Claude apporti la modifica con un comando shell che legge e scrive il file in quella codifica, come gli indica il messaggio
- Per continuare a modificare il file con lo strumento Edit, convertilo in UTF-8, oppure correggi i byte non validi in un file che dovrebbe essere UTF-8, poi chiedi di nuovo a Claude di apportare la modifica
Prima della v2.1.296, Edit e NotebookEdit applicavano una modifica di questo tipo e salvavano ogni byte che non riuscivano a decodificare come U+FFFD. Su quelle versioni, aggiorna Claude Code.
Refusing to apply edits: a hook is configured for file edits in this session
Claude ha tentato di pubblicare un artefatto con un aggiornamento in un solo passaggio, una piccola modifica al file dell'artefatto inclusa nella pubblicazione, e Claude Code l'ha rifiutato. Non è stato pubblicato nulla e il file è invariato. Il messaggio compare nel risultato dello strumento Artifact:
Refusing to apply edits to <path>: a hook is configured for file edits in this session, so a publish can't apply edits here. Edit the file, then publish it without edits. Nothing was published.
Claude Code non consente gli aggiornamenti in un solo passaggio mentre la tua sessione ha un hook PreToolUse o un mod su Edit o Write.
Cosa fare:
- Nulla, se Claude ha proceduto a modificare il file e a pubblicarlo
- Se Claude si è fermato al messaggio, chiedi a Claude di modificare il file e pubblicarlo
- Se il messaggio continua a ripresentarsi, esci e riavvia Claude Code
- Se il messaggio si ripresenta anche dopo il riavvio, disattiva gli aggiornamenti in un solo passaggio
The source file is not valid UTF-8 text
Claude ha tentato di pubblicare un artefatto da un file i cui byte non si decodificano come testo, o il cui testo contiene già il carattere di sostituzione U+FFFD, quindi Claude Code ha rifiutato la pubblicazione prima di caricare qualsiasi cosa. Il messaggio compare nel risultato dello strumento Artifact e indica la prima posizione da correggere:
file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.
file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as �), then publish again. Nothing was published.
Claude Code decodifica il file come UTF-8, oppure come UTF-16 quando inizia con un byte-order mark UTF-16 little-endian. Quando un file UTF-16 di questo tipo non si decodifica, il primo messaggio indica UTF-16 e ti dice comunque di riscrivere il file come UTF-8. Quando altre posizioni seguono quella indicata, il messaggio aggiunge un conteggio come (+2 more) dopo la posizione.
Cosa fare:
- Di solito nulla: Claude riscrive il file e lo pubblica di nuovo
- Se il file è uno che hai scritto o esportato tu, salvalo di nuovo come UTF-8 e sostituisci ogni
U+FFFDcon il carattere perso da una modifica, un incolla o una conversione precedente - Per mostrare intenzionalmente un
U+FFFDnella pagina, scrivilo come�nell'HTML invece del carattere letterale
Prima della v2.1.267, Claude Code caricava un file di questo tipo senza controllarlo, ed era invece il server a rifiutare la pubblicazione.
Not published: that file is on a network share
Claude ha tentato di pubblicare un artefatto da un file in un percorso che indica un host di rete:
- Su Windows, un percorso
\\server\shareche non si trova sotto un'unità di rete mappata che hai passato all'avvio con--add-dir - Su macOS o Linux, un percorso di automount come
/net/<host>/page.html
La risoluzione di un percorso di questo tipo contatta l'host indicato, e su Windows quel contatto può inviare all'host le tue credenziali. Claude Code rifiuta di pubblicare il file e non lo legge. Il rifiuto compare nel risultato dello strumento Artifact:
Not published: that file is on a network share. Publish a file from this session's folders instead.
Cosa fare:
- Nulla, se non ti serve esattamente quel file: il messaggio dice a Claude di pubblicare invece un file dalle cartelle della sessione
- Per pubblicare esattamente quel file, copialo in una cartella su un disco locale e chiedi di nuovo
- Su Windows, per consentire a Claude di pubblicare direttamente dalla condivisione, mappala su una lettera di unità e passa l'unità quando avvii Claude Code. In PowerShell, ad esempio, esegui
net use Z: \\server\sharee poiclaude --add-dir Z:\. Claude potrà quindi pubblicare file da quell'unità. Aggiungere l'unità durante la sessione con/add-dirnon è sufficiente. - Su macOS o Linux, monta la condivisione in una directory, ad esempio una sotto
/mnto/Volumes, e pubblica da quel percorso invece che dal percorso di automount
Not published: Claude sent the same content again after a newer version of the artifact turned it away
Questa riga rossa sotto una chiamata ad Artifact indica che Claude Code ha bloccato una pubblicazione ripetuta: l'artefatto non è stato aggiornato, e non è stato scritto nulla nel file da cui Claude pubblica. Non devi fare nulla, a meno che Claude non si fermi senza pubblicare.
In precedenza nella sessione, Claude Code ha respinto una pubblicazione perché l'artefatto aveva una versione più recente, ad esempio una pubblicata da un editor o da un'altra delle tue sessioni. La parte finale della riga indica cosa deve fare Claude successivamente:
Not published: Claude sent the same content again after a newer version of the artifact turned it away. Claude needs to work from that newer version first.
Not published: Claude sent the same content again after a newer version of the artifact turned it away. The artifact hasn't changed since, so publishing it once more should go through.
Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away. Claude needs to work from that newer version first.
Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away. The artifact hasn't changed since, so publishing once more should go through.
Cosa fare:
- Termina con
Claude needs to work from that newer version first: se Claude si è fermato lì, chiedigli di recuperare la versione corrente dell'artefatto, integrarvi le sue modifiche e pubblicare di nuovo - Termina con
should go through: se Claude si è fermato lì, chiedigli di pubblicare di nuovo
Lettura di un file locale al di fuori delle cartelle connesse in una sessione Cowork
In una sessione Cowork in esecuzione sulla tua macchina nell'app Claude Desktop, Claude ha indicato un file locale per un artefatto. Claude Code non è riuscito a confermare che il file sia un file semplice all'interno delle cartelle connesse della sessione: il percorso si trova al di fuori di quelle cartelle, passa attraverso un collegamento simbolico o è scritto in un modo che può indicare un file diverso da quello che sembra. La lettura di un file di questo tipo richiede la tua approvazione, e in una sessione che non può mostrarti la scheda di approvazione, come una impostata per saltare tutte le approvazioni, Claude Code rifiuta la lettura.
Il rifiuto compare nel risultato dello strumento Artifact; quando non è stato possibile esaminare affatto il file, indica invece quell'errore:
Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.
cannot read file_path (ENOENT) — the file could not be examined, and no one can answer the approval card in this Cowork session. Check that the file exists as a plain file inside the connected folders, then retry with that path.
Cosa fare:
- Di solito nulla: il messaggio dice a Claude di usare invece un file semplice all'interno delle cartelle connesse
- Per inserire esattamente quel file nell'artefatto, copialo in una delle cartelle connesse della sessione come file normale, non come collegamento simbolico, e chiedi di nuovo
WebFetch cannot fetch localhost
Claude ha chiamato WebFetch con un URL il cui hostname non contiene un punto, come http://localhost:3000 o un semplice nome intranet come http://wiki/. WebFetch rifiuta questi URL prima di effettuare qualsiasi richiesta:
WebFetch cannot fetch localhost or other hostnames without a dot. To reach a local server, use Bash with curl instead.
Cosa fare:
- Di solito nulla: il messaggio indirizza Claude verso
curltramite lo strumento Bash, che può raggiungere server locali e intranet
Prima della v2.1.268, WebFetch segnalava questi URL con un generico errore Invalid URL.
Controllo di sicurezza del dominio di WebFetch non riuscito
Prima di recuperare un URL, WebFetch invia l'hostname dell'URL ad api.anthropic.com per verificarlo rispetto alla blocklist di sicurezza dei domini di Anthropic. Se il controllo non può essere completato, WebFetch non può confermare che il dominio sia sicuro, quindi non recupera la pagina e il risultato dello strumento riporta invece uno di questi messaggi:
The safety check for domain example.com is rate-limited (too many domain checks from this network; the limit is shared and can stay exhausted for minutes). Do not retry WebFetch in a loop or sleep to wait it out; continue without this page and report that its safety check was rate-limited. A single later attempt is fine; if that is rate-limited too, stop.
Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.
rate-limited: l'endpoint del controllo ha risposto con HTTP429. Il messaggio dice a Claude di proseguire senza la pagina e di riprovare al massimo una volta più tardi. Claude Code non memorizza nella cache un controllo non riuscito, quindi un recupero successivo di quel dominio esegue di nuovo il controllo. Se le sessioni sulla tua rete incorrono spesso in questo rate limit, puoi saltare il controllo conskipWebFetchPreflight: truenelle impostazioni.Unable to verify: la richiesta di controllo è fallita, è scaduta o ha ricevuto un altro stato di errore. Se la tua rete bloccaapi.anthropic.com, aggiungi quel dominio all'allowlist, oppure salta il controllo conskipWebFetchPreflight: truenelle impostazioni.
Prima della v2.1.286, il messaggio di rate limit riportava The safety check for domain example.com is temporarily rate-limited (too many domain checks from this network). Retry after about a minute; retrying sooner will fail the same way..
Prima della v2.1.285, un controllo soggetto a rate limit veniva segnalato invece con il messaggio Unable to verify.
Errori di sessione in background
Le sessioni in background vengono eseguite senza un terminale interattivo proprio, quindi i comandi che ne richiedono uno si comportano diversamente lì. Questi messaggi appaiono nella trascrizione di una sessione in background, nel terminale che si collega a una, nella sessione o shell da cui si invia, o, per le voci worktree-guard di seguito, in qualsiasi sessione isolata in un worktree o che esegue un subagent isolato da worktree; dove un messaggio è specifico di una superficie, la sua voce lo dice.
Comandi rifiutati in una sessione in background
I comandi che aprono una finestra di dialogo interattiva non possono farlo mentre nessun terminale è collegato a una sessione in background. /install-github-app, l'elenco delle impostazioni /mcp e le azioni di autenticazione nel menu del server MCP rispondono con un messaggio. Per /install-github-app e l'elenco delle impostazioni /mcp, la sessione appare anche sotto Needs input nella vista agente in modo che tu possa trovarla, collegarti ed eseguire di nuovo il comando. Mentre un terminale è collegato, questi comandi funzionano normalmente.
Prima della v2.1.216, la sessione non appariva sotto Needs input dopo il rifiuto di /install-github-app o dell'elenco delle impostazioni /mcp. Dalla v2.1.213 alla v2.1.215, i comandi funzionavano ancora mentre un terminale era collegato, e il messaggio di rifiuto ti diceva di collegarti ed eseguire di nuovo il comando. Dalla v2.1.208 alla v2.1.212, Claude Code li rifiutava anche mentre un terminale era collegato, con un messaggio come Can't open MCP settings in a background session; su quelle versioni, esegui invece il comando da una normale sessione claude, o esegui l'upgrade. Prima della v2.1.208, aprivano la loro finestra di dialogo all'interno della sessione in background. Solo nella v2.1.208, Claude Code ha anche rifiutato il selettore /model in una sessione in background, e /upgrade ha stampato l'URL di upgrade invece di aprire un browser.
La formulazione nomina il comando. L'elenco delle impostazioni /mcp riporta:
Can't open MCP settings while no terminal is attached to this background session. This session now shows "needs input" in agent view — open it and run /mcp to manage servers, or use `/mcp enable|disable|reconnect <server>` to steer without the panel.
Cosa fare:
- Collegati alla sessione dalla vista agente e esegui di nuovo il comando
- Oppure usa il modulo che il messaggio nomina, come
/mcp reconnect <server>,/mcp enable, o/mcp disable, che funzionano senza collegarsi
Scrittura o comando bloccato perché il percorso non può essere risolto in modo sicuro
Claude ha indirizzato un file o una directory di lavoro attraverso un'ortografia che la guardia di isolamento worktree non può risolvere in un'unica posizione verificabile. La guardia controlla le scritture e le directory di lavoro dei comandi in qualsiasi sessione isolata in un worktree, interattiva o in background, e in subagent isolati da worktree. Risolve i collegamenti simbolici prima di controllare che l'operazione non raggiunga il checkout condiviso, e quando la risoluzione fallisce, blocca l'operazione piuttosto che lasciarla atterrare lì. Il messaggio nomina le forme di percorso che rifiuta e come riprovare:
This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.
Un comando bloccato riporta la stessa causa per la sua directory di lavoro e termina con re-run the command from its direct symlink-free path. Prima della v2.1.217, la guardia confrontava le ortografie dei percorsi senza risolvere i collegamenti simbolici, quindi queste ortografie non erano bloccate e una scrittura instradata attraverso un collegamento simbolico poteva atterrare nel checkout condiviso.
Cosa fare:
- Di solito nulla: il messaggio completo va a Claude come errore dello strumento, e Claude riprova con il percorso diretto che nomina. Per una modifica di file bloccata, la vista della conversazione mostra solo una breve riga
Error editing file; il messaggio completo appare nella vista della trascrizione, che apri conCtrl+O. Un comando bloccato lo stampa nel suo output di comando. - Se il blocco si ripete sullo stesso file, il percorso probabilmente passa attraverso un collegamento simbolico sottoposto a commit il cui target contiene
.., comedocs/current -> ../README.md; chiedi a Claude di modificare il file target dal suo percorso reale invece che attraverso il link
Scrittura o comando bloccato perché il percorso nomina una posizione di rete
Claude ha indirizzato un file o una directory di lavoro attraverso un percorso che nomina un'unità che non è sulla tua macchina, una condivisione UNC come \\server\share\file o un percorso di automount /net, mentre il checkout della sessione è su un disco locale. La stessa guardia di isolamento worktree non può verificare che tale percorso rimanga fuori dal checkout condiviso, quindi blocca l'operazione. Isolare la sessione in un worktree non solleva il blocco. Il messaggio nomina la forma di percorso da usare invece:
This write was blocked because the path is network-shaped (a UNC share or /net automount spelling) while this session's checkout is local. Isolating cannot unblock it. If the file is genuinely inside the worktree /path/to/worktree, address it by its local, plainly-spelled path instead.
Un comando bloccato riporta la stessa causa per la sua directory di lavoro e termina con re-run the command from its local, plainly-spelled path. Prima della v2.1.217, la guardia confrontava solo il testo del percorso, quindi indirizzare un file all'interno del checkout attraverso un percorso UNC o /net non era bloccato.
Cosa fare:
- Di solito nulla: Claude riprova con l'ortografia locale che il messaggio chiede
Comando bloccato dai controlli di isolamento worktree
Claude ha eseguito un comando Bash, PowerShell o Monitor in una sessione isolata in un worktree, e Claude Code l'ha rifiutato per uno di questi motivi:
- Il comando verrebbe eseguito nel checkout principale o in un altro worktree. Il messaggio dice che la sua directory di lavoro
resolved to the shared checkoutois in a different worktree. - Un comando Bash o Monitor punta git al checkout principale.
- Claude Code non può verificare dal testo di un comando Bash o Monitor che qualsiasi git che il comando esegue rimanga all'interno del worktree. Un comando che non nomina mai git può comunque essere rifiutato per questo motivo, perché espandere un'indirezione di variabile come
${!name}o eseguire una sostituzione di funzione Bash come${ command; }produce un valore in fase di esecuzione che può essere esso stesso un comando.
Il messaggio dice is isolated in the worktree <path>, but this command, seguito dal motivo, come un comando il cui testo Claude Code non è riuscito a verificare:
This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.
Cosa fare:
- Git puntato al checkout principale, o testo del comando che non può essere verificato: nulla. Claude legge il messaggio e riscrive il comando nel modo che la sua frase finale chiede. Se un comando che hai chiesto continua ad essere rifiutato a causa di un'espansione nel suo testo, scrivi il valore contrassegnato letteralmente ed esegui git come suo proprio comando semplice dall'interno del worktree
- Per agire sul checkout principale di proposito, esegui il comando tu stesso in un terminale al di fuori della sessione
This session has no saved transcript
Ti sei collegato a una sessione che hai spostato in background con ← o /background e che si è interrotta prima di eseguire un proprio turno. Claude Code non ha trovato la conversazione da cui l'hai spostata, quindi la sessione non ha nulla da riprendere. Il messaggio termina con il comando claude respawn per questa sessione:
This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.
Aprire la stessa riga della sessione nella vista agente mostra invece Press enter again to restart this session fresh sotto l'elenco, e un secondo Enter sulla riga riavvia la sessione con una conversazione vuota.
Cosa fare:
- Per avviare da zero la sessione interrotta, esegui
claude respawn <id>con l'ID dal messaggio, o premiEnterdue volte sulla sua riga nella vista agente - Se la sessione ha finito una risposta e vedi ancora questo rifiuto su una versione precedente alla v2.1.214, una cartella illeggibile in
~/.claude/projectspotrebbe far sì che la scansione della trascrizione perda la conversazione salvata; aggiorna alla v2.1.214 o successiva, che tollera le cartelle illeggibili durante la scansione
This session is running in another terminal
Hai aperto la riga di una sessione interrotta nella vista agente, e la sua conversazione salvata è già aperta in un altro processo Claude Code attivo su questa macchina, quindi Claude Code rifiuta di avviare un secondo processo che scriverebbe sulla stessa trascrizione. Quale messaggio vedi dipende da cosa tiene la conversazione:
Can't open — this session is running in another terminal
This conversation is already open in another running Claude session — use that one, or close it and try again
running in another terminal: un processo diverso da una sessione in background tiene la conversazione, ad esempio un'esecuzione diclaude -p, o un terminale in cui l'hai ripresa conclaude --resumeo/resume. La riga mostra ancheOpen in a terminal.already open in another running Claude session: un'altra sessione in background la tiene.
Cosa fare:
- Per
running in another terminal: continua in quel terminale, oppure esci da quel processo o lascia che finisca, quindi riprova - Per
already open in another running Claude session: usa quella sessione, oppure interrompila e quindi riprova
Prima della v2.1.248, esisteva solo il rifiuto already open in another running Claude session: una conversazione ripresa in un terminale non contava come aperta, e aprire la riga avviava un secondo processo Claude Code che scriveva sulla stessa conversazione.
This session's saved conversation is no longer on disk
Hai aperto una sessione in background che è terminata mentre il servizio in background era spento, e la pulizia della trascrizione ha da allora rimosso la sua conversazione salvata, ad esempio dopo che la macchina è stata spenta per settimane. Aprire una tale riga normalmente riprende la sua conversazione salvata. Non avendo nulla da riprendere, Claude Code rifiuta piuttosto che rieseguire il prompt originale della sessione senza chiedere:
This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.
claude attach <id> stampa questo testo. Nella vista agente, il piè di pagina è più breve e termina con ctrl+x deletes the row.
Cosa fare:
- Esegui
claude rm <id>per eliminare la riga. Quando uno dei casi mantenuti si applica,claude rmmantiene invece la riga e il worktree e nomina il motivo - Per eseguire di nuovo il prompt originale della sessione come una conversazione nuova, esegui
claude respawn <id>
Prima della v2.1.248, aprire una tale riga rieseguiva il prompt originale della sessione invece di rifiutare, riportando in primo piano un compito vecchio di settimane.
Worktree has commits that are not pushed anywhere
Hai provato a eliminare una sessione in background il cui worktree contiene commit che Claude Code non può confermare siano salvati altrove. Claude Code mantiene il worktree e la riga della sessione piuttosto che distruggere i commit senza che tu li veda. claude rm nomina il branch e i commit non inviati con push, e dice come procedere:
kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”
2 unpushed commits on “claude/fix-login”: a1b2c3d “Fix login flow” and 1 more. They exist on no remote, so deleting the worktree would lose them.
push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef
Quando Claude Code non può riassumere i commit, la riga di dettaglio riporta invece The worktree has unpushed commits. Nella vista agente, la riga della sessione mostra not deleted con lo stesso motivo.
I commit su un remote non bloccano l'eliminazione. Nemmeno i commit sulla copia locale del branch predefinito del tuo remote origin, purché quel branch sia estratto nel tuo checkout principale, la directory del repository stesso piuttosto che un worktree.
Cosa fare:
- Per mantenere i commit, esegui il push del branch del worktree, o esegui il merge nel branch predefinito estratto nel tuo checkout principale, quindi elimina di nuovo la sessione
- Per scartare i commit, esegui il comando
claude rm <id> --discard-unpushedche il messaggio ha stampato, o premi di nuovoCtrl+Xdue volte sulla riga della sessione nella vista agente. Questo rimuove la sessione e il worktree insieme al suo branch, ai commit non inviati con push e a qualsiasi modifica non sottoposta a commit. Se l'eliminazione viene rifiutata di nuovo, segui il nuovo messaggio. - Quando il messaggio dice che il worktree è anche registrato da un'altra sessione terminata, eliminare di nuovo non lo scarta: esegui il push dei commit, quindi elimina di nuovo la sessione
Prima della v2.1.268, claude rm metteva il riassunto dei commit sulla riga kept stessa. Quando claude rm non poteva riassumere i commit, la riga kept riportava worktree has commits that are not pushed anywhere al posto del riassunto.
Prima della v2.1.260, il messaggio non nominava il branch o i commit, e non esisteva un modo per scartarli. Puoi comunque eliminare la sessione, perdendo le modifiche non sottoposte a commit ma mantenendo il branch e i commit. Esegui git worktree remove --force --force <path> con il percorso stampato dal rifiuto, quindi claude rm <id>. Git richiede --force due volte per un worktree bloccato.
Prima della v2.1.248, il branch predefinito estratto nel tuo checkout principale non contava: un branch di cui avevi già eseguito il merge lì attivava ancora questo rifiuto fino a quando i suoi commit non raggiungevano un remote.
Terminal host process died
Il terminale di ogni sessione in background viene eseguito in un processo host sotto il servizio in background, e quel processo è morto mentre il servizio manteneva ancora la sua connessione, quindi la sessione non poteva essere raggiunta.
Su Linux e WSL, il servizio in background controlla ogni processo host ogni pochi secondi, contrassegna la sessione come fallita quando il processo è uscito ma la sua connessione al servizio non si è mai chiusa, e mostra il motivo sulla sua riga nella vista agente:
terminal host process died — press Enter to restart
Dalla shell, claude attach <id> riavvia una sessione già contrassegnata come fallita per un host morto, e altrimenti stampa il motivo ed esce:
Couldn't attach to <id> — This session's terminal host process died (the conversation is saved) — run `claude attach <id>` again to restart it on a fresh host.
La conversazione è salvata in entrambi i casi.
Una riga che esegue un comando shell mostra invece terminal host process died — its output is gone; the command was not run again, e claude attach stampa This command's terminal host process died — its output is gone and the command was not run again. Claude Code non riesegue mai il comando per te.
Cosa fare:
- Nella vista agente, premi
Entersulla riga fallita; la sessione si riavvia su un nuovo processo host e la conversazione riprende - Dalla shell, esegui di nuovo
claude attach <id>. Claude Code stampaSession <id>'s terminal host died — restarting it on a fresh one…e riapre la sessione - Non puoi riavviare una riga di comando shell in questo modo; invia di nuovo il comando per rieseguirlo
Prima della v2.1.247, un processo host morto poteva superare ogni controllo di vitalità che il servizio in background eseguiva, quindi aprire la sessione mostrava opening… · esc to cancel indefinitamente e claude attach <id> aspettava senza segnalare un errore.
Session isn't responding
Hai aperto una sessione in background e il servizio in background ha accettato l'apertura, ma nessun output è arrivato per circa dieci secondi, quindi Claude Code conclude che il processo che trasmette il terminale della sessione non può fornire output, e termina il tentativo invece di aspettare.
Nella vista agente, Claude Code offre un riavvio nel piè di pagina:
Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).
Dalla shell, claude attach <id> stampa il motivo ed esce:
Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).
Claude Code non riavvia mai per te una riga che esegue un comando shell, perché un riavvio rieseguirebbe il comando.
Cosa fare:
- Nella vista agente, premi di nuovo
Entersulla stessa riga. Claude Code interrompe il processo che non risponde e riavvia la sessione, e la conversazione riprende. Nulla viene interrotto senza quella seconda pressione - Dalla shell, esegui
claude stop <id>, quindiclaude attach <id> - Per una riga di comando shell, premi
Ctrl+Xnella vista agente o eseguiclaude stop <id>per interromperla; invia di nuovo il comando per rieseguirlo
Session was stopped while the respawn was in flight
Hai aperto una sessione in background il cui processo non era in esecuzione, e mentre Claude Code la stava riavviando, un altro processo Claude Code l'ha interrotta, ad esempio claude stop in un altro terminale. Claude Code mantiene la sessione interrotta:
Session <id> was stopped while the respawn was in flight
Aprire una sessione che hai appena inviato, mentre il suo processo è ancora in avvio, attende invece il processo. Prima della v2.1.246, aprirla in quel momento poteva interromperla e mostrare questo messaggio.
Cosa fare:
- Se non hai interrotto la sessione, apri di nuovo la sua riga nella vista agente o esegui
claude respawn <id>per riavviarla - Se l'hai interrotta tu stesso, non rimane nulla da fare: la sessione rimane interrotta
Agente della sessione non più disponibile
Hai ripreso una sessione che stava eseguendo un agente personalizzato, avviato con --agent o l'impostazione agent, e Claude Code non ha trovato un agente con quel nome. Cerca prima nella directory originale della sessione, quando hai concesso la fiducia a quel workspace, quindi nella directory da cui riprendi. La sessione riprende comunque, ma con gli strumenti predefiniti, quindi le restrizioni sugli strumenti dell'agente non si applicano più:
This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.
L'avviso nomina solo le directory che Claude Code ha cercato, e appare nella conversazione ripresa sia che tu risvegli una sessione in background, esegua /resume o claude --resume, o riprenda in modalità non interattiva, dove va anche a stderr. Le sessioni che usano --input-format stream-json non lo mostrano, perché l'Agent SDK fornisce gli agenti dopo l'avvio.
Claude Code non salva il fallback nella sessione, quindi l'avviso si ripete a ogni ripresa finché non intervieni. L'agente claude integrato non attiva l'avviso, poiché ripiegare sul set di strumenti predefinito non cambia nulla per esso. Prima della v2.1.216, Claude Code continuava silenziosamente come l'agente predefinito, e la ricerca copriva solo la directory da cui riprendevi, quindi un agente con ambito di progetto andava perso a ogni ripresa da un'altra directory.
Cosa fare:
- Ricrea il file dell'agente in
.claude/agents/<name>.mdnel progetto della sessione, o in~/.claude/agents/<name>.mdper un agente personale, quindi riprendi di nuovo - Oppure riprendi con
--agent <name>nominando un agente che esiste, per eseguire invece la sessione come quell'agente - Se l'agente ha ambito di progetto e non hai concesso la fiducia alla directory originale della sessione, esegui Claude Code lì una volta, accetta la finestra di dialogo di fiducia, quindi riprendi di nuovo
This session restarted after its next /loop wakeup was due
Un /loop autoregolato in una sessione in background si è interrotto. Il processo della sessione è terminato mentre il loop attendeva il suo prossimo risveglio, e quel risveglio è diventato dovuto prima che si avviasse il processo successivo della sessione. Il risveglio mancato non viene eseguito in ritardo. L'avviso indica di quanto il risveglio era in ritardo quando la sessione si è riavviata:
This session restarted 12m after its next /loop wakeup was due, so that wakeup will not fire. The loop stays stopped until Claude schedules it again: reply to continue it.
Prima della v2.1.295, in questa situazione il loop si interrompeva senza alcun avviso.
Cosa fare:
- Per continuare il loop, rispondi alla sessione e dillo, ad esempio
keep the loop running. Claude legge l'avviso insieme alla tua risposta e può pianificare il prossimo risveglio - Se hai finito con il loop, non fare nulla. Si è già interrotto
No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder
La sessione in background che mostra questo messaggio non sta usando il tuo gateway LLM: non ha ricevuto l'indirizzo del gateway, quindi le sue richieste falliscono. Il messaggio appare nella conversazione al posto della risposta di Claude, con l'ID e la cartella della tua sessione già inseriti:
No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder. To fix, run `claude respawn abc12345` from ~/project in another terminal where your gateway is set, or set ANTHROPIC_BASE_URL and its API key or token in a settings file's env block.
Mentre sei collegato alla sessione, l'avviso sotto il suo prompt mostra la forma breve No LLM gateway: opened from another folder · respawn from ~/project.
Hai inviato, risvegliato o riavviato la sessione da una cartella diversa da quella che il messaggio nomina, mentre ANTHROPIC_BASE_URL era impostato sul tuo gateway. Per i casi in cui un gateway esportato nella shell raggiunge effettivamente una sessione in background, vedi Gateway LLM.
Cosa fare:
- Hai usato la vista agente in un progetto le cui impostazioni configurano il gateway: inserisci
ANTHROPIC_BASE_URLe la relativa chiave API o token nel bloccoenvdi un file di impostazioni. Usa~/.claude/settings.json, oppure.claude/settings.local.jsonnel progetto della sessione stessa, entrambi letti da una sessione riavviata con respawn. Quindi eseguiclaude respawn <id>nella tua shell da qualsiasi cartella. - Hai esportato il gateway nel tuo terminale: in un terminale in cui hai esportato le variabili del gateway, esegui
cdnella cartella che il messaggio nomina ed esegui il comandoclaude respawn <id>del messaggio. La sessione si riavvia dalla sua conversazione salvata.- Il gateway raggiunge la sessione solo quando il supervisor è stato a sua volta avviato da una shell che esportava lo stesso gateway. In caso contrario, riavvialo da quel terminale come descritto in Dispatch fails with
Could not resolve authentication method, quindi esegui di nuovo il comando di respawn.
- Il gateway raggiunge la sessione solo quando il supervisor è stato a sua volta avviato da una shell che esportava lo stesso gateway. In caso contrario, riavvialo da quel terminale come descritto in Dispatch fails with
Prima della v2.1.302, una sessione in background in questa situazione mostrava invece un errore di accesso come Not logged in · Please run /login, senza nominare la cartella.
Errori del launcher CLAUDE_CODE_PROCESS_WRAPPER
CLAUDE_CODE_PROCESS_WRAPPER è impostato, e il suo valore non può essere usato, quindi Claude Code rifiuta di avviare il processo interessato piuttosto che eseguirlo senza il launcher. I problemi di configurazione sono segnalati con un messaggio che inizia con il nome della variabile e dichiara il motivo, ad esempio:
CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file
Un launcher che si avvia ma esce senza sostituirsi con Claude Code fa fallire la sessione che stava avviando, e la riga della sessione nella vista agente riporta che il launcher must exec, not daemonize, seguito da qualsiasi cosa il launcher abbia stampato. Una sessione che non può avviarsi o raggiungere il servizio in background a causa del launcher riporta il problema del launcher come motivo all'interno di Couldn't reach the background service (...).
Cosa fare:
- Imposta la variabile sul percorso assoluto di un eseguibile che termina chiamando
exec "$@". Vedi il contratto del launcher per il contratto completo - Controlla
/status, che mostra il comando di avvio risolto nella sua voce Self-exec e avverte quando il servizio in background in esecuzione non corrisponde, o eseguiclaude daemon statusda una shell - Dopo aver corretto il valore nel blocco
envdelle impostazioni, riavvia il servizio in background conclaude daemon stop --anyin modo che il prossimo invio ne avvii uno tramite il wrapper
EUNKNOWN quando si avvia una sessione in background
Windows ha rifiutato di avviare un programma con un codice di errore che non ha un nome standard, quindi l'errore emerge come EUNKNOWN. La causa abituale è una politica di restrizione del software, come Group Policy o AppLocker, che blocca il programma in fase di avvio. L'errore appare quando avvii una sessione in background con /background o claude --bg:
Couldn't reach the background service (spawn background service: EUNKNOWN: unknown error, uv_spawn) — run 'claude daemon status'
Su alcuni account il messaggio dice daemon al posto di background service.
Su un'installazione npm, un EUNKNOWN che appare mentre npm install -g @anthropic-ai/claude-code sta sostituendo il binario ha la stessa causa di EACCES durante una reinstallazione e scompare quando riprovi dopo che l'installazione finisce.
Claude Code avvia il servizio in background attraverso PowerShell in modo che il servizio sopravviva alla chiusura del terminale, usando PowerShell 7 quando è installato e Windows PowerShell 5.1 altrimenti. Quando nessuno dei due PowerShell può essere eseguito, Claude Code avvia invece il servizio direttamente, quindi una politica che blocca solo PowerShell non causa questo errore.
Prima della v2.1.212, Claude Code usava solo Windows PowerShell 5.1 per avviare il servizio, quindi qualsiasi macchina dove Group Policy bloccava PowerShell 5.1 falliva con Couldn't start the session — EUNKNOWN: unknown error, uv_spawn, anche con PowerShell 7 installato.
Cosa fare:
- Se il messaggio riporta
Couldn't start the session, aggiorna alla v2.1.212 o successiva. Sulle versioni precedenti puoi anche eseguire primaclaude daemon runin un terminale separato, quindi avviare di nuovo la sessione in background. Quel comando esegue il servizio in background in primo piano nel terminale, quindi il servizio dura solo finché quel terminale rimane aperto. - Se un npm install stava sostituendo il binario, aspetta che finisca, quindi avvia di nuovo la sessione in background
- Se l'errore appare sulla v2.1.212 o successiva mentre nessun npm install è in esecuzione, verifica con il tuo amministratore Windows se una politica di restrizione blocca l'eseguibile Claude Code
- Se il servizio in background si interrompe quando chiudi il terminale, Claude Code l'ha avviato senza PowerShell. Installa PowerShell 7, o chiedi al tuo amministratore di sbloccare PowerShell, in modo che il servizio possa sopravvivere al terminale.
EACCES quando si avvia una sessione in background
Claude Code non poteva eseguire il suo stesso binario per avviare il servizio in background che ospita le sessioni in background. Su un'installazione npm, questo di solito significa che npm install -g @anthropic-ai/claude-code stava sostituendo il binario in quel momento, sia che l'abbia eseguito tu sia che l'abbia fatto l'auto-updater. L'errore appare quando apri una sessione dalla vista agente:
Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'
Quando avvii una sessione con /background o claude --bg, lo stesso motivo appare all'interno di Couldn't reach the background service (...). Durante la stessa finestra di reinstallazione l'errore può invece nominare un altro codice, come ENOENT o ENOEXEC, o EUNKNOWN o EPERM su Windows; un EUNKNOWN che persiste attraverso i nuovi tentativi ha una causa diversa.
Su un'installazione npm, Claude Code aspetta che la reinstallazione finisca e riprova da solo: fino a dieci secondi, e fino a due minuti mentre un npm install di Claude Code è visibilmente ancora in esecuzione sulla macchina, il che copre un altro processo Claude Code che scarica un aggiornamento. Quando l'installazione dura più di quella attesa, l'errore nomina l'aggiornamento invece del semplice codice di errore:
Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes
Prima della v2.1.257, l'attesa si fermava a dieci secondi in ogni caso, quindi questo errore appariva mentre un altro processo Claude Code stava ancora scaricando un aggiornamento. Prima della v2.1.246, Claude Code falliva subito, senza aspettare.
Cosa fare:
- Aspetta alcuni secondi, quindi apri di nuovo la sessione o invia di nuovo. Quando il messaggio dice che Claude Code è in fase di aggiornamento, riprova dopo che l'aggiornamento finisce.
- Se l'errore persiste mentre nessun npm install è in esecuzione, il tuo utente non può eseguire il binario installato. Controlla i suoi permessi e quelli della sua directory, o reinstalla Claude Code.
Il servizio in background è uscito prima di diventare raggiungibile
Il processo che Claude Code ha avviato come servizio in background è uscito prima di accettare connessioni, quindi Claude Code non poteva aprire la tua sessione. Quando il servizio ha stampato un errore prima di uscire, il motivo tra parentesi fornisce il codice di uscita o il segnale e la prima riga che il servizio ha stampato, che nomina cosa l'ha fermato:
Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'
Quando apri una sessione dalla vista agente, lo stesso motivo segue Couldn't start the background service —. Quando il servizio non ha stampato nulla prima di uscire, il messaggio dice invece nothing on stderr.
Claude Code riporta l'errore con la riga di errore del servizio. Prima della v2.1.246, l'errore emergeva solo dopo un'attesa di 45 secondi, come background service did not become reachable within 45s, senza la riga di errore del servizio.
Due motivi citati hanno cause note:
Error: claude native binary not installed.: un npm install stava sostituendo il binario Claude Code in quel momento, quindi il servizio ha eseguito invece il placeholder di npm. Riprova dopo che l'installazione finisce; se la riga persiste senza nessuna installazione in esecuzione, completa l'npm install. Prima della v2.1.257, un auto-aggiornamento npm su macOS produceva questo errore a ogni avvio durante la finestra di installazione.nothing on stderrcon codice di uscita 1, a ogni avvio, su Windows:daemon.locknomina un processo a cui Claude Code non può né inviare segnali né dimostrare che sia terminato, quindi ogni nuovo servizio conclude che un altro detiene il lock ed esce. Un lock il cui scrittore Claude Code può dimostrare che sia terminato viene sostituito automaticamente e non produce questo errore. Quando l'errore si ripete a ogni avvio, elimina~/.claude/daemon.lock, quindi apri di nuovo la sessione o invia di nuovo. Prima della v2.1.257, tale lock bloccava ogni avvio fino a quando non eliminavi il file.
Cosa fare:
- Se il messaggio cita una riga, correggi quello che nomina, quindi apri di nuovo la sessione o invia di nuovo. Il prossimo tentativo avvia di nuovo il servizio
- Esegui
claude daemon statusper controllare se un servizio è in esecuzione ora
La directory di lavoro non esiste più quando si avvia una sessione in background
La directory in cui hai avviato una sessione in background è stata rimossa mentre la sessione era in avvio. Claude Code non avvia la sessione, e il messaggio nomina la directory mancante:
Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)
Prima della v2.1.257, la sessione sembrava avviarsi e poi appariva nella vista agente come una riga fallita con lo stesso motivo.
Prima della v2.1.281, questo messaggio appariva anche quando la directory era già scomparsa prima che avviassi la sessione. Quel caso riporta could not be resolved on disk.
Cosa fare:
- Ricrea la directory che il messaggio nomina, o invia da una directory che esiste, quindi riprova
This forked session could not be started
Hai creato un fork di una sessione Remote Control da claude.ai, e Claude Code non è riuscito a completare l'avvio della sessione in background che esegue il fork sulla tua macchina. Questo avviso appare nella trascrizione della sessione creata con il fork:
This forked session could not be started. Fork the conversation again to retry.
La sessione da cui hai creato il fork continua a essere eseguita.
Cosa fare:
- Torna alla sessione da cui hai creato il fork e creane di nuovo un fork quando la sessione è inattiva
Workspace non attendibile quando si invia una sessione in background
Hai avviato o riavviato una sessione in background in una directory a cui non hai concesso la fiducia, e la finestra di dialogo di fiducia del workspace non poteva apparire per chiedertelo. Claude Code non avvia la sessione:
Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.
Da un terminale nella directory della sessione stessa, lo stesso comando mostra invece la finestra di dialogo di fiducia e avvia la sessione una volta che accetti. Questo messaggio appare dove nessuna finestra di dialogo può apparire, come in uno script, o quando riavvii una sessione da una directory diversa dalla sua.
Due varianti nominano una causa diversa:
The home directory is trusted one session at a time: la directory della sessione è la tua directory home. Claude Code non salva mai la fiducia per la directory home, quindi accettare la finestra di dialogo lì in una sessione precedente non conta.<path> could not be resolved on disk: Claude Code non poteva trovare la directory della sessione su disco.
Prima della v2.1.286, su Windows, questo messaggio poteva apparire anche in una directory a cui avevi già concesso la fiducia, se il suo record di fiducia era stato salvato con il percorso in maiuscole/minuscole diverse. Aggiorna alla v2.1.286 o successiva.
Cosa fare:
- Esegui
claudenella directory che il messaggio nomina e accetta la finestra di dialogo di fiducia, quindi esegui di nuovo il comando - Per il messaggio della directory home, esegui il comando da un terminale nella tua directory home in modo che la finestra di dialogo possa apparire, o avvia invece la sessione da una directory di progetto
- Per il messaggio
could not be resolved on disk, ricrea la directory, o avvia una nuova sessione da una directory che esiste
Errori del wrapper e dell'IDE
Questi errori provengono dal programma che ha avviato Claude Code per voi, come un'estensione IDE o un'applicazione Agent SDK, piuttosto che da Claude Code stesso.
Il processo Claude Code è uscito con codice N
Il processo claude sottostante è uscito con un codice diverso da zero. Il codice di uscita da solo non dice cosa è fallito: l'errore reale si trova nell'output del processo stesso, che il wrapper allega quando lo ha catturato e altrimenti mantiene nei suoi log.
Error: Claude Code process exited with code 1
Su Windows, la build nativa può uscire con codice 4294967295 subito dopo il completamento di un turno. Quando quell'uscita si verifica al confine di un turno, senza alcun messaggio in attesa e nessuna attività in background in esecuzione, l'estensione VS Code chiude la sessione silenziosamente invece di mostrare questo errore. Il vostro messaggio successivo riprende la conversazione.
Prima della v2.1.273, l'estensione mostrava l'errore per quell'uscita ad ogni confine di turno, anche se nulla era andato perso.
Cosa fare:
- In VS Code, seguite il collegamento View output logs mostrato con l'errore per vedere il guasto sottostante
- In un'applicazione Agent SDK, catturate l'errore intorno al vostro ciclo di messaggi. Le voci sotto Uscita del processo CLI coprono ciò che il vostro codice riceve in ogni linguaggio SDK.
- Eseguite
claudein un terminale nello stesso progetto. Il guasto di solito si riproduce lì con il suo messaggio di errore reale, che potete quindi cercare su questa pagina. - Eseguite
claude doctorin un terminale per verificare l'installazione e la configurazione
Could not locate the Claude CLI on PATH
L'estensione VS Code mostra questo errore su Windows quando aprite Claude Code nel terminale integrato, la shell del terminale è PowerShell e l'estensione non riesce a trovare l'eseguibile claude installato su PATH. L'estensione si rifiuta di avviare Claude Code finché non trova il claude installato su PATH.
Failed to run Claude Code: Error: Could not locate the Claude CLI on PATH. Launching by name in a PowerShell terminal would run a 'claude' from the open folder instead of the installed CLI, so the launch was blocked. Make sure the Claude CLI's install directory is on your system PATH (not only your PowerShell profile), then restart VS Code and try again. VS Code reads PATH when it starts, so PATH changes take effect only after a restart.
Cosa fare:
- Aprite una nuova finestra PowerShell al di fuori di VS Code ed eseguite
where.exe claude. Se non stampa un percorso, la CLI non è su PATH: aggiungete la sua directory di installazione seguendo Verifica il tuo PATH. Se stampa un percorso, la voce proviene dal vostro profilo PowerShell o da una modifica di PATH che VS Code non ha ancora raccolto; i prossimi due passaggi coprono questi casi. - Impostate la voce PATH come variabile di ambiente utente o di sistema, non nel vostro profilo PowerShell. L'estensione non esegue il vostro profilo, quindi una modifica di PATH che vive solo lì non la raggiunge mai.
- Riavviate VS Code dopo aver modificato PATH. L'estensione controlla il PATH che VS Code ha catturato all'avvio, quindi una modifica di PATH ha effetto solo dopo un riavvio.
The Claude Code program for this computer could not be found
L'estensione VS Code ha cercato la copia di Claude Code inclusa al suo interno e non ne ha trovata nessuna compilata per il tuo computer. Il messaggio indica la build di cui il tuo computer ha bisogno:
The Claude Code program for this computer, the Linux (linux-x64) build, could not be found.
Cosa fare:
- Se il messaggio indica quale build contiene l'estensione, hai il pacchetto dell'estensione per un'altra piattaforma: installa il pacchetto realizzato per la build indicata nel messaggio
- Se il messaggio non indica quale build contiene l'estensione, reinstalla l'estensione Claude Code dalla vista Estensioni del tuo editor
- In alternativa, in entrambi i casi, imposta
claudeCode.claudeProcessWrappersu un binarioclaudeinstallato separatamente
Prima della v2.1.290, questo errore appariva come Unsupported platform: <platform>-<arch>. No compatible Claude Code binary found.
The connection to Claude Code ended before this message completed
L'estensione VS Code ha inviato il vostro messaggio al processo claude, e la connessione è terminata senza un errore prima che il processo lo riconoscesse o lo completasse. L'estensione non può dire se il messaggio è stato elaborato, quindi vi chiede di inviarlo di nuovo:
The connection to Claude Code ended before this message completed — it may not have been processed, so please send it again.
Cosa fare:
- Inviate il messaggio di nuovo. Il messaggio successivo avvia un nuovo processo
claudeche riprende la conversazione. - Se si ripete, eseguite
claudein un terminale nello stesso progetto. Un guasto che continua a terminare il processo di solito si riproduce lì con il suo messaggio di errore reale.
Avvisi e errori di Rewind
Questi messaggi provengono da un ripristino del codice /rewind. Restored the code, but skipped N files è un avviso che indica che Claude Code ha saltato alcuni percorsi. No files were restored è un errore che significa che non ha ripristinato nulla.
Restored the code, but skipped files
Un ripristino del codice /rewind ha saltato uno o più percorsi tracciati invece di scrivere o eliminare attraverso di essi. Claude Code salta un percorso quando:
- è, o è diventato, un symlink, hard link, o altro file non regolare
- la sua directory è cambiata dal checkpoint
- il suo backup non può essere letto in modo sicuro
I percorsi saltati mantengono i loro contenuti attuali. Prima della v2.1.216, /rewind scriveva e eliminava attraverso i link nei percorsi tracciati e non segnalava un ripristino parziale.
Restored the code, but skipped 2 files: the tracked path is (or became) a link or other non-regular file, its directory changed since the checkpoint, or its backup could not be safely read. Skipped files were left untouched — run with --debug for the paths.
Cosa fare:
- Identificare quali file sono stati saltati in modo da poter gestire ognuno con i passaggi seguenti. Il messaggio fornisce solo un conteggio; il log di debug in
~/.claude/debug/<session-id>.txtnomina ogni percorso saltato mentre il ripristino viene eseguito, quindi attivare la registrazione di debug con/debugprima del prossimo ripristino. Su macOS o Linux, è possibile invece trovare i link direttamente:find . -type lper i symlink efind . -type f -links +1per i file con hard link. - Se un file saltato è un link che hai creato intenzionalmente, come un file di configurazione gestito da un gestore dotfile o un file con hard link da strumenti come pnpm, il rewind ha lasciato i suoi contenuti intatti. Per annullare le modifiche della sessione ad esso, chiedi a Claude di invertire la modifica o modifica il file tu stesso
- Se non hai creato il link, ispeziona il percorso prima di fidarti dei suoi contenuti
No files were restored
Claude Code mostra questo messaggio quando ripristini il codice con /rewind e non riesce a ripristinare nessuno dei file in quel checkpoint. Per ogni file, il backup che Claude Code ha salvato prima di modificarlo è mancante, oppure Claude Code non ha potuto scrivere o eliminare il file.
Failed to restore the code:
No files were restored: 1 file failed (backup missing, or the file could not be updated)
Claude Code elimina i backup di una sessione nella retention sweep, per impostazione predefinita circa 30 giorni dopo l'ultimo salvataggio della sessione. Se riprendi una sessione dopo questo periodo, /rewind elenca ancora i suoi checkpoint, ma il ripristino a uno di essi può fallire con questo errore. Se il messaggio dice anche N paths were skipped for link safety, vedi Restored the code, but skipped files per quei percorsi.
Quando esegui il fork di una sessione, ad esempio con --fork-session o /branch, Claude Code copia i backup della sessione originale nel fork. Quando Claude Code non riesce a copiare un backup, ad esempio perché il disco è pieno, quel backup è mancante nel fork. Il ripristino a un checkpoint che ne ha bisogno può fallire con questo errore.
Cosa fare:
- Annulla le modifiche in un altro modo: chiedi a Claude di invertire le sue modifiche, o ripristina i file dal controllo versione. Quando i backup sono spariti, l'esecuzione di
/rewinddi nuovo fallisce allo stesso modo. - Se Claude Code non ha potuto scrivere o eliminare un file, correggi ciò che blocca la scrittura, come i permessi dei file, quindi esegui
/rewinddi nuovo. - Per mantenere i backup più a lungo nelle sessioni future, aumenta
cleanupPeriodDays.
Prima della v2.1.260, Claude Code saltava silenziosamente i file i cui backup erano mancanti, e il rewind sembrava avere successo.
Avvisi di salvataggio della sessione
Claude Code mostra questi avvisi su una riga persistente sotto la casella di input quando non sta salvando la trascrizione della sessione. La sessione continua a funzionare comunque; gli avvisi indicano che la sessione potrebbe mancare da --resume in seguito.
I salvataggi della trascrizione stanno fallendo
Claude Code salva la trascrizione su disco mentre lavori, e i suoi salvataggi nel file della trascrizione stanno fallendo. Il messaggio nomina la causa con il codice di errore sottostante, ad esempio un disco pieno:
Transcript writes are failing (disk full — ENOSPC) · recent messages may not be saved for resume
L'avviso appare in diversi punti a seconda dell'errore:
- Al primo fallimento per condizioni che non si risolvono da sole: un disco pieno, un quota disco superata, un filesystem di sola lettura, un percorso che supera il limite di lunghezza del filesystem, o, su macOS e Linux, un errore di permesso
- Dopo fallimenti ripetuti che durano almeno un minuto per tutto il resto, inclusi errori di permesso su Windows, dove una scansione antivirus può far fallire un singolo salvataggio che poi riesce al nuovo tentativo
Prima della v2.1.217, Claude Code scartava i salvataggi falliti senza un avviso, e un successivo --resume mancante di messaggi recenti era il primo segno.
Cosa fare:
- Correggere la condizione che il codice di errore nomina: liberare spazio su disco per
ENOSPC; aumentare o cancellare la quota perEDQUOT; ripristinare l'accesso in scrittura alla posizione della trascrizione perEACCES,EPERM, oEROFS - L'avviso si cancella da solo al prossimo salvataggio riuscito; non è necessario riavviare
- I messaggi inviati mentre l'avviso era visualizzato potrebbero comunque mancare quando riprendi la sessione in seguito
Il salvataggio della trascrizione è disattivato perché CLAUDE_CODE_SKIP_PROMPT_HISTORY è impostato
Questa sessione è stata avviata con CLAUDE_CODE_SKIP_PROMPT_HISTORY impostato, quindi Claude Code non scrive alcuna trascrizione o cronologia dei prompt per essa:
Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set · --resume will not find this session; if unintended, unset it and restart
La variabile è un'esclusione intenzionale per sessioni script effimere, ma può anche raggiungere una sessione attraverso un profilo shell, uno script wrapper, o un processo padre che l'ha esportata.
Cosa fare:
- Se hai impostato la variabile di proposito, non è necessaria alcuna azione; l'avviso conferma che la sessione non apparirà in
--resume,--continue, o nella cronologia della freccia su - Se non l'hai fatto, rimuovi la variabile dalla shell o dallo script che avvia
claude, quindi avvia una nuova sessione. I messaggi della sessione corrente non vengono salvati retroattivamente.
Il salvataggio della trascrizione è disattivato a causa di un marcatore CLAUDE_CODE_CHILD_SESSION ereditato
Claude Code imposta CLAUDE_CODE_CHILD_SESSION nei sottoprocessi che genera, e tratta una sessione interattiva che lo eredita come annidata: Claude Code non salva alcuna trascrizione per essa, quindi le sessioni che Claude stesso avvia non riempiono il tuo elenco --resume. Questo avviso significa che la tua sessione corrente ha ereditato il marcatore:
Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker · restart with CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1 to keep future transcripts
L'avviso è previsto quando hai eseguito claude dall'interno di un'altra sessione Claude Code; segnala una classificazione errata quando il marcatore è trapelato attraverso un intermediario di lunga durata, ad esempio un terminale, una sessione screen, o un launcher che una sessione Claude Code ha originariamente avviato.
All'interno di tmux, Claude Code rileva un marcatore che è arrivato attraverso l'ambiente globale del server tmux e continua a salvare, quindi questo avviso non appare per quel caso.
Cosa fare:
- Se hai avviato questa sessione dall'interno di un'altra sessione Claude Code di proposito, non è necessaria alcuna azione
- Se questa è una sessione di primo livello, esci e riavvia con
CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1impostato. Il salvataggio si applica dal riavvio, quindi i messaggi inviati prima non vengono salvati. - Per correggere i futuri avvii dallo stesso terminale o launcher, rimuovi
CLAUDE_CODE_CHILD_SESSIONdal suo ambiente
Avvisi di configurazione
Per trovare un avviso che Claude Code ha mostrato all'avvio in una sessione interattiva, guarda prima sotto il banner di avvio, poi nel log di debug:
- Riga sotto il banner di avvio: alcuni avvisi sulle regole di permesso, come
⚠ Deny rule Bsh matches no tool · check for typos - Log di debug: Claude Code conserva questo log solo in modalità debug. Per leggere gli avvisi che contiene, avvia Claude Code dalla tua shell con
claude --debug-file <path>, poi apri il file in quel percorso.
In modalità non interattiva con output di testo, al di fuori di una sessione in background, cerca gli avvisi di avvio su stderr.
Prima della v2.1.305, cerca su stderr anche in una sessione interattiva, inclusi gli avvisi sulle regole di permesso che ora appaiono come righe sotto il banner.
Claude Code è uscito dopo un errore di interfaccia irrecuperabile
Claude Code stampa questo messaggio quando esce perché la sua interfaccia terminale ha riscontrato un errore da cui non può recuperare, in uno dei due renderer. La seconda frase appare solo quando l'errore si è verificato mentre il renderer fullscreen si stava avviando:
Claude Code exited after an unrecoverable interface error (<error>). It happened while the fullscreen renderer was starting, so the next launch will use the classic renderer (CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 forces that any time).
Cosa fare:
- Avviare di nuovo Claude Code. Per riprendere la conversazione, eseguire
claude --resumenella stessa directory. - Se il messaggio nomina il renderer fullscreen, Fullscreen rendering dice cosa fa il prossimo avvio, che dipende da come avete attivato fullscreen, e come provare di nuovo fullscreen o mantenere il renderer classico.
Prima della v2.1.236, Claude Code usciva senza stampare un messaggio dopo questo tipo di errore.
Le descrizioni degli agenti superano il limite di 15.0k token
Claude Code mostra questo avviso come avviso di avvio nella vista della conversazione piuttosto che su stderr. Le descrizioni combinate dei vostri subagenti, ad eccezione di quelli incorporati, superano 15.000 token come Claude Code le stima. Ogni agente conta il suo nome più il suo frontmatter description. Claude Code carica ogni agente indipendentemente dal fatto che il totale superi il limite, quindi l'avviso non cambia cosa viene caricato.
Agent descriptions are over the 15.0k-token limit (~16.2k tokens) · ask Claude to trim agent descriptions in .claude/agents/
Cosa fare:
- Accorciare il frontmatter
descriptiondei vostri file di agente, o chiedere a Claude di tagliarli per voi. - Rimuovere i file di agente che non usate più.
Hook needs quotes around a path with a space
Questa notifica nella vista della conversazione significa che lo script di un hook non è stato eseguito perché il suo percorso contiene uno spazio e non è racchiuso tra virgolette. Si tratta di un hook asyncRewake in forma shell. Nel suo command, un interprete come python3 è seguito da un segnaposto di percorso senza virgolette, e il percorso risolto contiene uno spazio.
La notifica inizia con il nome dell'evento dell'hook e nomina lo script:
Stop hook needs quotes around a path with a space (check.py)
Cosa fare:
- Nel
commanddell'hook che esegue lo script nominato dalla notifica, racchiudi il percorso tra virgolette doppie. In un file JSON, scrivilo come"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\"".
Instruction file not loaded
Questo avviso nella vista della conversazione di una sessione interattiva significa che un file di memoria esistente non è stato caricato. È in vigore una restrizione di lettura.
Instruction file not loaded (a Read deny rule covers it):
path: .claude/rules/shared.md
L'inciso tra parentesi indica il motivo, ad esempio:
a Read deny rule covers it: una regola denyReadcorrisponde al percorso del file così come è scritto o alla destinazione di un collegamento che lo riguardait's read from outside your working directories, where reads are blocked: il file si risolve al di fuori delle directory di lavoro mentrepermissions.blockReadsOutsideWorkingDirectoriesè attivowhere it leads couldn't be worked out: ad esempio, il file è un collegamento che rimanda a se stesso, direttamente o attraverso altri collegamenti
Quando il file di memoria di una sottodirectory non può essere caricato mentre Claude lavora con i file lì presenti, le stesse righe appaiono nella conversazione durante il turno. Quando i file esclusi sono più di quelli nominati dalle righe, una riga finale conta i restanti, ad esempio and 3 more instruction files not loaded.
Cosa fare:
- Niente, se la restrizione è voluta: la sessione procede senza le istruzioni di quel file.
- Per caricare un file escluso perché
a Read deny rule covers it, rimuovi o restringi quella regola. Poi avvia una nuova sessione. - Per caricare un file escluso perché
it's read from outside your working directories, where reads are blocked, sposta il file o la destinazione del suo collegamento all'interno delle directory di lavoro. Poi avvia una nuova sessione. - Per caricare un file escluso perché
where it leads couldn't be worked out, verifica se il file è un collegamento che rimanda a se stesso. In tal caso, fai puntare il collegamento a un file esistente oppure sostituiscilo con un file normale. Poi avvia una nuova sessione.
Prima della v2.1.292, l'avviso nominava il file alla fine della stessa riga, dopo il motivo.
Una skill, un comando o un workflow non è stato caricato perché il suo nome è riservato
Una cartella skill, un frontmatter name, un file o una sottocartella in .claude/commands/, o un workflow salvato usa il nome anthropic-skills o un nome che inizia con anthropic-skills:. Claude Code riserva quel nome per le skills sincronizzate da claude.ai e non carica quell'elemento.
Claude Code mostra questo avviso come avviso di avvio nella vista della conversazione piuttosto che su stderr:
Not loaded: rename .claude/skills/anthropic-skills, then restart — its name uses "anthropic-skills", a name reserved for the skills synced from your claude.ai account
L'avviso nomina cosa cambiare per il primo elemento che ha rifiutato: una cartella o un file da rinominare, una riga name: da modificare, o un workflow da rinominare. Quando più di un elemento è stato rifiutato, l'avviso termina con un conteggio come · 2 more, e il log di debug nomina ognuno.
Cosa fare:
- Rinominare l'elemento che l'avviso nomina, o modificare la riga
name:a cui punta, quindi riavviare la sessione.
Prima della v2.1.282, Claude Code caricava skills e comandi con questi nomi.
Skill or command name refused
Questo avviso di avvio significa che Claude Code ha rifiutato il nome di almeno una skill o di un comando personalizzato, che quindi non è stato caricato oppure è stato caricato senza il suo campo name:
1 skill or command name refused: run with --debug to see which ([names]), rename, then restart — a name may not hold hidden, direction-changing or blank-like characters, < or >, or be over 256 characters
- Non caricato: Claude Code ha rifiutato il nome con cui va una skill o un comando, come il nome della sua directory oppure il nome o la sottocartella di un file di comando. Manca dal menu
/e Claude non può invocarlo. La sua riga nel log di debug riporta<name> is not offered. - Campo
nameignorato: Claude Code ha rifiutato il frontmatternamedi una skill. La skill viene comunque caricata, ma il menu/non mostra il valore dinamee digitarlo non invoca la skill. La sua riga nel log di debug riporta<name value> is not shown for <skill>.
Cosa fare:
- Avvia Claude Code con
claude --debugdalla tua shell e cerca[names]nel log di debug. Ogni nome conteggiato dall'avviso ha lì una riga. La riga riporta alcuni caratteri nascosti come codici, ad esempio\u{200B}per uno spazio a larghezza zero, così puoi vedere dove si trovano. - Rimuovi i caratteri che il nome di una skill non può contenere rinominando la cartella o il file oppure modificando la riga
name:, oppure accorcia un nome che supera i 256 caratteri. Poi riavvia la sessione, a meno che il file non si trovi in una directory che Claude Code monitora per le modifiche. Per una skill di un plugin che non hai scritto tu, chiedi all'autore del plugin di rinominarla.
Lo spazio di lavoro non è stato considerato attendibile
Claude Code ha trovato regole permissions.allow o voci permissions.additionalDirectories nel .claude/settings.json o .claude/settings.local.json del progetto e non le ha applicate, perché le regole allow dalle impostazioni del progetto richiedono la fiducia dello spazio di lavoro. Il conteggio, il nome dell'impostazione e il file nominato nel messaggio variano con la vostra configurazione. Le regole deny e ask non sono interessate.
Ignoring 2 permissions.allow entries from .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/Users/you/project"].hasTrustDialogAccepted: true in /Users/you/.claude.json.
Cosa fare:
- Eseguire
claudenella directory e accettare la finestra di dialogo di fiducia. Project allow rules and workspace trust dice quale cartella copre tale accettazione. - In modalità non interattiva con
-pnessuna finestra di dialogo viene mostrata. Impostare la vocehasTrustDialogAcceptedin~/.claude.jsonusando la chiaveprojectsesatta che il messaggio stampa. - Se il messaggio nomina
.claude/settings.local.jsone avete avviato Claude Code al di fuori di un repository git o nella vostra home directory, aggiornare alla v2.1.200 o successiva. Le versioni 2.1.196 attraverso 2.1.199 hanno trattato il vostro.claude/settings.local.jsoncome fornito dal repository in quegli spazi di lavoro. Sulla v2.1.207 e successiva, l'aggiornamento non è sufficiente al di fuori di un repository git se non avete considerato attendibile la cartella: determinare che una cartella non è all'interno di un repository esegue git, e Claude Code esegue quel controllo solo dopo che accettate la finestra di dialogo di fiducia, quindi usate il primo passaggio. La vostra home directory e qualsiasi altra configuration home sono esenti e non aspettano la finestra di dialogo. Vedere Project allow rules and workspace trust.
La directory di lavoro è un percorso di rete
Claude Code non aggiunge percorsi di rete come directory di lavoro. Cercare un percorso di rete può contattare l'host che nomina, e su Windows quel contatto può inviare all'host le tue credenziali. Per questo Claude Code rifiuta il percorso senza cercarlo.
Vedi questo messaggio quando esegui /add-dir con un percorso di rete:
\\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet carry remote-read trust).
Quando invece ne passi uno all'avvio, con --add-dir o in permissions.additionalDirectories, Claude Code si avvia senza quella directory. In una sessione interattiva non vedi il messaggio all'avvio, perché finisce nel log di debug insieme agli altri avvisi di avvio.
I percorsi che Claude Code rifiuta in questo modo includono:
- Condivisioni UNC come
\\server\share - Percorsi di montaggio automatico come
/net/<host>, a meno che tu non abbia avviato Claude Code da una directory sotto il montaggio automatico di quell'host. Le letture sotto quel montaggio automatico passano comunque attraverso il controllo dei percorsi di rete. - Percorsi locali che raggiungono una posizione di rete attraverso un collegamento simbolico o una giunzione
Le lettere di unità mappate e i percorsi \\wsl$ non contano come percorsi di rete.
Cosa fare:
- Su Windows, mappa la condivisione a una lettera di unità e passa l'unità all'avvio. In PowerShell, ad esempio, esegui
net use Z: \\server\sharee poiclaude --add-dir Z:\. - Su macOS o Linux, montare la condivisione in un percorso locale e aggiungere quel percorso invece.
- Se il percorso è in
permissions.additionalDirectories, rimuoverlo dal file di impostazioni che lo elenca.
Prima della v2.1.257, Claude Code accettava un percorso di rete raggiungibile come directory di lavoro.
Le impostazioni gestite da remoto non hanno potuto essere caricate
La tua sessione è idonea per le impostazioni gestite dal server, ma Claude Code non è riuscito a recuperarle o non è riuscito ad applicare ciò che il server ha restituito, quindi mostra questo avviso nelle sessioni interattive e nella scheda Code di Claude Desktop.
La causa tra parentesi nomina cosa è fallito, come network error, request timed out, o authentication rejected (401). La causa no setting in the server response could be applied as written significa che il server ha risposto ma nessuna delle impostazioni che ha restituito ha superato la validazione. Prima della v2.1.282, questa causa leggeva server returned invalid settings.
Il resto della riga dice quale politica la sessione esegue:
- Impostazioni memorizzate nella cache da un recupero precedente riuscito: Claude Code esegue la sessione su quella politica memorizzata nella cache, ad eccezione delle variabili di ambiente trattenute, e la riga legge
using cached policy. - Nessuna cache: Claude Code esegue la sessione senza impostazioni gestite dal server, e la riga legge
no remote policy applied.
Nella scheda Code, l'avviso appare come una riga nella conversazione quando invii un messaggio, e una nuova riga appare quando cambia lo stato del recupero. Altri tre messaggi correlati appaiono allo stesso modo:
Remote managed settings are still loading: il recupero era ancora in corso quando la sessione è andata avantiRemote managed settings did not load: il recupero è terminato senza una rispostaRemote managed settings have now loaded: le impostazioni sono state caricate dopo uno di questi avvisi, e il resto della riga indica se si applica una policy remota
Cosa fare:
- Agire sulla causa che il messaggio nomina: per una causa di rete, verificare che questa macchina possa raggiungere
api.anthropic.com; per una causa di autenticazione, controllare il vostro accesso con/status - Per
no setting in the server response could be applied as written, chiedere al vostro amministratore di correggere le impostazioni sul server - Eseguire
/statusoclaude doctorper la diagnostica completa
Prima della v2.1.248, Claude Code segnalava un recupero di impostazioni fallito solo nel log di debug.
Claude Code non è riuscito a caricare le impostazioni della tua organizzazione
La tua sessione non è stata avviata perché le impostazioni della tua organizzazione, incluse le sue impostazioni gestite dal server, devono essere caricate prima e Claude Code non è riuscito a caricarle. Ad esempio:
Claude Code couldn't reach Anthropic to load your organization's settings (could not connect). <Organization name> requires them before a session can start.
Se il messaggio si trova in una finestra di dialogo intitolata Claude Code can't start this session yet, la finestra si chiude e la sessione si avvia non appena le impostazioni vengono caricate.
In modalità non interattiva e nelle sessioni in background, Claude Code invece stampa il messaggio ed esce con stato 1.
Cosa fare:
could not connect, oppurethe reply came from a network proxy, not Anthropic: controlla la tua connessione di rete e, su una rete aziendale, chiedi al reparto IT di consentire HTTPS versoapi.anthropic.com/api/claude_code/policy_limitseapi.anthropic.com/api/claude_code/settings. Poi seleziona Retry now, oppure esegui di nuovo il tuo comando.timed out,Anthropic returned an erroroppureAnthropic asked it to retry shortly: lascia che la finestra di dialogo riprovi, oppure esegui di nuovo il tuo comando più tardi. Se continua a succedere, controlla status.anthropic.com.still loading, oppurecouldn't verify your sign-in with Anthropic yet: lascia che la finestra di dialogo riprovi, oppure esegui di nuovo il tuo comando. Se il messaggio sull'accesso continua a ripresentarsi, accedi di nuovo eseguendoclaude auth loginnella tua shell.Your Claude session has expired: l'accesso memorizzato su questa macchina non è più valido, quindi riprovare non serve. Nella finestra di dialogo, seleziona Sign in again per chiudere Claude Code; poi, nella tua shell, eseguiclaude auth login, che funziona anche quando le sessioni non possono avviarsi.none of the settings the server returned could be applied as written: chiedi al tuo amministratore di correggere le impostazioni gestite dal server dell'organizzazione, poi riprova.
Le impostazioni gestite non sono state approvate
Le impostazioni gestite dal server della vostra organizzazione includono impostazioni che necessitano della vostra approvazione, e avete rifiutato la finestra di dialogo di approvazione della sicurezza, quindi Claude Code esce senza applicarle:
Managed settings were not approved; exiting without applying them.
Cosa fare:
- Avviare di nuovo Claude Code e approvare la finestra di dialogo per continuare secondo le impostazioni della vostra organizzazione. Una finestra di dialogo rifiutata non viene ricordata, quindi appare di nuovo al prossimo avvio.
- Se siete incerti su un'impostazione che la finestra di dialogo elenca, chiedete a chi mantiene le impostazioni gestite della vostra organizzazione prima di approvare
Le impostazioni gestite richiedono la tua approvazione
Le impostazioni gestite dal server della tua organizzazione includono impostazioni che richiedono la tua approvazione nella finestra di dialogo di approvazione di sicurezza. Il comando claude plugin che hai eseguito non poteva leggere dalla tastiera, quindi non poteva mostrare quella finestra di dialogo. Questo accade quando ne convogli o reindirizzi l'input e, su macOS e Linux, non può nemmeno aprire /dev/tty. Il comando si è interrotto prima di apportare modifiche:
Your organization's managed settings need your approval, which couldn't be asked for here. Run `claude` in a terminal and approve them, then run this command again.
Cosa fare:
- Esegui
claudein un terminale e approva le impostazioni quando compare la finestra di dialogo, poi esegui di nuovo lo stesso comandoclaude plugin. Claude Code conserva l'approvazione e le impostazioni approvate nella tua directory di configurazione. Se il comando che si è interrotto è stato eseguito come un altro utente o conCLAUDE_CONFIG_DIRimpostato, eseguiclaudeallo stesso modo, così che entrambi usino la stessa directory.
Le impostazioni gestite bloccano il modello predefinito
La vostra organizzazione impostazioni gestite bloccano il modello a cui l'opzione Predefinito si risolve e ogni modello a cui potrebbe scendere. Una sessione che inizierebbe sull'opzione Predefinita esce all'avvio invece di eseguire un modello bloccato. Quale messaggio vedete dipende dall'impostazione che lo blocca. Quando un elenco deniedModels lo blocca, il messaggio legge:
Claude Code can't start: your organization's managed settings block the default model (claude-opus-5-5) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".
Quando un elenco availableModels con availableModelsMatch impostato a "exact" lo omette, il messaggio legge:
Claude Code can't start: your organization allows only the models listed in "availableModels", and none of them can be used as the default model (claude-opus-5-5 isn't listed). Ask your administrator to update "availableModels".
Cosa fare:
- Se amministrate le impostazioni, aggiungere un modello che i vostri utenti possono eseguire a
availableModels, o restringere le vocideniedModelsche bloccano ogni fallback. Block specific models or versions descrive come l'opzione Predefinito scende - Se non le amministrate, inviare il messaggio al vostro amministratore. I vostri file di impostazioni non possono ampliare un elenco
availableModelsodeniedModelsgestito
Le impostazioni gestite non consentono questo provider API
La vostra organizzazione impostazioni gestite impostano un elenco allowedProviders, e il provider API della sessione non è su di esso o la sessione usa un endpoint che non è fissato nel modo che quella voce richiede. Claude Code rifiuta all'avvio, prima di un accesso, o quando la sessione contatta successivamente l'API. Il messaggio inizia con i provider consentiti:
Your organization's managed settings allow Claude Code to use: Anthropic API, Amazon Bedrock.
Quando l'elenco è vuoto, il messaggio legge invece:
Your organization's managed settings allow Claude Code to use no API provider at all (allowedProviders is an empty list), so it cannot start on this machine.
Quando ogni voce non è riconosciuta, la parentetica legge invece (allowedProviders lists only unrecognized entries).
Cosa fare:
- Seguire i passaggi
To continue:del messaggio - Se amministrate le impostazioni, le righe del messaggio che iniziano con
Admins:nominano la voce da aggiungere o il valore da fissare, e la voceallowedProvidersdice quale bloccoenvdella fonte può fissarlo
MCP server è bloccato dalla politica gestita aziendale
Avete selezionato Reconnect su un server in /mcp, o riattivato un server disabilitato lì, e un'impostazione che limita i server MCP blocca quel server. Claude Code rifiuta di connetterlo e mostra:
MCP server <name> is blocked by enterprise managed policy
Una qualsiasi di queste impostazioni può produrre il messaggio:
- Una voce
deniedMcpServersche corrisponde al server, inclusa una nel vostro~/.claude/settings.jsono nel.claude/settings.jsondel progetto - Un elenco
allowedMcpServersche il server non corrisponde strictPluginOnlyCustomizationconmcpbloccato, che blocca i server configurati in~/.claude.jsone.mcp.jsondisableClaudeAiConnectors, quando il server è un connettore claude.ai
Cosa fare:
- Controllare i vostri file di impostazioni utente e progetto per una di queste impostazioni e cambiarla o rimuoverla
- Se nessuna delle vostre impostazioni spiega il blocco, chiedete al vostro amministratore quale impostazione gestita blocca il server
Prima della v2.1.257, Reconnect e ri-abilitare in /mcp potevano connettere un server che un aggiornamento di politica mid-session bloccava.
Il nome del server MCP è riservato
Questo messaggio nomina uno dei tuoi server MCP, il cui nome è tra quelli che Claude Code riserva, come i nomi dei suoi server integrati:
"workspace" is a reserved MCP server name and was not loaded
Cosa fare:
- Rinomina il server dove lo definisci, ad esempio da
workspaceamy-workspace - Per gli altri nomi riservati da evitare, consulta Avvisi di configurazione MCP
Il documento delle impostazioni gestite non ha potuto essere analizzato
La vostra organizzazione distribuisce impostazioni gestite, e uno dei documenti distribuiti è presente ma non può essere analizzato come un oggetto JSON, quindi Claude Code esce con codice 1 all'avvio invece di eseguire senza la politica che il documento contiene. La riga nomina la fonte fallita prima del messaggio:
/Library/Application Support/ClaudeCode/managed-settings.json: Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.
La fonte è una di:
- Il percorso del file
managed-settings.jsono un file drop-in sottomanaged-settings.d - Il profilo delle preferenze gestite macOS,
per-user managed preferencesodevice-level managed preferences - Il valore del registro Windows,
Registry: HKLM\SOFTWARE\Policies\ClaudeCode\Settings
Find entries Claude Code dropped elenca cosa rende ogni fonte non analizzabile.
Claude Code rifiuta di avviarsi anche quando un'altra fonte amministrativa fornisce una politica valida. Vedete questo errore nelle sessioni interattive, claude -p, sessioni Agent SDK, sessioni in background, e la maggior parte dei sottocomandi, claude doctor incluso. Il rifiuto fallisce chiuso di proposito: le impostazioni in un documento che Claude Code non può analizzare non possono essere applicate, e avviarsi comunque eseguirebbe sessioni senza i controlli dell'organizzazione.
Un problema di schema in un documento analizzabile non produce questo errore. Find entries Claude Code dropped copre cosa Claude Code fa con uno.
Quando una directory managed-settings.d/ esiste ma non può essere elencata, Claude Code segnala Managed settings drop-in directory could not be read: seguito dall'errore sottostante invece. Find entries Claude Code dropped copre quando un errore di lettura esce all'avvio.
Cosa fare:
- Se amministrate la macchina, correggere il documento nominato in modo che si analizzi come un oggetto JSON, o rimuovere il file, il profilo o il valore del registro. Un
managed-settings.jsonvuoto conta come{}e non blocca l'avvio. - Se non lo fate, chiedete al vostro amministratore di correggere il documento distribuito. Nulla nei vostri file di impostazioni causa o cancella questo errore.
Impossibile leggere le impostazioni della politica gestita
La vostra organizzazione distribuisce impostazioni gestite, e una delle fonti distribuite esiste ma non ha potuto essere letta, per un motivo come un errore di I/O piuttosto che il sistema operativo che nega la lettura. Senza un'altra fonte amministrativa che fornisce una politica, Claude Code esce all'avvio piuttosto che eseguire senza la politica che la fonte potrebbe contenere:
Unable to read managed policy settings.
This machine may require organization login enforcement, but the policy file failed to load.
Contact your administrator.
Detail: <source>: <reason>
Nello stesso stato, i flussi di accesso, le richieste API da una sessione che è già in esecuzione, e il server claude gateway sono rifiutati con una variante della prima riga che nomina allowedProviders.
Una lettura che il sistema operativo ha negato, come su un file solo root, non produce questa uscita: la sessione si avvia senza le politiche di quella fonte. Per una fonte che non può essere analizzata, Claude Code esce con un messaggio diverso che nomina la fonte.
Cosa fare:
- Se amministrate la macchina, correggere il problema che la riga
Detail:nomina in modo che la fonte distribuita possa essere letta, o rimuovere la fonte - Se non lo fate, inviare il messaggio al vostro amministratore. Nulla nei vostri file di impostazioni causa o cancella questo errore
Prima della v2.1.285, solo le sessioni accedute con credenziali claude.ai o Claude Console uscivano con questo messaggio, e una lettura che il sistema operativo ha negato lo produceva anche.
Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded
Questo blocco su stderr in un'esecuzione -p significa che un'origine delle impostazioni gestite contiene una voce di hook che Claude Code non riesce a caricare. Quell'hook non viene eseguito, e quando una riga indica come ignorato il campo hooks dell'origine, nessuno degli hook di quell'origine viene eseguito.
Ogni riga nomina l'origine, il campo quando presente e il problema, ad esempio un type di hook sconosciuto o un hook dichiarato al di fuori della chiave hooks:
Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:
<source> (<field>): <message>
Cosa fare:
- Se amministri l'origine, correggi o rimuovi ogni voce elencata nel blocco. Configurazione degli hook mostra la struttura che Claude Code si aspetta sotto
hooks. - Se l'origine di una riga è
parent managed settings, l'applicazione che ha avviato Claude Code ha passato quella voce come impostazioni parent, quindi segnalalo allo sviluppatore di quell'applicazione - Altrimenti, invia il blocco al tuo amministratore
Prima della v2.1.300, un'esecuzione -p elencava questo caso sotto l'intestazione Managed settings failed to load; policies from the failed source are NOT in effect:.
otelHeadersHelper non riuscito
Claude Code mostra questo avviso come una notifica nell'interfaccia terminale, una volta per sessione interattiva, quando lo script otelHeadersHelper fallisce o stampa output che non soddisfa i requisiti dello script.
Mentre lo script continua a fallire, le esportazioni falliscono e il vostro backend di telemetria non riceve nulla dalla sessione.
Il testo dopo See /status: dice cosa è fallito, come il codice di uscita dello script seguito dal suo output di errore:
otelHeadersHelper failed; telemetry is not being exported. See /status: exited 1: token service unreachable
Cosa fare:
- Eseguire
/statusper leggere il dettaglio del fallimento. - Correggere lo script in modo che esca 0 entro 30 secondi e stampi un oggetto JSON di valori di intestazione stringa su stdout. Vedere requisiti dello script.
- Se la vostra organizzazione distribuisce lo script attraverso impostazioni gestite, chiedete a chi le mantiene di correggerlo.
In modalità non interattiva con -p, lo stesso fallimento appare su stderr come otelHeadersHelper failed (OpenTelemetry export headers unavailable): <error> invece.
headersHelper non eseguito
Claude Code ha connesso un server MCP con i suoi headers statici soli e ha saltato il headersHelper del server, perché l'helper è un comando shell e la cartella non ha fiducia salvata. Una cartella ottiene fiducia salvata quando impostate la sua voce in ~/.claude.json a mano o, al di fuori della vostra home directory, quando accettate la finestra di dialogo di fiducia per essa in una sessione interattiva. Vedere Trust a folder before its headersHelper runs per quali server questo controllo si applica.
Claude Code scrive questa riga in modalità non interattiva solo, una volta per server. In una sessione interattiva scrive lo stesso rifiuto al log di debug invece.
MCP server 'internal-api': headersHelper not run — this workspace has no persisted trust; accept the trust dialog here once interactively, or set projects["/Users/you/project"].hasTrustDialogAccepted in /Users/you/.claude.json.
La chiave projects che il messaggio stampa è la cartella Project allow rules and workspace trust dice Claude Code chiavi la fiducia su. Accettare la finestra di dialogo di fiducia per una cartella genitore non soddisfa il controllo, e una sessione -p o SDK non la soddisfa nemmeno.
Cosa fare:
- Eseguire
claudenella cartella che il messaggio nomina, accettare la finestra di dialogo di fiducia, quindi eseguire di nuovo il vostro comando-po SDK - Impostare la voce
hasTrustDialogAcceptedin~/.claude.jsonvoi stessi, usando la chiaveprojectsesatta che il messaggio stampa - Se avete avviato la sessione nella vostra home directory, lavorare da una directory di progetto che avete considerato attendibile. Quando accettate la finestra di dialogo di fiducia nella vostra home directory, Claude Code mantiene quella fiducia per la sessione corrente solo.
Regola Tool(content) malformata
Una regola di permesso in uno dei vostri file di impostazioni non ha la forma Tool o Tool(content), ad esempio perché il testo segue la parentesi di chiusura o una delle parentesi manca. Claude Code salta la regola e la elenca nella finestra di dialogo delle impostazioni non valide quando una sessione interattiva si avvia, e nell'output di claude doctor:
Invalid permission rule "Bash(ls) x" was skipped: Malformed Tool(content) rule. Rules take the form Tool or Tool(content) and must end at the closing ")"; parentheses inside the content are literal
Cosa fare:
- Nel file di impostazioni elencato con il messaggio, riscrivere la regola in modo che termini alla sua parentesi di chiusura, ad esempio
Bash(ls *)al posto diBash(ls) x - Lasciare le parentesi all'interno del contenuto come sono. Sono letterali, quindi una regola come
Edit(./Finance (2024)/**)è valida senza escape
Prima della v2.1.260, Claude Code segnalava una regola con parentesi non abbinate come Mismatched parentheses.
Matches no tool · check for typos
Questa riga sotto il banner di avvio nomina una regola di permesso deny o ask il cui nome di strumento non è riconosciuto da Claude Code, quindi la regola non si applica allo strumento che intendevi. Una regola deny scritta come Bsh non viene applicata a Bash, e nemmeno una che usa l'etichetta mostrata da uno strumento nella trascrizione invece del suo nome canonico. La riga ripete la regola così come l'hai scritta:
⚠ Deny rule Bsh matches no tool · check for typos
In modalità non interattiva con output di testo, Claude Code stampa invece l'avviso su stderr nella sua forma più lunga:
Permission deny rule "Bsh" matches no known tool — check for typos.
Cosa fare:
- Correggi il nome dello strumento nella regola, ad esempio
Bashal posto diBsh. Trovi i nomi canonici nel riferimento degli strumenti. - Per trovare dove è definita la regola, esegui
/permissionsnella sessione e seleziona la regola. I suoi dettagli indicano da dove proviene, ad esempioFrom project local settings, oppureFrom CLI argumentper un valore di--disallowedTools. - Se i dettagli riportano
From enterprise managed settings, inoltra la riga a chi gestisce le tue impostazioni gestite, perché non puoi modificare tu quella regola.
In una sessione in background o con --output-format json o stream-json, Claude Code scrive l'avviso nel log di debug anziché su stderr. Esegui con --debug per acquisirlo in ~/.claude/debug/<session-id>.txt.
Prima della v2.1.305, una sessione interattiva stampava la forma più lunga su stderr all'avvio invece di mostrare la riga.
Non è abbinato dai controlli di permesso dei file
Claude Code ha trovato una regola di permesso Write, NotebookEdit, MultiEdit o Glob con un percorso in uno dei tuoi file di impostazioni, nelle impostazioni gestite, o in un valore dei flag --allowedTools, --disallowedTools o --settings. Claude Code verifica i permessi sui file solo rispetto alle regole Edit e Read, quindi non consulta mai una regola di percorso che nomina uno degli altri strumenti per i file. Mantiene la regola e non cambia nient'altro.
-
Sessione interattiva: l'avviso completo finisce nel log di debug, e una regola deny o ask di questa forma appare anche come questa riga sotto il banner di avvio:
⚠ Deny rule Write(docs/**) never matches · use Edit(docs/**)Una regola allow di questa forma non genera alcuna riga. Per trovare dove è definita la regola, esegui
/permissionsnella sessione e seleziona la regola. -
Modalità non interattiva con output di testo: l'avviso completo su stderr nomina la regola, la sua origine tra parentesi e la sostituzione da scrivere:
Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools). -
Sessione in background, oppure
--output-format jsonostream-json: l'avviso completo finisce nel log di debug anziché su stderr, così l'output letto dalle macchine resta pulito. Esegui con--debugper acquisirlo in~/.claude/debug/<session-id>.txt.
Cosa fare:
- Sostituire le regole
Write(path),NotebookEdit(path), e legacyMultiEdit(path)conEdit(path). Le regoleEditcoprono tutti gli strumenti di modifica dei file. - Ad eccezione di
--allowedTools, dove Claude Code accetta una regolaGlobsenza avviso, sostituire le regoleGlob(path)conRead(path). - Correggi la regola nella sua origine, che l'avviso completo indica tra parentesi: un percorso di file di impostazioni, oppure il flag stesso per
--allowed-toolse--disallowed-tools. Un percorsoclaude-settings-<hash>.jsonche non esiste su disco rappresenta un valore--settingsinline. Correggi il JSON che passi a quel flag. - Lasciare sole le regole di nome di strumento nudo come
WriteoGlob. Claude Code le abbina a livello di tool level e non avvisa su di esse. - Per una regola proveniente dalle impostazioni gestite, le parentesi dell'avviso completo riportano
managed policy settingse i dettagli della regola in/permissionsriportanoFrom enterprise managed settings. Inoltra quell'avviso a chi gestisce le tue impostazioni gestite, perché non puoi risolverlo tu.
Prima della v2.1.210, Claude Code accettava queste regole senza avvisi. Prima della v2.1.305, una sessione interattiva stampava l'avviso completo su stderr.
Ha un carattere jolly prima del resto del comando
Claude Code ha trovato una regola allow Bash il cui * viene prima di una parola successiva che determina quale comando è, come Bash(git * main) o Bash(git -C * status *), in uno dei vostri file di impostazioni, in impostazioni gestite, o in un valore di flag --allowedTools o --settings. Il * corrisponde a qualsiasi testo, incluse le opzioni inserite in quella posizione: Bash(git * main) approva anche git -c core.fsmonitor=<script> diff main, dove -c fa eseguire a git un programma che il comando nomina. Wildcard patterns mostra le regole di corrispondenza.
L'avviso esiste per permetterti di restringere una regola il cui carattere jolly è più ampio di quanto intendessi. Claude Code mantiene la regola e non cambia nulla nel modo in cui corrisponde. In modalità non interattiva con output di testo, l'avviso su stderr nomina la regola e la sua origine tra parentesi:
Permission allow rule (.claude/settings.json): Bash(git -C * status *) has a wildcard before the rest of the command, so it also matches any options inserted at that position and approves them without a prompt. For git, options such as -c and --exec-path can run arbitrary commands. Replace that * with the exact value you mean, or only use * after the subcommand (for example Bash(git status *)).
In una sessione interattiva, l'avviso completo finisce nel log di debug e la regola appare come questa riga sotto il banner di avvio:
⚠ Allow rule Bash(git -C * status *) allows any option at its * · use an exact value
Per trovare dove è definita la regola, esegui /permissions nella sessione e seleziona la regola.
Cosa fare:
- Sostituire il
*prima del sottocomando con il valore esatto che intendete:Bash(git checkout main)al posto diBash(git * main). - Spostare ogni
*dopo il sottocomando:Bash(git status *)al posto diBash(git -C * status *). Scrivere una regola per sottocomando che volete permettere. - Correggi la regola nella sua origine, che l'avviso completo indica tra parentesi: un percorso di file di impostazioni, oppure il flag
--allowed-toolsstesso. Un percorsoclaude-settings-<hash>.jsonche non esiste su disco rappresenta un valore--settingsinline. Correggi il JSON che passi a quel flag. - Per una regola proveniente dalle impostazioni gestite, le parentesi dell'avviso completo riportano
managed policy settingse i dettagli della regola in/permissionsriportanoFrom enterprise managed settings. Inoltra quell'avviso a chi gestisce le tue impostazioni gestite, perché non puoi risolverlo tu.
In una sessione in background o con --output-format json o stream-json, Claude Code scrive l'avviso al log di debug invece di stderr, quindi l'output letto dalla macchina rimane pulito. Eseguire con --debug per catturarlo in ~/.claude/debug/<session-id>.txt. Prima della v2.1.246, Claude Code accettava queste regole senza un avviso.
Prima della v2.1.305, una sessione interattiva stampava l'avviso completo su stderr invece di mostrare una riga.
Denying Bash also turns off the PowerShell tool
Hai rimosso l'intero strumento Bash, ad esempio con --disallowedTools Bash oppure con una regola deny Bash o Bash(*) senza altre specifiche in uno dei tuoi file di impostazioni. Su Windows con Git Bash installato, negare Bash disattiva anche lo strumento PowerShell, quindi la sessione si avvia senza alcuno strumento shell.
In modalità non interattiva con output di testo, Claude Code stampa questo avviso su stderr all'avvio, mentre una sessione interattiva lo scrive solo nel log di debug:
Denying Bash also turns off the PowerShell tool, so Claude has neither. To use PowerShell, set CLAUDE_CODE_USE_POWERSHELL_TOOL=1.
Cosa fare:
- Per far usare PowerShell a Claude, imposta
CLAUDE_CODE_USE_POWERSHELL_TOOLsu1nel tuo ambiente o nel bloccoenvdi un file di impostazioni, come mostrato in Attivare lo strumento PowerShell. Lo strumento PowerShell resta quindi attivo insieme alla tua regola deny per Bash. - Per bloccare comandi specifici invece dell'intero strumento, sostituisci la voce
Bashgenerica con regole circoscritte comeBash(git push *)nello stesso file di impostazioni o flag. Claude mantiene lo strumento Bash, e lo strumento PowerShell resta disattivato finché non imposti anche la variabile o aggiungi una regola di permessoPowerShellcircoscritta.
In una sessione in background o con --output-format json o stream-json, Claude Code scrive l'avviso nel log di debug anziché su stderr. Esegui con --debug per acquisirlo in ~/.claude/debug/<session-id>.txt. Prima della v2.1.287, Claude Code disattivava lo strumento PowerShell allo stesso modo senza stampare alcun avviso.
Prima della v2.1.305, anche una sessione interattiva stampava l'avviso su stderr all'avvio.
crossSessionInbound deve essere uno di accept, hold, refuse
Un file di impostazioni imposta crossSessionInbound a un valore che Claude Code non riconosce, come il typo "reject". La seconda frase dell'avviso dipende da quale file contiene il valore; in un file utente, progetto, locale, o --settings legge:
"crossSessionInbound" must be one of "accept", "hold", "refuse"; received "reject". This value was ignored; while it is present, cross-session messages are held for your approval instead of being delivered. Set it to one of the values above.
In impostazioni gestite, Claude Code tratta il valore non riconosciuto come refuse, il valore più restrittivo, e l'avviso dice che i messaggi cross-session vengono rifiutati fino a quando un amministratore non lo corregge. Per come l'hold si combina con i valori nei vostri altri file di impostazioni, vedere crossSessionInbound.
Cosa fare:
- Impostare la chiave a
"accept","hold", o"refuse", o rimuoverla - Quando l'avviso nomina impostazioni gestite, chiedere all'amministratore di correggere il valore
Prima della v2.1.248, Claude Code ignorava un valore non riconosciuto senza avviso.
ANTHROPIC_FOUNDRY_RESOURCE deve essere il nome di una risorsa Foundry
Hai impostato ANTHROPIC_FOUNDRY_RESOURCE su qualcosa di diverso dal semplice nome di una risorsa Microsoft Foundry, ad esempio l'URL dell'endpoint o il suo nome host. Claude Code ha rifiutato il valore prima di inviare una richiesta. Il messaggio appare al posto della risposta di Claude, non come avviso di avvio:
API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name (2-64 letters, digits and hyphens, not starting or ending with a hyphen, such as my-resource), not a URL or host name. To use a full URL, set ANTHROPIC_FOUNDRY_BASE_URL instead.
Cosa fare:
- Imposta
ANTHROPIC_FOUNDRY_RESOURCEsul solo nome della risorsa e riavvia Claude Code. Per l'endpointhttps://my-resource.services.ai.azure.com/anthropic, il nome èmy-resource. - Per fornire invece l'URL completo dell'endpoint, imposta
ANTHROPIC_FOUNDRY_BASE_URLsull'URL e rimuoviANTHROPIC_FOUNDRY_RESOURCE, quindi riavvia Claude Code. Claude Code accetta solo una delle due variabili.
Il limite di 200K non è applicato
Avete impostato CLAUDE_CODE_DISABLE_1M_CONTEXT=1, che normalmente fa sì che auto-compaction mantenga le sessioni su modelli con contesto 1M a una finestra di 200K, ma nessuna soglia di compattazione limita questa sessione a o sotto 200K, quindi la conversazione può crescere oltre.
CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced for <model>, so this session can grow past it. To enforce it, set CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 (or the autoCompactWindow setting).
Claude Code applica il limite di 200K da solo per ogni modello che riconosce come avente una finestra nativa di 1M, e per ID di modello che non riconosce compatta alla finestra che assume. L'avviso appare quando altra configurazione sconfigge tale applicazione:
- L'ID del modello non è uno che Claude Code riconosce, come un alias di LLM gateway, e avete impostato
CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1o aumentato la finestra assunta oltre 200K conCLAUDE_CODE_MAX_CONTEXT_TOKENS. In questo caso il messaggio offre ancheor update to a Claude Code version that recognizes <model>come rimedio. - Un beta
context-1mrichiesto attraversoANTHROPIC_BETASo il flag--betaschiede ancora all'API la finestra 1M su un modello che accetta quel beta, mentre nulla compatta la sessione a 200K
Cosa fare:
- Impostare
CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000, o l'impostazioneautoCompactWindowa200000, in modo che auto-compaction compatti al confine di 200K - Se il messaggio nomina un ID di modello che questa versione non riconosce, eseguire
claude update. Una versione che riconosce l'ID come modello con contesto 1M applica il limite senza ulteriore configurazione. - Se volete che la sessione usi la finestra completa del modello invece, disimpostare
CLAUDE_CODE_DISABLE_1M_CONTEXT; l'avviso segnala solo che il limite di 200K non è applicato
In modalità non interattiva con output di testo, questo avviso appare su stderr. In una sessione interattiva, in una sessione in background, o con --output-format json o stream-json, finisce invece nel log di debug. Esegui con --debug per acquisirlo in ~/.claude/debug/<session-id>.txt.
Prima della v2.1.305, una sessione interattiva stampava l'avviso su stderr all'avvio.
ID modello non riconosciuto su una richiesta
Claude Code ha inviato una richiesta per un ID di modello che la vostra versione di Claude Code non riconosce, e non ha trovato alcuna voce modelOverrides che mappa quell'ID a un modello che riconosce. Claude Code invia comunque la richiesta con l'ID come lo avete configurato, e non esce o cambia modelli.
[claude-code:unrecognized_model] {"model":"my-proxy-model","query_source":"sdk"}
In uno script o harness che legge stderr, abbinare il prefisso [claude-code:unrecognized_model]. Dopo il prefisso e uno spazio, Claude Code scrive un oggetto JSON su una riga. Claude Code può aggiungere campi ad esso in una versione successiva, quindi ignorare qualsiasi campo che non vi aspettate. Scrive almeno questi due:
model: la stringa del modello come l'avete configurataquery_source: il percorso della richiesta che ha usato il modello. Ad esempio, il valore èsdkper la conversazione principale di un'esecuzione-pe inizia conagent:per un subagent.
Claude Code scrive la riga in uno di due posti, a seconda di come la eseguite:
- In modalità non interattiva con
-p, Claude Code la scrive su stderr sotto ogni--output-format, in modo che possiate analizzare stdout senza filtrare la riga - In una sessione interattiva o una sessione in background, Claude Code la scrive al log di debug invece; eseguire con
--debugper catturarla in~/.claude/debug/<session-id>.txt
Claude Code scrive la riga una volta per ID di modello per processo. Scrive una riga separata per ogni ulteriore ID non riconosciuto, ad esempio uno usato da un subagent o da una funzionalità in background.
Claude Code non scrive la riga per ID di provider che risolve a un modello che riconosce, come ID Amazon Bedrock us.anthropic.claude-..., ID di Google Cloud's Agent Platform con un suffisso di versione @, e nomi di distribuzione Microsoft Foundry che contengono un ID di modello Claude. Claude Code controlla il modello dietro un ARN del profilo di inferenza dell'applicazione di Amazon Bedrock piuttosto che l'ARN stesso. Non scrive alcuna riga per un ARN che non può risolvere, come uno digitato male.
Cosa fare:
-
Se avete impostato l'ID di proposito, come un alias di LLM gateway, aggiungere una voce
modelOverridesal vostro file di impostazioni con l'ID come suo valore. Usare un ID di modello Anthropic come chiave, non un alias di famiglia comeopus. Permy-proxy-modeldalla riga di esempio, aggiungere questa voce:{ "modelOverrides": { "claude-opus-4-6": "my-proxy-model" } }Claude Code allora tratta
my-proxy-modelcomeclaude-opus-4-6e smette di scrivere la riga. -
Se l'ID nomina un modello più nuovo della vostra versione di Claude Code, eseguire
claude update -
Se l'ID è un typo, correggerlo in quale dei posti dove potete impostare un modello o variabili di alias lo contiene. Se
query_sourceinizia conagent:, correggerlo dove impostate il modello del subagente invece.
Prima della v2.1.233, Claude Code non scriveva alcuna riga quando inviava una richiesta per un ID di modello che non riconosceva.
Le voci allow della sandbox vengono ignorate sotto un blocco gestito
Questo avviso in /status e claude doctor significa che le impostazioni gestite impostano allowManagedReadPathsOnly o allowManagedDomainsOnly, quindi le voci allowRead o allowedDomains nel file indicato non si applicano:
sandbox.filesystem.allowRead is ignored — managed settings set allowManagedReadPathsOnly, so only allowRead paths from managed settings are honored. The 3 entries in /home/you/.claude/settings.json will NOT apply (see https://code.claude.com/docs/en/settings#sandbox-settings).
Per il blocco di rete, l'avviso nomina sandbox.network.allowedDomains e allowManagedDomainsOnly, e riporta only allowed domains (and WebFetch domain rules) from managed settings are honored.
Cosa fare:
- Non sei obbligato a intervenire sull'avviso
- Se ti servono quei percorsi o domini e il blocco è impostato dalle impostazioni gestite della tua organizzazione, chiedi al tuo amministratore di aggiungerli a quelle impostazioni. L'avviso resta finché non rimuovi anche le voci dal file indicato.
- Per far sparire l'avviso, rimuovi le voci dal file indicato. Per un file condiviso, come il
.claude/settings.jsondi un progetto, puoi lasciare le voci per i colleghi senza il blocco e lasciare visibile l'avviso.
Sandbox mask files left behind at write-deny paths
Questo avviso in claude doctor e /status elenca i file di maschera: file segnaposto di 0 byte di sola lettura nei percorsi in cui la sandbox nega la scrittura. Appare su Linux e WSL2 quando il sandboxing è abilitato con l'isolamento del filesystem attivo. Eliminali dalla tua shell quando nel progetto che li contiene non è più aperta alcuna sessione di Claude Code.
La sandbox crea un segnaposto mentre è in esecuzione un comando in sandbox e lo rimuove al termine del comando. Un segnaposto rimane in casi come questi:
- La sessione viene terminata forzatamente prima della fine del comando, ad esempio con SIGKILL
- Esci dalla sessione mentre un comando in sandbox è ancora in esecuzione, ad esempio uno in background
In claude doctor, l'avviso riporta:
- Sandbox mask files left behind at write-deny paths: /home/you/project/.claude/settings.local.json
Fix: A session leaves one where it was killed, or where it exited while a sandboxed command was still running. Remove each with `rm <path>` while no other Claude Code session is running in that project — a 0-byte read-only file where a settings file belongs makes "Yes, and don't ask again" fail to save, and the sandbox binds it read-only again on every start
Cosa fare:
- Chiudi tutte le sessioni di Claude Code aperte nel progetto che contiene i file elencati, inclusa qualsiasi sessione in cui
/statusha mostrato l'avviso, poi lavora dalla tua shell. Un segnaposto che la sandbox di un'altra sessione sta ancora usando è una parte attiva della protezione in scrittura di quella sessione - Nella tua shell, elimina ogni file elencato con
rm, e conferma sermchiede conferma per un file protetto da scrittura. L'avviso nomina fino a tre file e conta i restanti, quindi esegui di nuovoclaude doctordopo l'eliminazione finché l'avviso non appare più - Se una scelta di permesso che avete salvato con "Sì, e non chiedere di nuovo" non è rimasta, salvarla di nuovo dopo aver eliminato il segnaposto
Prima della v2.1.309, l'avviso riportava Stale sandbox mask files left by a killed session.
Prima della v2.1.257, claude doctor non contrassegnava questi file; le versioni precedenti lasciano gli stessi segnaposti dietro quando una sessione viene uccisa.
Two Claude Code config files exist
Claude Code sta usando il primo file nominato da questo messaggio, quindi il contenuto del secondo file non è in vigore. Il primo è .config.json, un nome precedente di .claude.json. Il messaggio include un controllo per capire quale file contiene la tua configurazione:
Two Claude Code config files exist: this run uses /home/you/.claude/.config.json, not /home/you/.claude.json. The file with the higher count here is usually yours, and this prints nothing else from them: grep -c -E '"(hasCompletedOnboarding|mcpServers)"' "/home/you/.claude/.config.json" "/home/you/.claude.json". To end this: if several hosts share this home, first get every host to version 2.1.319 or later, since an older one can write a moved .config.json back. Then stop your Claude processes on every host, move aside the one you do not want, and start none until no host lists it.
Su Windows, The one with hasCompletedOnboarding or mcpServers in it is usually yours. sostituisce la frase con il comando grep.
Cosa fare:
1. Trova il file che contiene la tua configurazione
- Su Windows: apri entrambi i file e verifica quale contiene
hasCompletedOnboardingomcpServers - Sulle altre piattaforme: nella tua shell, esegui il comando
grepdel messaggio e verifica quale file ha il conteggio più alto
2. Aggiorna ogni host che condivide la directory home
Se più host condividono questa directory home, aggiorna prima Claude Code su ogni host alla versione indicata dal messaggio o successiva.
3. Arresta Claude Code
Arresta i processi di Claude Code su ogni host.
4. Sposta il file che non vuoi
Sposta fuori dalla sua cartella il file che non vuoi. Spostalo anziché eliminarlo, così puoi rimetterlo al suo posto.
5. Attendi prima di avviare di nuovo Claude Code
Non avviare Claude Code su alcun host finché nessun host elenca più il file spostato nel suo vecchio percorso.
Il messaggio smette di comparire quando uno dei due file non c'è più.
Make this change again later: ~/.claude.json could not be updated
Questo avviso su stderr significa che una modifica a ~/.claude.json, come un accesso o una risposta a una richiesta di fiducia, non è stata salvata nel file:
Make this change again later: /home/user/.claude.json could not be updated, so it applies to this session only.
Cosa fare:
- Ripeti la modifica in una sessione successiva. Ad esempio, esegui di nuovo
/logino rispondi di nuovo alla richiesta di fiducia.
Le risposte sembrano di qualità inferiore al solito
Se le risposte di Claude sembrano meno capaci di quanto ti aspetti ma non viene mostrato alcun errore, la causa è solitamente lo stato della conversazione piuttosto che il modello stesso. Claude Code non cambia silenziosamente le versioni del modello. Può passare a un modello di fallback in questi casi:
- Un
--fallback-modelconfigurato subentra dopo un errore di disponibilità, solo per quel turno, con un avviso nella trascrizione - Un controllo di avvio di Amazon Bedrock o della piattaforma Agent di Google Cloud trova il tuo modello predefinito non disponibile, oppure il tuo account perde l'accesso ad esso durante la sessione
- Il fallback automatico del modello sui modelli Fable, Opus 5.5, Sonnet 5.5 e Opus 5 sposta la sessione al modello di fallback della categoria contrassegnata, quando quella categoria ne ha uno. Nella trascrizione appare un avviso
Il controllo della selezione del modello di seguito cattura il secondo e il terzo caso; il primo appare come un avviso nella trascrizione piuttosto che come un cambio /model. La configurazione del modello spiega quando si applica ogni fallback.
Controlla prima questi elementi:
- Selezione del modello: esegui
/modelper confermare che sei sul modello che ti aspetti. Una scelta/modelprecedente o una variabile di ambienteANTHROPIC_MODELpotrebbe averti messo su un modello più piccolo di quello che intendevi. - Livello di sforzo: esegui
/effortper controllare il livello di ragionamento attuale e aumentarlo per il debug difficile o il lavoro di progettazione. I valori predefiniti variano in base al modello, quindi controlla prima di assumere che sei al di sotto del massimo. Vedi Regola il livello di sforzo per i valori predefiniti per modello e il collegamentoultrathink. - Pressione del contesto: esegui
/contextper vedere quanto è pieno il window. Se è vicino alla capacità, esegui/compacta un punto naturale o/clearper ricominciare da capo. Vedi Esplora la finestra di contesto per come auto-compact influisce sui turni precedenti. - Istruzioni obsolete: file
CLAUDE.mdgrandi o obsoleti e definizioni di strumenti MCP consumano contesto e possono indirizzare le risposte. Il controllo/doctorcontrassegna i file di memoria sovradimensionati e le estensioni inutilizzate, e/contextmostra l'utilizzo dei token degli strumenti MCP. Prima della v2.1.205,/doctorapriva una schermata di diagnostica che contrassegnava i file di memoria sovradimensionati e le definizioni dei subagent.
Quando una risposta va male, il rewind di solito funziona meglio che rispondere con correzioni. Premi Esc due volte o esegui /rewind per tornare indietro prima del turno sbagliato, quindi riformula il prompt con più specifiche. Correggere nel thread mantiene il tentativo sbagliato nel contesto, il che può ancorare le risposte successive ad esso. Vedi Checkpointing.
Se la qualità sembra ancora non corretta dopo aver controllato quanto sopra, esegui /feedback e descrivi cosa ti aspettavi rispetto a quello che hai ottenuto. Il feedback inviato in questo modo include la trascrizione della conversazione, che è il modo più veloce per Anthropic per diagnosticare una vera regressione. Vedi Segnala un errore se /feedback non è disponibile nel tuo ambiente.
Se Claude ti avverte di un sospetto prompt injection, o rifiuta una richiesta a causa di un sospetto injection, e il testo che l'avviso nomina è contesto che Claude Code aggiunge automaticamente alla conversazione piuttosto che contenuto di file o web, esegui claude update e riprova. Se l'avviso si ripete dopo l'aggiornamento, segnalalo piuttosto che incollare il contenuto contrassegnato di nuovo nel prompt. Prima della v2.1.201, Sonnet 5 rifiutava alcune richieste allo stesso modo.
Segnalare un errore
Per gli errori dei componenti non trattati in questa pagina, consultare la guida pertinente:
- Il server MCP non è riuscito a connettersi o autenticarsi: MCP
- Lo script hook non è riuscito o ha bloccato uno strumento: Debug hooks
- Permesso negato o errori del filesystem durante l'installazione: Risoluzione dei problemi di installazione e accesso
Se un errore non è elencato qui o la correzione suggerita non aiuta:
- Eseguire
/feedbackall'interno di Claude Code per inviare la trascrizione e una descrizione ad Anthropic. Il comando offre anche di aprire un problema GitHub precompilato. L'invio ad Anthropic richiede l'autenticazione. Su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry e altri provider di terze parti, o quando non sono configurate credenziali Anthropic,/feedbacksalva un archivio locale che è possibile inviare al rappresentante dell'account Anthropic. - Se
/feedbackrisponde che è disabilitato dalla policy della tua organizzazione, consulta la voce relativa a quel messaggio - Eseguire
claude doctordalla shell per una diagnostica di sola lettura dell'installazione, oppure eseguire il checkup/doctorall'interno di Claude Code per trovare e risolvere i problemi di configurazione - Controllare status.claude.com per gli incidenti attivi
- Cercare i problemi esistenti su GitHub