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.
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.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 il first-byte deadline runs: Claude Code la interrompe alla scadenza e la invia nuovamente al massimo una volta per richiesta di modello, entro il budget di riprovazione, quindi termina il turno con No response from API se anche quel tentativo rimane senza risposta. Quando imposti
CLAUDE_CODE_RETRY_WATCHDOG, il limite di un tentativo non si applica. - 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 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.
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 countdownRetrying 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.
Se nessun dato arriva sul flusso di risposta per 20 secondi mentre una richiesta è ancora in sospeso, lo spinner mostra Waiting for API response · will retry in … · check your network prima che sia iniziato un tentativo. La richiesta non è ancora fallita: il countdown corre fino al punto in cui Claude Code interrompe la connessione bloccata. Dopo l’interruzione, ciò che vedi dipende da quanto lontano era arrivata la risposta:
- 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.
Sintonizza il comportamento dei tentativi
Puoi sintonizzare il comportamento dei tentativi con queste variabili d’ambiente: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: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 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:- 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.- 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, quindi Claude Code ha interrotto la richiesta invece di attendere l’intero timeout di richiestaAPI_TIMEOUT_MS, 10 minuti per impostazione predefinita. Claude Code invia di nuovo la richiesta al massimo una volta, se il budget dei nuovi tentativi lo consente. Quando anche il nuovo tentativo resta senza risposta, il turno termina con questo messaggio, che mostra quanto ha atteso ciascun tentativo. Quando imposti CLAUDE_CODE_RETRY_WATCHDOG, il limite di un solo nuovo tentativo non si applica e Claude Code riprova secondo il budget descritto in Regolare il comportamento dei nuovi tentativi.
- 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.
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.
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.
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.
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: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.
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.
- 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.
- 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:Not run · auto mode's check had no usable answer al posto di questo messaggio. Premi Ctrl+O per leggere il messaggio nel visualizzatore della trascrizione. I rifiuti gave no verdict descritti in The server returned no safety verdict mostrano la stessa riga. Prima della v2.1.296, il messaggio appariva sotto la chiamata 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.
- Riprova l’azione; di solito riesce al tentativo successivo
- Esegui
claude --debuge ripeti l’azione per vedere i dettagli nel log di debug
-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
- 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
- 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
- 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):
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:
- 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
- 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
Was not reviewed and did not run
Un rifiutowas 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:
- Un rifiuto
gave no verdict (the conversation is too long for the check) - Il messaggio
Auto mode classifier transcript exceeded context window
- 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.- 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
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:/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 e Max, 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
You've used 85% of your session limit · resets 3:45pm. Per monitorare l’indennità rimanente continuamente, aggiungi i campi rate_limits a una riga di stato personalizzata, oppure nell’app Desktop fai clic sull’anello di utilizzo accanto al selettore di modelli.
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./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 e Max, 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
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
Se il tuo account richiede il consenso per i crediti di utilizzo Fable, Claude Code ti chiede di confermare prima che una richiesta Fable fatturi i crediti di utilizzo. Quando il prompt di consenso si chiude senza che nessuno risponda, Claude Code termina il turno con uno di questi messaggi:continuing on Fable 5 e Fable 5 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"
Server is temporarily limiting requests
L’API ha applicato una limitazione di breve durata non correlata alla quota del tuo piano.- 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.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: abbassa
CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY, 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:
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 e Max, 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 superato un limite di spesa impostato dall’operatore del gateway. Il gateway blocca le tue richieste fino a quando il periodo indicato non si ripristina o l’operatore non aumenta il limite. Contrassegna ogni risposta429 bloccata con x-should-retry: false, quindi Claude Code mostra questo messaggio senza riprovare.
blocked_message, le sue istruzioni lo seguono. Prima della v2.1.225, il messaggio diceva solo spend limit reached; un gateway su una versione precedente invia ancora quella forma più breve.
Cosa fare:
- Attendi l’ora di ripristino che il messaggio nomina, o segui le istruzioni dell’operatore se il messaggio le contiene
- Chiedi al tuo operatore del gateway di aumentare il limite se lo raggiungi regolarmente
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.- Se hai un piano Pro, Max, 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. 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 all’API chi sei. Esegui/status in qualsiasi momento per vedere quale credenziale è attualmente attiva.
Not logged in
Non è disponibile alcuna credenziale valida per questa sessione.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 eseguito 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 in cui hai avviatoclaude - Per CI o automazioni in cui l’accesso interattivo non è possibile, configura uno script
apiKeyHelperche recuperi una chiave all’avvio - Consulta Precedenza dell’autenticazione per capire quale credenziale usa Claude Code quando ne sono presenti diverse
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 dell’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.
- Aggiorna alla v2.1.176 o successiva se questo errore compare 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’ambienteANTHROPIC_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.
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 le intestazioni HTTP non possono trasportare e ha fermato la richiesta prima di inviarla. Consulta Invalid request header value per sapere 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 di shell per dotenv e i terminali degli IDE possono caricare una chiave obsoleta da un file.envnel tuo progetto senza che tu la imposti 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 nella tua impostazioneapiKeyHelper 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 spiega 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.
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 esauriva l’intero budget di nuovi tentativi reinviando la richiesta con la credenziale segnaposto e poi segnalava un generico errore di autenticazione 401 invece del fallimento dello script.
Eseguire /login non aiuta in questo caso: 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 dei segreti
- Correggi il comando in modo che stampi su stdout solo la chiave, come singolo token di caratteri ASCII stampabili 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 l’output di errore compaiono anche in un pannello
Authenticationnel terminale. Prima della v2.1.212, il pannello si intitolavaCloud authentication.
Invalid request header value
Un valore che Claude Code stava per inviare come intestazione della richiesta contiene un carattere che le intestazioni HTTP non possono trasportare: un’interruzione di riga, un byte NUL o un carattere oltreU+00FF, come una virgoletta curva o uno spazio a larghezza zero. Claude Code ferma la richiesta prima che venga inviato 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’interruzione di riga indesiderata.
Claude Code esegue questo controllo quando invia richieste all’API Claude direttamente o tramite un gateway LLM. Su un provider cloud di terze parti come Amazon Bedrock, Claude Code non lo esegue prima dell’invio.
Invalid auth token: un bearer token daANTHROPIC_AUTH_TOKENoCLAUDE_CODE_OAUTH_TOKENInvalid ANTHROPIC_CUSTOM_HEADERS: un nome o un valore di intestazione che hai impostato inANTHROPIC_CUSTOM_HEADERS. La descrizione indica con un conteggio quale coppiaName: Valueè errata, 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’intestazione della richiesta da un’altra variabile d’ambiente, comeCLAUDE_AGENT_SDK_CLIENT_APP. La descrizione indica la variabile da correggere.
ANTHROPIC_API_KEY errata individuata 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 raggiunge mai questo controllo: Claude Code lo convalida quando lo script viene eseguito, e un output che un’intestazione HTTP non può trasportare fallisce con Your apiKeyHelper script is failing.
Dopo il secondo ·, il messaggio descrive il problema, come in questo esempio completo:
a non-ASCII character.
Cosa fare:
- Reimposta la variabile o l’impostazione indicata dal messaggio, digitando di nuovo i caratteri intorno 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 conteggio nel messaggio - Esegui
/statusper verificare quale fonte di credenziali è attiva
This organization has been disabled
Claude Code sta usando unaANTHROPIC_API_KEY obsoleta appartenente a un’organizzazione Console disattivata. Quando hai un accesso con abbonamento salvato, la chiave ha la precedenza su di esso.
· dipende dalle tue credenziali salvate: la prima forma compare quando un accesso /login memorizzato può subentrare dopo che hai rimosso la chiave, la seconda quando la chiave è la tua unica credenziale.
Le variabili d’ambiente hanno la precedenza su /login, quindi una chiave esportata nel profilo della tua shell o caricata da un file .env viene usata anche quando hai un abbonamento Pro o Max 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 non è impostata alcuna variabile d’ambiente 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:
apiKeyHelper hanno la precedenza su /login, quindi eseguire solo /login non aiuta finché una delle due continua a fornire una chiave. Consulta Precedenza dell’autenticazione.
Cosa fare:
- Se il messaggio indica
ANTHROPIC_API_KEY, rimuovila nella shell corrente ed eliminala dal profilo della tua shell o dal file.env, poi riavviaclaude - Se il messaggio indica
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 e non 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.
-p riportano questo errore con il codice oauth_org_not_allowed.
Cosa fare:
- Chiedi al tuo amministratore di attivare 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 la Claude Console per la configurazione.
- Se sei l’amministratore e non vedi un’opzione per attivare l’accesso, contatta l’assistenza Anthropic
Routines are disabled by your organization’s policy
Un Owner della tua organizzazione Team o Enterprise ha disattivato a livello di organizzazione le attività pianificate cloud, in precedenza routine. L’errore compare quando provi a crearne o eseguirne una, ad esempio su claude.ai/code/routines. Su Claude Code v2.1.227 o successiva, la stessa impostazione nasconde anche/schedule nella CLI.
- Chiedi a un Owner della tua organizzazione di attivare l’interruttore Scheduled tasks (Was Routines) in Organization settings > Capabilities > Remote sessions
Remote Control richiede l’API Anthropic
La sessione non comunica direttamente con l’API Anthropic, come richiesto da Remote Control.- 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 a un gateway cloud aziendale effettuato tramite
/login, che non supporta Remote Control e non ha alcuna variabile da rimuovere
- 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 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 tramite credenziali di breve durata che ottiene e rinnova usando il tuo accesso claude.ai salvato. Quando claude.ai smette di accettare quell’accesso, o a Claude Code non resta 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 o 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 segnalaOAuth 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 tratta queste righe:
Claude.ai login expiredeClaude.ai login was rejected: claude.ai non accetta più il tuo 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 a Claude Code non resta alcun accesso salvato con cui rinnovare la connessione
- 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.
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 indicano 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 compare nel terminale in cui è in esecuzioneclaude remote-control quando il server non riesce a usare il tuo accesso claude.ai per rinnovare la credenziale della sua connessione prima della scadenza. L’ultima frase dell’avviso indica per quanto tempo la credenziale corrente funzionerà ancora, oppure che è già scaduta:
- 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 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 avviata mentre avevi effettuato l’accesso tramite /login appartiene all’account e all’organizzazione claude.ai con cui eri connesso in quel momento.
- Esegui
/remote-controlper avviare una nuova sessione Remote Control con l’account o l’organizzazione correnti - Per tornare indietro, esegui
/logine accedi di nuovo all’account o all’organizzazione precedenti. Poi esegui/remote-control.
Remote Control server rejected the request (HTTP 404). Quell’errore poteva arrivare ore dopo il cambio.
Remote Control interrotto perché l’app che esegue la sessione è uscita 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 invece che da/login. Quando claude.ai rifiuta quel token, Claude Code ne chiede uno nuovo all’app. Se l’app risponde di essere disconnessa, oppure di aver ora effettuato l’accesso a un account Claude diverso, Claude Code termina la sessione Remote Control e invia all’app una di queste righe:
- Se l’app è disconnessa, accedi di nuovo, poi riattiva Remote Control nell’app
- Se l’app ha cambiato account, Claude Code non può proseguire la sessione terminata con il nuovo account. Avvia una nuova sessione Remote Control con quell’account.
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 non è riuscito a metà 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 non riuscito, vedi invece Login expired. Se ti autentichi con un token di lunga durata inCLAUDE_CODE_OAUTH_TOKEN, vedi gli stessi messaggi quando quel token scade o viene revocato.
-p) e nell’Agent SDK, i messaggi sono i seguenti e il codice di errore strutturato è authentication_failed:
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 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 richieste ripetute di accesso a ogni avvio, 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 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 a cui appartiene. Anthropic restituisce questo messaggio quando una credenziale è stata revocata di recente, quando un’organizzazione è stata disattivata 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 o unaANTHROPIC_API_KEY approvata, e la soluzione è diversa, quindi inizia eseguendo /status per vedere quale è attiva.
- Se
/statusmostra una rigaAPI keynon contrassegnata come non in uso, la credenziale attiva è unaANTHROPIC_API_KEYapprovata, che 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 sono più attivi. 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 e non di Anthropic, e/loginnon lo cambia. Correggi invece la credenziale che il tuo gateway si aspetta.
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 ferma 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 chiederti di accedere.
-p) e nell’Agent SDK, il messaggio è il seguente e il codice di errore strutturato è authentication_failed:
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. Claude Code stesso produce Login expired per un accesso che non è già riuscito a rinnovare, quindi non invia alcuna richiesta. Quando il rinnovo fallisce perché l’account stesso è sospeso e non perché l’accesso è obsoleto, Claude Code mostra invece Your account is on hold.
Le sessioni autenticate con una chiave API, con CLAUDE_CODE_OAUTH_TOKEN o con un provider di terze parti non usano l’accesso salvato e non vedono mai questo messaggio.
Puoi verificare questo stato prima che una richiesta fallisca: /status mostra una riga Login con valore Expired — log in again, oltre all’organizzazione e all’email salvate per l’accesso scaduto. La riga compare solo quando l’accesso salvato è la tua credenziale attiva e non può più essere aggiornato. Le sessioni autenticate in un altro modo non mostrano la riga, anche se un accesso scaduto rimane salvato. Prima della v2.1.210, in questo stato /status non dava alcuna indicazione che fosse mai esistito un accesso, 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 tuo 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 non riuscire, 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 sia 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 di aggiornamento condiviso, oppure è terminato lasciandolo attivo, e l’aggiornamento non ha fatto progressi mentre questa sessione attendeva. Claude Code ferma la richiesta prima di inviarla:-p) e nell’Agent SDK, il messaggio è il seguente e il codice di errore strutturato è server_error:
CLAUDE_CODE_OAUTH_TOKEN o con un provider di terze parti non usano l’accesso salvato e non vedono mai questo messaggio.
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 ripresentarsi, chiudi le altre finestre e gli altri processi di Claude Code, poi riprova.
- Se si ripresenta senza altri processi di Claude Code in esecuzione, esegui
/login. Accedere di nuovo non attende il lock di aggiornamento.
Couldn’t save your login
Hai effettuato l’accesso con claude.ai, ma Claude Code non è riuscito a salvare l’accesso nel suo archivio delle credenziali, quindi l’accesso non è stato completato. Su macOS questo può succedere quando il portachiavi di login si blocca, ad esempio in stop o per inattività, dopo che Claude Code aveva già letto o salvato credenziali al suo interno durante la stessa sessione.- Su macOS, sblocca il portachiavi di login, poi esegui di nuovo
/login - Sulle altre piattaforme, esegui di nuovo
/login - Se l’accesso continua a non essere salvato, consulta Accesso non effettuato o token scaduto per il comando di sblocco del portachiavi e altri passaggi di ripristino dell’archiviazione delle credenziali
Failed to start OAuth callback server
Quando/login, claude auth login o claude setup-token ti fanno accedere tramite il browser, Claude Code apre una porta in ascolto su 127.0.0.1 in modo che il browser possa restituirgli il risultato dell’accesso. Questo messaggio significa che Claude Code non è riuscito ad aprire quella porta, e l’accesso si interrompe prima che compaiano una finestra del browser o un URL di accesso:
Is port 0 in use?, il tentativo di mettersi in ascolto sull’indirizzo di loopback IPv4 127.0.0.1 è fallito del tutto. Poiché l’errore si verifica prima che esista un URL di accesso, il flusso Paste code here if prompted non è disponibile come soluzione alternativa.
Cosa fare:
- Per accedere subito senza il listener locale: se usi un abbonamento claude.ai, esegui
claude setup-tokensu una macchina in cui l’accesso funziona e imposta il token che stampa comeCLAUDE_CODE_OAUTH_TOKENsu questa macchina. Altrimenti impostaANTHROPIC_API_KEYsu una chiave della Claude Console. Precedenza dell’autenticazione spiega come Claude Code sceglie tra le credenziali. - Per usare invece l’accesso tramite browser su questa macchina, Claude Code deve potersi mettere in ascolto su
127.0.0.1. Se è in esecuzione all’interno di una sandbox, verifica che il criterio della sandbox consenta l’ascolto su porte locali, poi esegui di nuovo/login. Se dovrebbe poterlo fare e continua a fallire, esegui/feedbackin modo che la segnalazione includa i dettagli del tuo ambiente.
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 indica uno. Altrimenti la riga è:- 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 è:- Esegui
/logine seleziona Claude account with subscription. L’opzione Anthropic Console account non fornisce credenziali claude.ai. - Quando il messaggio indica una credenziale che ha la precedenza, come
ANTHROPIC_API_KEY, un’impostazioneapiKeyHelpero una chiave Console salvata da un precedente/login, rimuovila come indicato dal 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 cambiarla in quella sessione; avvia una sessione in cui hai effettuato l’accesso a claude.ai
- Consulta Disponibilità per gli altri requisiti degli artefatti, come piano, provider del modello e criteri dell’organizzazione
Administrator policy requires a Cloud gateway sign-in
Le impostazioni gestite di un amministratore su questa macchina impostanoforceLoginMethod 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 al gateway delle app Claude. Vedi uno dei due messaggi:
/login da quando il criterio ha raggiunto la macchina.
Se la macchina ha 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 indica la credenziale con cui è configurata la sessione, dove è impostata e il passaggio per rimuoverla. Ad esempio, con una variabile ANTHROPIC_API_KEY impostata nella tua shell, il messaggio è:
- 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
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 quella 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 intestazioni personalizzate, 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 residuo 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 viene a conoscenza della sospensione, e il secondo quando un accesso completato nel browser la segnala:-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 vedere 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 ferma ogni richiesta localmente senza riprovare.- Se il messaggio inizia con
Login expired, esegui/loginper accedere di nuovo - Per rinnovare un profilo scritto dall’accesso Console senza chiave 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 invariato 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
- 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 la formaRe-authenticate your Anthropic profileanche in questo caso. - Quando hai selezionato il profilo con
ANTHROPIC_PROFILE, il messaggio inizia conAnthropic profile login expired.
ANTHROPIC_PROFILE, che Claude Code individua come profilo attivo nella tua directory di configurazione Anthropic, o 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:- 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 compare come session token rejected e la sua vista dettagliata mostra:
- Esegui
/loginper accedere di nuovo - Riconnetti il connettore da
/mcp, oppure esegui/mcp reconnect <server>. Riconnetterlo prima di accedere di nuovo 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 è ancora rifiutato.
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 necessario allo 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, 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, che esegue di nuovo l’helper.
Per un server con un’intestazione Authorization statica nella sua configurazione:
/mcp.
Prima della v2.1.273, i casi di accesso scaduto, headersHelper e intestazione 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 indica quello scope:
/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.
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 per il server non è interpretabile 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 come:
- 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 parametroiss che non indica l’emittente che Claude Code si aspettava dai metadati OAuth del server. Un emittente 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 nel browser:
expected è l’emittente indicato nei metadati OAuth del server, e received è il valore iss trasportato dal reindirizzamento. Un accesso il cui reindirizzamento non contiene un 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 emittente 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 mix-up, quindi preferisci la correzione lato server
MCP_SDK_GENERATION=v2.
Refusing to send credentials to non-https token endpoint
Con il runtime v2, Claude Code invia una richiesta di token OAuth MCP solo a un endpoint dei token servito su HTTPS oppure sulocalhost, 127.0.0.1 o ::1. Questo messaggio significa che l’endpoint dei token del server non rientra in nessuno dei due casi, quindi Claude Code si è fermato prima di inviare la richiesta. Questo accade dopo l’accesso nel 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 dei 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 nel menu del server:
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 dei token del server è un semplice http:// a un indirizzo diverso da localhost, 127.0.0.1 o ::1.
Cosa fare:
- Servi quell’endpoint dei token su HTTPS, ad esempio mettendo il server dietro un reverse proxy o un tunnel che termina TLS e configurando il server in modo che dichiari 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 su semplice HTTP. Questa scelta dura finché non esci e si applica a ogni server. Il runtime v1 salta anche il controllo dell’emittente, quindi preferisci servire l’endpoint su HTTPS
AWS credentials expired or invalid
Il tuo token di sessione AWS è scaduto o è stato rifiutato. Questo messaggio compare in caso di 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 nella parte centrale varia in base alla tua configurazione. La parte stabile è la parte inizialeAWS credentials expired or invalid:
awsAuthRefresh.
Cosa fare:
- Se il suggerimento dice 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 o 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, poi selezionare Claude Platform on AWS · refresh credentials in 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 403, ma con un 403 segnala anche un rifiuto di autorizzazione, come unaAccessDeniedException dovuta a un permesso IAM mancante. Claude Code non riesce a 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 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 offre entrambe le indicazioni:
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 compariva solo quando era configurato awsAuthRefresh.
Cosa fare:
- Se il suggerimento dice 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 o 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 è impostato, 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 descritti 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 Agent Platform di Google Cloud 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 sull’azione da intraprendere, nella parte centrale, varia in base alla tua configurazione. La parte stabile è quella iniziale,Google Cloud credentials expired or invalid:
- 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 o 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, quindi riprova - Se passi attraverso un LLM gateway con
CLAUDE_CODE_SKIP_VERTEX_AUTHimpostato, aggiorna il token del gateway inANTHROPIC_AUTH_TOKENoANTHROPIC_CUSTOM_HEADERS, quindi riprova - Se ti autentichi con un file di chiave di un account di servizio, 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
Please run /login o Failed to authenticate, che non può aggiornare le credenziali Google Cloud.
Google Cloud authentication failed
Agent Platform di Google Cloud ha restituito un 403, che utilizza 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 sull’azione da intraprendere, nella parte centrale, varia in base alla tua configurazione. La parte stabile è quella iniziale,Google Cloud authentication failed:
- 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 o 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 ai modelli
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 della richiesta è stata rifiutata, oppure l’identità associata non ha accesso alla risorsa Foundry./login non può generare credenziali Azure. Il suggerimento sull’azione da intraprendere, nella parte centrale, varia in base alla tua configurazione. La parte stabile è quella iniziale, Microsoft Foundry authentication failed:
- 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 o 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_TOKENoppure 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 Azure RBAC
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, oppure un accesso revocato segnalato come invalid_grant:
-p e nell’Agent SDK, il codice di errore strutturato è cloud_credential_error. Prima della v2.1.267, il messaggio mostrava solo il testo del 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, quindi 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 propria cache delle credenziali e riprova prima che questo errore venga mostrato, quindi quando lo vedi la catena si è già bloccata in tentativi ripetuti.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 riportava API Error: AWS default-chain credential resolve timed out.
Prima della v2.1.207, una catena bloccata lasciava la richiesta in attesa indefinitamente invece di farla fallire.
Cosa fare:
- Esegui
aws sts get-caller-identitynella stessa shell con lo stessoAWS_PROFILE. Se si blocca anche questo comando, correggi il profilo; un comandocredential_processche chiede un 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 è terminata entro il limite di 60 secondi. La procedura guidata smette di attendere e fa fallire il passaggio di verifica:CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.
Le cause più comuni sono una rete o un proxy che blocca le richieste ad AWS, incluso l’aggiornamento del token SSO, e un helper delle credenziali 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 bloccata ad AWS può fallire per il proprio timeout per richiesta, che mostra un messaggio più breve nello stesso passaggio:
unreachable invece di mostrare uno dei due messaggi.
Cosa fare:
- Esegui
aws sts get-caller-identitynella stessa shell. Se si blocca anche questo comando, il blocco è al di fuori di Claude Code, nella tua rete, nel tuo proxy o nell’helper delle credenziali 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 helper delle credenziali 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 avviiclaude in modo interattivo, la sessione si è aperta senza accesso al gateway:
claude diverso da claude auth, Claude Code termina invece con questo messaggio quando il gateway non accetta più la sessione:
- Esegui
/loginnella sessione e completa l’accesso nel browser - Per un avvio non interattivo, avvia
claudenello stesso ambiente, esegui/login, quindi 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:- 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 al tuo amministratore del gateway:- Chiedi al tuo amministratore del 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 con il relativo motivo, mentre un diniego di autorizzazione di un servizio upstream viene inoltrato come descritto in Messaggi di errore upstream
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 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. - Assicurati che il tuo firewall consenta gli host elencati in Network access requirements
- I guasti intermittenti vengono ritentati automaticamente; i guasti persistenti indicano un problema di rete locale
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 raggiungereapi.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.
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.- 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.
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.- 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 intestazioneContent-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.
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.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:
- 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.- 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 Trusted, che consente l’allowlist predefinita di registri di pacchetti, API di provider cloud, registri di container e domini di sviluppo comuni e blocca altri domini su quel percorso
- 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, cambia Network access da Trusted a Custom, quindi aggiungi il dominio bloccato a Allowed domains. Inserisci un dominio per riga. Seleziona Also include default list of common package managers per mantenere l’allowlist predefinita insieme ai tuoi domini personalizzati. 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.
The proxy refused the connection
Vedi questo messaggio quando Claude legge un artefatto attraverso il proxy che hai impostato inHTTPS_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:
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.
- 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.
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:
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
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: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
Couldn’t reconnect to your Remote Control session
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
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 esegueclaude 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.
- 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.- 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
Hai inviato un rapporto dalla finestra di dialogo/feedback, /bug, o /share e il caricamento su Anthropic è fallito. La finestra di dialogo mantiene il tuo testo in modo che tu possa riprovare.
: not signed in. Run /login, then retry.: la finestra di dialogo carica solo quando Claude Code ha trovato credenziali Anthropic mentre si apriva, e nessuna era utilizzabile al momento dell’invio. Ad esempio, sei uscito dall’account su questa macchina nel frattempo, o il tuo login non poteva più essere aggiornato.- Una parentesi:
(server returned <status>)è il codice di risposta del servizio;(request timed out)e(couldn't reach the service)sono guasti di rete. Quando Claude Code non riesce a nominare un motivo, la parentesi è assente.
The draft is still queued. Try again later., e la bozza rimane nella coda per un altro tentativo.
Cosa fare:
- Per la dicitura non-signed-in, esegui
/logine invia di nuovo - Altrimenti, invia di nuovo; se anche altre richieste stanno fallendo, controlla la tua connessione di rete e vedi Unable to connect to API
- Se continua a fallire, apri una segnalazione su github.com/anthropics/claude-code/issues, come dice il messaggio
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./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:
/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:
/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.
/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 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 appare vicino a 200K token su un modello che ne accetta di più, una possibile causa è un ID modello che Claude Code non riconosce. Claude Code presume una finestra di 200K per un ID del genere, quindi per continuare a lavorare oltre quel punto, fornisci la reale finestra di contesto del modello.
Il contesto supera il limite di token
/context mostra questo avviso in cima al suo output quando la conversazione ha superato la finestra di contesto del modello. Le richieste falliscono con Prompt is too long finché non liberi spazio. Una sessione interattiva mostra quell’errore come la riga Context limit reached.
/clear invece di /compact quando hai impostato DISABLE_COMPACT.
Cosa fare:
- In una conversazione multi-turno, esegui
/compactper riassumere i turni precedenti e liberare spazio. Per ricominciare da capo, esegui/clear - Per altri modi per ridurre l’utilizzo, vedi Prompt is too long
/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; 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.
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.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
- 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
Unable to resize image
Claude Code non ha potuto ridimensionare un’immagine allegata prima di inviarla all’API.- 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.- 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.- 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
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
Un proxy o gateway LLM tra Claude Code e l’API ha rimosso l’intestazione della richiestaanthropic-beta, quindi l’API ha rifiutato i campi che dipendono da essa.
context_management insieme a un’intestazione anthropic-beta che li abilita. Quando un gateway inoltra il corpo ma elimina l’intestazione, l’API vede campi che non riconosce.
Cosa fare:
- Configura il tuo gateway per inoltrare l’intestazione
anthropic-beta. Vedi feature pass-through per ciò che i gateway devono inoltrare. - Come fallback, imposta
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1prima di avviare. Disabilita le capacità pre-release copre l’ambito esatto.
Lo schema di input dello strumento non è valido
Uno strumento nella richiesta ha dichiarato uninput_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.
$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.216, esegui
claude update. - 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, comemcp__<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:
- 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.
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: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.
/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.- 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. - 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 SDKsetModel(), 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.
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.
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 modelli tramite il metodo Agent SDKsetModel() o 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 cinque secondi. La sessione mantiene il suo modello attuale.
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ì:
- 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.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 erroreclaude_code_version_too_old, e il messaggio dice quale minimo si applica.
- 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’allowlistavailableModels 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 <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.
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
- 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
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 recitaModel switch blocked by a PreModelSwitch hook senza nominare il modello di destinazione.
- 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.
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.
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.
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.- 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. - All’avvio con il flag
--advisor, un avviso recita"<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.e la sessione si avvia comunque.
- 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
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ù.- 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 ahigh. Il modello non accetta quella combinazione, quindi l’API ha rifiutato la richiesta.
· 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.
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.- 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: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.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 bloccoredacted_thinking che un turno precedente nella cronologia della conversazione porta.
- 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: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: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.
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: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 rigaDetails: `[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.
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: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.
- 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 rifiutoreasoning_extraction, e il messaggio di rifiuto include questa 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:- 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 comandoclaude e dai suoi sottocomandi, da un nome di comando che invii al prompt e da comandi come /security-review che raccolgono contesto eseguendo comandi della 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.
- Rimuovi
-po--print.--bgaccetta il prompt come argomento posizionale, quindiclaude --bg "<task>"è il comando completo. Consulta Avviare nuovi agenti dalla 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 è riuscito a capire se lo intendessi come flag di background o come testo. Il comando non ha avviato nulla, ha stampato questa riga ed è terminato con codice di uscita 1:
--background, la riga indica 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 su file
Hai passato--append-subagent-system-prompt insieme a --append-subagent-system-prompt-file in un’unica invocazione di claude, quindi claude termina con codice di uscita 1 invece di avviare la sessione:
claude terminava allo stesso modo quando passavi --system-prompt con --system-prompt-file, oppure --append-system-prompt con --append-system-prompt-file, perché quelle coppie entravano in conflitto invece di combinarsi. In quelle versioni il messaggio indica la coppia che hai combinato.
Cosa fare:
- Mantieni una forma del flag e rimuovi l’altra. Per combinare un file di prompt fisso con testo specifico per ogni esecuzione, unisci il testo nel file prima dell’avvio invece di passare entrambi i flag
Configurazione --agents non valida
Il valore che hai passato a --agents non è valido, quindi claude termina con codice di uscita 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 verificato e la sessione si avvia; un valore letto da un file viene verificato a ogni avvio. Prima della v2.1.242, Claude Code avviava comunque la sessione.
- 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 stesso - Quando viene analizzato ma una definizione di agente non corrisponde allo schema per i subagent definiti tramite 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 '-'
…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 su file ha i propri rifiuti, 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.
- Correggi ogni problema elencato nel messaggio, quindi esegui di nuovo il comando. Consulta i campi accettati da un subagent definito tramite CLI.
Non è possibile creare sessioni cloud da una sessione --restricted
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 lato client, prima di contattare il server, quindi non viene creata alcuna sessione cloud:
- 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ì
--restricted; le versioni precedenti rifiutano il flag stesso con un errore di opzione sconosciuta.
Le sessioni cloud sono disabilitate dalla policy della tua organizzazione
La policyallow_remote_sessions della tua organizzazione è disattivata, quindi le sessioni cloud e i comandi che le usano non sono disponibili:
/teleport, /remote-env o /web-setup. Prima della v2.1.268, l’invio di uno di quei comandi restituiva invece Unknown command.
Se invece il messaggio indica una credenziale che questa sessione sta usando 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 su claude.ai/admin-settings/claude-code
Cloud sessions use your claude.ai login
Quando il rifiuto della policy indica una credenziale che questa sessione sta usando 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 o --teleport. Prima della v2.1.296, anche in questo caso Claude Code stampava la forma che ti invita a 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 è:/teleport o /web-setup, restituisce questo messaggio. Lo fa anche dove la tua shell stamperebbe una forma Cloud sessions aren't available:, e la sua seconda frase è Check your network connection, then restart Claude Code and try again.
Una volta che la richiesta della policy è fallita, il messaggio indica cosa non ha funzionato. Questo vale quando avvii, riprendi o invii un messaggio a una sessione cloud dalla tua shell con un flag come --cloud o --teleport. Senza un percorso verso l’API, il messaggio è:
ANTHROPIC_API_KEY, il messaggio può anche indicarla e suggerire di rimuoverla:
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 causa indicata, ad esempio controllare il proxy o rimuovere la credenziale indicata, poi esegui di nuovo il comando
Nessuno stash eseguito perché una cartella ha sostituito un file tracciato
Questo messaggio significa che una cartella nel tuo checkout ora si trova dove prima c’era un file o un collegamento tracciato da git. Compare dopo che scegli l’opzione di stash mentre porti una sessione cloud nel tuo terminale, ad esempio conclaude --teleport o /teleport. Eseguire lo stash di quello stato potrebbe eliminare i file all’interno della cartella, quindi Claude Code rifiuta lo stash e lascia invariati il checkout e l’indice:
- Esegui il commit della modifica o sposta la cartella altrove, come indica il messaggio, poi 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 termina con codice di uscita 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 usasse la parola chiave format veniva trattato come non valido.
format, come "format": "email", sono validi: Claude Code accetta format come annotazione e non lo 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
Il file di impostazioni supera il limite di 2MiB
Il file che hai passato a--settings è più grande di 2 MiB, quindi claude termina con codice di uscita 1 all’avvio invece di caricarlo. Prima della v2.1.214, Claude Code leggeva il file senza alcun controllo sulla dimensione, e un file di diversi gigabyte o un file di dispositivo come /dev/zero facevano crescere la memoria senza limiti.
--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:
- Indica a
--settingsun file di impostazioni JSON regolare inferiore a 2 MiB. Consulta Impostazioni per il formato.
La directory corrente non esiste più
Hai avviatoclaude 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 propria directory di lavoro, quindi termina con codice di uscita 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 sorgente minificato del bundle e uno stack ENOENT ... uv_cwd grezzo invece di questo messaggio.
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 del terminale a quella cartella. Anche altri comandi che leggono quella cartella falliscono allo stesso modo: ls in quella posizione riporta Operation not permitted, anche con sudo.
Cosa fare:
- Passa a 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 dalla directory e rientraci, quindi esegui di nuovoclaude - Per
EPERMsu macOS, chiudi la tua app del terminale con Cmd+Q, riaprila, torna in 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 del 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 nell’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 e termina con codice di uscita 1 invece di avviare la sessione:
- Per
ENOSPC, libera spazio su disco nel volume che contiene la directory temporanea - Per le forme
Refusing to use it, rimuovi la voce indicata stessa, non ciò a cui punta un collegamento, 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
Non è stato possibile risolvere la directory in una posizione reale
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 verifica che la posizione reale della directory, con eventuali 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:
- 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
/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 aiutare.
Workspace non attendibile all’avvio di Remote Control
Hai avviato la modalità server di Remote Control conclaude remote-control o il suo alias claude rc in una directory che non hai contrassegnato come attendibile, e il comando non è riuscito a 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 termina con codice di uscita 1:
Error: Workspace not trusted. appaiono in un terminale troppo piccolo per mostrare cosa attiva il considerare attendibile la directory, o in uno che non ha riportato le proprie dimensioni. Ingrandisci la finestra o passa a una normale finestra del terminale, quindi esegui di nuovo claude rc.
Nella tua directory home il messaggio è diverso, perché la finestra di dialogo di attendibilità del workspace non salva mai l’attendibilità 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 non può funzionare in quella posizione.
n o premi Invio alla domanda Trust <directory>?, il comando stampa un messaggio Remote Control did not start che indica la directory e termina con codice di uscita 1. Esegui di nuovo claude rc per rispondere y.
Cosa fare:
- Prima rendi attendibile la directory da un terminale: esegui
claude rclì e rispondiy, oppure eseguiclaudelì e accetta la finestra di dialogo di attendibilità del workspace, quindi esegui di nuovo il comando originale - Nella tua directory home, passa a una directory di progetto e avvia Remote Control da lì
Non trasferito alle sessioni avviate da Remote Control
Hai avviato Remote Control con un flag globale diclaude 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, indicando il flag:
--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ò apparire 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 proprie 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
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 termina con codice di uscita 1 invece di avviarsi:
- 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
claude remote-control nella v2.1.300, quindi un comando scritto per una versione precedente può ancora contenerne uno.
claude import non è ancora disponibile in questa build
Hai eseguitoclaude import e Claude Code ha rilevato che il flusso di importazione è disattivato, quindi il comando termina con codice di uscita 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 tramite un feature flag che recupera da Anthropic e memorizza nella cache su disco. Questo messaggio significa che il valore nella cache è disattivato. La causa è di solito una delle seguenti:
- Non hai avviato una sessione dall’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 on AWS, oppure tramite un gateway delle app Claude. Claude Code non recupera i feature flag in queste sessioni, quindi
claude importresta non disponibile. - Hai impostato
DISABLE_TELEMETRY,DO_NOT_TRACK,DISABLE_GROWTHBOOKoCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, che disattivano il recupero dei feature flag, quindiclaude importresta non disponibile.
- Su una nuova installazione, avvia
claude, attendi che la sessione venga caricata, esci ed esegui di nuovoclaude import - Dove il recupero dei feature flag resta disattivato, imposta tu stesso la configurazione: aggiungi i server MCP con
claude mcp adde crea i fileCLAUDE.md, le skill e i comandi e i subagent che vuoi trasferire. Il messaggio indica 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.
Impossibile leggere la configurazione di Claude Code
Hai eseguitoclaude import mentre Claude Code non riusciva ad analizzare ~/.claude.json, il file in cui memorizza il tuo accesso e lo stato per progetto. Il sottocomando legge quel file per verificare la disponibilità, ma non mostra la finestra di dialogo di ripristino che mostra la sessione interattiva, quindi termina con codice di uscita 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.
- Esegui
claudesenza argomenti. Claude Code rileva il file non valido e offre 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
Impossibile importare un server da Claude Desktop
Claude Code non è riuscito ad aggiungere uno dei server che hai selezionato inclaude 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.
claude mcp limita a lettere, numeri, trattini e trattini bassi. Altri motivi includono una configurazione del server che non supera la validazione 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.
Impossibile aggiungere un server MCP all’ambito managed
Hai eseguitoclaude 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.
- 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
Impossibile aggiungere un server MCP quando le impostazioni gestite consentono solo server dei plugin
Hai eseguitoclaude 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 termina con codice di uscita 1 invece di salvare un server che non verrebbe mai caricato:
claude mcp add-from-claude-desktop segnala ogni server che selezioni come non importato, con questo messaggio come motivo. /import riporta 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
Impossibile leggere .mcp.json
Un comando che legge il file.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 termina con questo errore invece di leggere il file.
.mcp.json lasciava il comando in attesa all’infinito senza 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.
Il server MCP non è stato salvato o rimosso
Hai eseguitoclaude mcp add, claude mcp add-json o claude mcp remove per un server nell’ambito user o local. Entrambi gli ambiti sono memorizzati in ~/.claude.json, e la modifica non è presente in quel file quando Claude Code lo rilegge dopo la scrittura. Il comando termina con questo errore invece della sua riga di successo.
was not removed from e termina con then remove the server again. Per un server nell’ambito local, il percorso è seguito dalla directory del progetto a cui appartiene la voce, come (local scope for /path/to/project).
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.
Cosa fare:
- Rendi scrivibile il file indicato dal messaggio, oppure esegui il comando al di fuori della sandbox, quindi esegui di nuovo lo stesso comando di aggiunta o rimozione.
Il server MCP potrebbe non essere stato salvato o rimosso
Hai eseguitoclaude 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 su disco oppure no. Il testo tra parentesi è l’errore di quella lettura.
may not have been removed e termina con then remove the server again if it is still listed.
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 nell’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.
Il server è ospitato da Anthropic e non supporta OAuth locale
Hai avviato l’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 includonomicrosoft365.mcp.claude.com, gmail.mcp.claude.com e gcal.mcp.claude.com. Claude Code si rifiuta di avviare il proprio flusso OAuth locale per questi host sia dal pannello /mcp sia da claude mcp login, perché il loro accesso funziona solo tramite claude.ai.
- 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, dopo aver effettuato l’accesso con l’account che usi in Claude Code. Una volta collegato, il connettore appare automaticamente in Claude Code se il tuo metodo di autenticazione attivo è un accesso con abbonamento claude.ai
Il server ha rifiutato l’header Authorization generato dall’headersHelper configurato
Un server MCP il cuiheadersHelper 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:
- 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 del progetto. Verifica che stampi un valoreAuthorizationaccettato dall’endpoint del server - Dopo aver corretto l’helper o l’origine delle sue credenziali, seleziona il server in
/mcpe scegli Reconnect
Authorization. Quel discovery poteva fallire con Incompatible auth server: does not support dynamic client registration invece di segnalare la credenziale rifiutata.
Strumento di richiesta di permesso MCP non trovato
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 termina con questo errore, e 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 completasse la connessione, quindi anche un server funzionante ma lento ad avviarsi produceva questo errore.
Available MCP tools: indica gli strumenti MCP che erano connessi.
Cosa fare:
- Verifica che il server si avvii e resti 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
La porta di callback OAuth è già in uso
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 variabileMCP_OAUTH_CALLBACK_PORT o --callback-port, poiché senza di essa Claude Code sceglie una porta disponibile.
netstat -ano | findstr :<port>.
Cosa fare:
- Esegui il comando indicato nel messaggio per trovare il processo che occupa la porta, e arrestalo o attendi che termini
- Se un altro programma ha bisogno di quella porta in modo permanente, registra un URI di reindirizzamento diverso con il server e imposta la sua porta con
MCP_OAUTH_CALLBACK_PORTo--callback-port, a seconda di quale usi - Quindi avvia di nuovo l’accesso, ad esempio selezionando il server in
/mcp
Nessuna porta disponibile per il reindirizzamento OAuth
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 a effettuare il bind di una porta locale per esso. Qualcosa sulla macchina gli impedisce di mettersi in ascolto su127.0.0.1, ad esempio un software di sicurezza o una policy della sandbox che nega i listener locali.
- 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 effettuare il bind di una porta locale - Quindi avvia di nuovo l’accesso, ad esempio selezionando il server in
/mcp
/security-review fallisce senza origin/HEAD
/security-review costruisce il contesto della revisione calcolando il diff del tuo branch rispetto a origin/HEAD, il ref locale che registra quale branch è quello predefinito sul tuo remote origin. Quando quel ref non esiste, i comandi git che raccolgono il diff falliscono e la revisione si interrompe prima di iniziare.
git log o un diverso git diff. Git crea origin/HEAD solo quando il remote annuncia un branch predefinito e il tuo refspec di fetch lo include, come avviene con un git clone completo di un remote con dei commit. Il ref manca in queste configurazioni:
- Un checkout single-branch o di CI, che esegue il fetch di un refspec troppo ristretto
- Un remote il cui HEAD lato server punta a un branch su cui nessuno ha eseguito il push
- Un repository senza remote
origin, o uno su cui non hai mai eseguito il fetch
Shell command permission check failed for pattern "...": il controllo dei permessi del comando non l’ha consentito. Permission checks on injected commands spiega quali risultati causano l’interruzione 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 lo ha. Installa Git for Windows o modifica il frontmatter inshell: powershell. Consulta Come vengono eseguiti i comandi inseritiNo shell command in <name> was run: uno dei comandi!del file contiene un carattere di controllo grezzo diverso da tabulazione o a capo, quindi nessuno di essi viene eseguito. Consulta come trovare e rimuovere il carattere
- Crea il ref indicando il branch predefinito del tuo remote:
git remote set-head origin <default-branch>. Questo funziona ogni volta che esiste il ref di tracciamento localeorigin/<default-branch>. Se non esiste, come nei clone single-branch, 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 è quello predefinito. Fallisce conerror: Cannot determine remote HEADquando il remote non annuncia alcun branch predefinito, perché è vuoto o il suo HEAD punta a un branch su cui nessuno ha eseguito il push; in tal caso indica il branch esplicitamente. Fallisce conerror: Not a valid refquando il tuo clone non esegue il fetch di quel branch; prima amplia il refspec come indicato sopra. - Se il repository non ha un remote, aggiungine uno con
git remote add origin <url>ed esegui il fetch prima di creare il ref. Se il remote è vuoto, esegui prima il push del tuo branch congit push -u origin HEADe indica quel branch nel comando set-head;origin/HEADpunterà quindi al branch di cui hai appena eseguito il push, quindi/security-reviewvedrà un diff vuoto finché il branch non divergerà da esso.
Nessun comando shell in una skill o in un comando è stato eseguito
Uno dei comandi di contesto dinamico!`<command>` in un file di skill o di comando personalizzato contiene un carattere di controllo grezzo diverso da tabulazione o a capo. Claude Code rifiuta l’intera invocazione prima che venga eseguito qualsiasi comando del file.
Il messaggio nomina lo strumento shell che avrebbe eseguito i comandi, Bash o PowerShell, e termina con il comando rifiutato. Ognuno di questi caratteri viene sostituito da � in modo che tu possa vedere dove si trova:
- 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.
È necessario fornire un input quando si usa --print
claude senza argomenti 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 riquadri 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 indica --print anche quando non hai passato il flag. Passare -p/--print senza un prompt e senza nulla inviato tramite pipe su stdin produce lo stesso errore ovunque.
- Per l’uso interattivo, esegui
claudein un vero terminale: Windows Terminal o la console di PowerShell invece di ISE, e il terminale integrato del tuo IDE invece di un riquadro di output - Per un uso singolo, passa il prompt:
claude -p "your question", oppure invialo tramite pipe conecho "your question" | claude -p
Claude Code non può leggere la tastiera qui
Hai eseguitoclaude 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 il proprio flusso di input.
Una sessione interattiva ha bisogno di un terminale da cui leggere i tuoi tasti, e ciò che Claude Code fa in assenza di uno dipende dalla tua piattaforma:
- Windows: Claude Code stampa il messaggio su stderr e termina con codice di uscita 1 invece di avviare l’interfaccia
- macOS e Linux: Claude Code legge i tuoi tasti da
/dev/ttye avvia la sessione, usando l’eventuale testo inviato tramite pipe come primo prompt. Vedi il messaggio quando/dev/ttynon può essere aperto, e la sua prima riga indica/dev/ttyal posto della formulazione per Windows.
- 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>.
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.
L’input conteneva solo spazi vuoti
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:claudetermina 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 resta 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.
- Includi testo visibile nel prompt. Se uno script costruisce il prompt da una variabile o da un file, verifica che l’origine non sia vuota prima di chiamare Claude Code.
L’input stream-json conteneva oltre 256M caratteri senza un a capo
Il tuo programma ha inviato più di 268.435.456 caratteri su stdin senza un a capo a un’esecuzioneclaude -p --input-format stream-json, quindi Claude Code stampa questo errore su stderr e termina con codice di uscita 1 invece di accumulare altro input nel buffer. Il messaggio indica quel limite come 256M. Prima della v2.1.257, Claude Code accumulava tale input nel buffer senza limiti, facendo crescere la memoria finché il processo non andava in crash o veniva terminato.
- Controlla cosa viene inviato tramite pipe a 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
Comando sconosciuto
In una sessione interattiva del terminale, hai inviato un nome/ che non corrisponde ad alcun comando in questa sessione, quindi Claude Code segnala il nome invece di eseguire qualcosa:
- Un errore di battitura, come
/heplper/help. Come il menu dei comandi trova corrispondenze con ciò che digiti spiega come scegliere una corrispondenza vicina prima di inviare - 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. Le voci di risoluzione dei problemi per
/web-setupe/scheduleillustrano due casi comuni. 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
/ senza corrispondenza solo in una sessione interattiva del terminale. In tutte le altre sessioni, 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 della chat dell’estensione VS Code
- Le sessioni cloud e le attività pianificate cloud
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 / 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 indicato
Il diff è troppo grande per ultrareview
Il diff tra il tuo branch e il branch di base, incluse le modifiche non sottoposte a commit e quelle nell’area di staging, supera i limiti di dimensione per un’ultrareview, quindi/code-review ultra e il sottocomando claude ultrareview rifiutano la revisione prima che la sessione cloud si avvii. 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.
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, come
/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 revisionali uno alla volta. I file indicati dal messaggio contribuiscono con il maggior numero di righe modificate, quindi inizia spostandoli in un branch a sé.
Impossibile trovare il merge-base con il branch di base
/code-review ultra e il sottocomando claude ultrareview revisionano il diff tra il tuo branch e un branch di base, il che richiede un commit condiviso dai due. Quando git merge-base non ne trova nessuno, Claude Code rifiuta la revisione prima che la sessione cloud si avvii. 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 repository in cui il diff dell’intero albero non è possibile, come con il formato oggetti SHA-256.
- 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 che era già nel tuo clone: il suggerimento riporta
Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`) - Hai passato un branch di base che non era nel tuo clone: Claude Code ne ha eseguito il fetch da origin prima del confronto. Il suggerimento recita
<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 capire 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 tramite fetch, e su un clone completo quel comando fallisce confatal: --unshallow on a complete repository does not make sense.
- Se un altro branch è il tuo vero branch di base, passalo esplicitamente:
/code-review ultra <branch> - Se il tuo clone potrebbe non avere la cronologia completa, esegui
git fetch --unshallow origined esegui di nuovo la revisione
Il tuo checkout non ha branch
Un checkout può avere dei commit ma nessun branch: se eseguigit init seguito da git fetch <url> e git checkout FETCH_HEAD, ottieni un HEAD scollegato senza ref. Claude Code impacchetta il tuo repository come bundle git per caricarlo per un’ultrareview, e non può creare il bundle di un repository che non ha branch o altri ref, quindi /code-review ultra e il sottocomando claude ultrareview rifiutano la revisione prima che la sessione cloud si avvii.
- Crea un branch al commit corrente con
git checkout -b <name>, quindi esegui di nuovo la revisione
Nessun account GitHub è collegato al tuo account Claude
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, o 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.
/web-setup non è disponibile nella tua sessione, il messaggio indica solo il link a claude.ai.
Cosa fare:
- Esegui
/web-setupper collegare il tuo accesso alla GitHub CLI al tuo account Claude, oppure collega un account su claude.ai/connect-github - Esegui di nuovo la revisione un minuto dopo il collegamento
Il tuo account GitHub collegato non può vedere il 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.
/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 quell’accesso al tuo account Claude - Esegui di nuovo la revisione dopo la modifica
Il controllo preliminare della GitHub App non è riuscito temporaneamente
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 si è concluso 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 esempioCould not upload repo bundle (<error>), e termina con la frase sul controllo preliminare:
- Esegui di nuovo il comando dopo un momento. Quando il controllo GitHub viene superato, Claude Code può avviare la sessione da un clone GitHub, quindi il caricamento non riuscito non blocca più l’avvio
- Se i nuovi tentativi continuano a fallire, l’inizio del messaggio indica cosa ha bloccato il caricamento. Quando quella causa è qualcosa che puoi correggere, correggila in modo che la sessione possa invece avviarsi dal tuo repository locale
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 un’ultrareview di un branch, e il caricamento non può seguire una delle impostazioni git che determinano quali regole degli attributi si applicano ai tuoi file. Se il caricamento procedesse e ignorasse una regola, un file che git trasforma prima di memorizzarlo, come uno cifrato da un clean filter, potrebbe arrivare nel cloud così com’è su disco. Claude Code rifiuta invece il caricamento, e non viene caricato nulla:core.attributesFile e attr.tree, ciascuno con la propria soluzione.
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 soluzione indicata nella frase finale del messaggio
GitHub non è collegato al tuo account Claude
Hai avviato una sessione cloud dal tuo repository locale, ad esempio con/autofix-pr. Nessun account GitHub è collegato al tuo account Claude, o il collegamento è scaduto, quindi Claude Code rifiuta l’avvio:
/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 accesso alla GitHub CLI al tuo account Claude, oppure collega un account su claude.ai/connect-github. Consulta Opzioni di autenticazione GitHub per le differenze tra i due metodi. - Esegui di nuovo il comando un minuto dopo il collegamento
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 lo 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 è una allowlist di IP, il messaggio è:
- Allowlist di IP: chiedi a un proprietario 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 di GitHub da modificare.
- Single sign-on: disconnetti GitHub su claude.ai/customize/connectors, quindi connettilo di nuovo. Quando GitHub lo chiede, fai clic su Authorize accanto alla tua organizzazione, in modo che la nuova connessione sia autorizzata 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
Autorizzazione single sign-on necessaria
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 quella verifica perché il tuo token gh non è ancora autorizzato per l’organizzazione. La procedura guidata mostra l’avviso con i passaggi per l’autorizzazione:
- Autorizza di nuovo il tuo accesso alla GitHub CLI con gli scope
repoeworkfloweseguendogh auth refresh -h github.com -s repo,workflow, e autorizza l’organizzazione quando GitHub chiede 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
Admin permissions required per questa condizione.
Failed to resume the conversation
Claude Code non è riuscito a leggere o elaborare la trascrizione salvata della sessione che hai selezionato dal selettore diclaude --resume, quindi termina il processo anziché continuare in uno stato caricato solo parzialmente. Il messaggio include il comando per riprovare:
/resume all’interno di una sessione in esecuzione segnala invece Failed to resume conversation nella conversazione, e la tua sessione corrente continua a essere eseguita. 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 non riescono a riprendere la sessione quando la trascrizione salvata contiene una voce che non sono in grado di 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 aclaude --resume <session-id> e nessuna trascrizione salvata corrisponde:
- 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, seguendo le regole di pulizia della conservazione
- Macchina diversa: Claude Code memorizza le trascrizioni localmente, quindi riprendi la sessione sulla macchina in cui è stata eseguita
- Copie duplicate: se hai copiato una directory di progetto in
~/.claude/projectsin modo che due trascrizioni abbiano lo stesso ID, Claude Code mostra questo messaggio anziché riprendere arbitrariamente una delle copie
- Per una sessione interattiva, apri il selettore delle sessioni con
claude --resumee premiCtrl+Aper estenderlo a tutti i progetti su questa macchina, quindi 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 ha segnalato un errore (EBADF) quando Claude Code ha letto il file di trascrizione di questa sessione
Hai ripreso una sessione su Windows, il suo file di trascrizione salvato si è aperto normalmente, e poi la lettura è fallita con l’errore di sistema EBADF. L’errore di sistema non indica perché la lettura sia fallita, quindi il messaggio suggerisce le cause probabili e cosa provare: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 essere eseguita.
Cosa fare:
- Escludi la cartella che contiene le trascrizioni delle tue sessioni dai software che analizzano o intercettano le letture dei file, come gli strumenti di sicurezza, crittografia 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
claude --resume <session-id> terminava con Failed to resume session <session-id>, e un’esecuzione -p stampava solo il testo dell’errore di sistema, come 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 si 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 esecuzione in background che un riavvio abbandonerebbe, come una shell in background o un subagent. Attendi che l’attività finisca o interrompila con/tasks, quindi esegui di nuovo/tui fullscreeno/tui defaultCannot switch renderers in this session: la sessione ha restrizioni che Claude Code non può passare al processo riavviato. Prima della v2.1.234, Claude Code effettuava comunque il riavvio e la sessione riavviata veniva eseguita senza di esse
launch flags: a custom system prompt, a tool allowlist, or restricted settings: hai avviato la sessione con un flag che Claude Code non ripassa al processo riavviato. Questi flag includono--system-prompt,--system-prompt-file,--append-system-prompt-file, una 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 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 ripassa 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ò trasportarne il testo come lo stesso valore
- In una sessione avviata senza quelle restrizioni, esegui
/tui fullscreen, oppure/tui defaultper tornare indietro. Claude Code salva lì l’impostazionetui
Claude Code couldn’t restart
Quando questo messaggio dice che la tua conversazione è salvata, la conversazione è su disco e puoi riprenderla da dove si era interrotta. Claude Code si stava riavviando, ad esempio per passare al rendering a schermo intero o tornare da esso dopo che hai eseguito/tui, e non è riuscito ad avviare il nuovo processo, quindi è uscito con stato 1:
/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 non riuscire, avvia Claude Code dalla tua shell con
claude --debug-file claude-debug.log. Se un riavvio da quella sessione non riesce,claude-debug.lognella directory da cui sei partito registra una rigaFailed to relaunch:con l’errore del sistema operativo. Includi quella riga quando segnali il problema
Impossibile aprire 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 non è riuscito. 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 non riuscito, 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:
- Apri Claude Desktop manualmente, quindi esegui di nuovo
/desktopoclaude --desktop - Per leggere l’output di errore completo del comando non riuscito, attiva il logging di debug con
/debuged esegui di nuovo/desktop, oppure eseguiclaude --desktop --debug-file <path>, quindi controlla il log di debug
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 indicava 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 com’era.
Ogni messaggio indica il percorso della tua keymap e termina con il blocco della scorciatoia da tastiera da aggiungere manualmente:
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 sui 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 dell’unione 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
- Copia il blocco dal messaggio nell’array di primo livello del tuo
keymap.jsonal percorso indicato dal 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, quindi esegui di nuovo/terminal-setup
/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, segnalando comunque la scorciatoia 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:
- Esegui
/skill-doctornel terminale della macchina su cui è in esecuzione la sessione, oppure esegui lìclaude -p "/skill-doctor"
Gli stili di output personalizzati non possono essere selezionati tramite 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 in esso solo gli stili integrati, 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 che non esiste:
- Scegli uno stile integrato, 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
Gli stili di output vengono salvati nelle impostazioni locali, che questa sessione non carica
Hai provato a cambiare stile di output con/output-style <style> o /config outputStyle=<style> in una sessione le cui origini delle impostazioni escludono local. Esempi sono una sessione dell’Agent SDK il cui settingSources non include "local" e una sessione della 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 anziché scrivere un’impostazione che non avrebbe alcun effetto:
- Aggiungi
localalle origini delle 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 viene eseguito solo quando lo richiedi tu stesso
La richiesta/recap non proveniva 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 con il cui account è in esecuzione la sessione, quindi risponde con questo avviso invece che con un riepilogo:
/recap che passi a claude -p, o che la tua applicazione Agent SDK invia a una sessione che ha avviato, 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
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 eseguitoclaude plugin eval o claude plugin eval init e ha terminato con codice 1 con uno di questi messaggi prima di fare qualsiasi cosa:
- 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 GitHubanthropics. 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.
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:/plugin, claude plugin install, e claude plugin update avvertono:
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 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.
- 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 MCPheadersHelper 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:
headersHelper segnala:
- 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 fontearchive 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
- 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
Un percorso del componente del plugin, dichiarato nelplugin.json del plugin o nella sua voce del marketplace, si risolve al di fuori della directory del plugin. Claude Code elimina quel percorso e carica il resto del plugin. Il nome del componente nel messaggio, come commands o hooks, nomina il campo che ha dichiarato il percorso.
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 dichiarato in una voce del marketplace anche quando puntava al di fuori della directory del plugin.
Prima della v2.1.257, il controllo guardava solo l’ortografia del percorso, non dove un symlink porta.
Cosa fare:
- Sposta il file referenziato all’interno della directory del plugin e punta il percorso ad esso con un percorso relativo
./ - Se il percorso è un symlink a un file al di fuori del plugin, sostituisci il symlink con una copia del file
- Se il messaggio dice che il percorso contiene una barra rovesciata, scrivi il percorso con barre in avanti, ad esempio
./commands/deploy.md - Per condividere file con altri plugin nello stesso marketplace, collegali con un symlink all’interno della directory del plugin, seguendo le regole del symlink
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
/plugin, l’errore appare sotto il plugin e nomina il percorso e il codice che il sistema operativo ha restituito:
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
- 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
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ì:
claude plugin list mostra il plugin come failed to load con:
- 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.
claude plugin install segnala:
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 eseguitoclaude plugin disable, o utilizzato la scheda Installed di /plugin, per disattivare un plugin sincronizzato da claude.ai che la tua organizzazione contrassegna come richiesto:
- 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 eseguitoclaude 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.
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
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:- 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.
Agent would be spawned with zero tools
Nessuna voce nell’elencotools 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à.
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.
- 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 negazioneRead, 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.
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
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:- 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
Path contains null bytes, e lo strumento non veniva mai eseguito.
subagent_type is required
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
- 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
Agent type 'general-purpose' not found.
L’indice della memoria supera il limite di lettura
Claude ha scritto nell’indiceMEMORY.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.
- 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 comandopkill 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.
- 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 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
@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:.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
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:- 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
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:- 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
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 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
- 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
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: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.
- 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: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
- 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
where it leads on disk could not be determined non compariva.
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: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:
- 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
Quota del disco o file system temporaneo pieni
Claude Code salva l’output di ogni comando Bash e PowerShell in un file all’interno della propria directory temporanea. Quando un comando termina con un codice diverso da zero e senza alcun output, Claude Code verifica se il file system che contiene quel file ha esaurito lo spazio o gli inode, oppure se la tua quota del disco su di esso è esaurita. In tal caso, nel risultato del comando compare una diagnostica al posto dell’output vuoto:Your disk quota is full ... (EDQUOT): la tua quota personale su quel file system è esaurita. Una quota può essere piena anche quando il file system mostra ancora spazio liberoThe filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC): il file system, o la tua quota su di esso, non ha più spazio disponibileCommand output was lost: the temp filesystem at ... is fulloppure... is out of inodes: il file system non ha quasi più spazio libero, oppure sta esaurendo gli inode
- Elimina i file che non ti servono più sul file system che contiene la directory temporanea di Claude Code. Per
EDQUOT, elimina i file che contano ai fini della tua quota personale. Perout of inodes, elimina molti file invece di pochi file grandi, poiché ogni file occupa un inode indipendentemente dalla sua dimensione - Oppure riavvia Claude Code con
CLAUDE_CODE_TMPDIRimpostata su una directory in un file system con spazio disponibile - Poi chiedi a Claude di eseguire di nuovo il comando. L’output che aveva stampato è andato perso, non troncato
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 sostituzioneU+FFFD. Il messaggio compare nel risultato dello strumento:
- 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
U+FFFD. Su quelle versioni, aggiorna Claude Code.
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 sostituzioneU+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:
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
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
- 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
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:- 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, comehttp://localhost:3000 o un semplice nome intranet come http://wiki/. WebFetch rifiuta questi URL prima di effettuare qualsiasi richiesta:
- Di solito nulla: il messaggio indirizza Claude verso
curltramite lo strumento Bash, che può raggiungere server locali e intranet
Invalid URL.
Controllo di sicurezza del dominio di WebFetch non riuscito
Prima di recuperare un URL, WebFetch invia l’hostname dell’URL adapi.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:
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.
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:
- 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: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:
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.
is isolated in the worktree <path>, but this command, seguito dal motivo, come un comando il cui testo Claude Code non è riuscito a verificare:
- 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:
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:running in another terminal: un terminale tiene la conversazione, ad esempio uno in cui l’hai ripresa conclaude --resumeo/resume. La riga mostra ancheOpen in a terminal.already open in another running Claude session: un altro processo Claude Code non interattivo la tiene, ad esempio un processo sessione in background per la stessa conversazione che non è ancora uscito.
- Continua la conversazione nel processo che l’ha aperta, o esci da quel processo e apri di nuovo la riga
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: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>
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:
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 il worktree ha ricevuto un commit dopo il rifiuto, Claude Code lo mantiene di nuovo e mostra lo stato aggiornato - 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
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, ed eliminare di nuovo era rifiutato allo stesso modo: eliminare la sessione senza eseguire il push significava rimuovere il worktree tu stesso con git worktree remove --force <path>, quindi eseguire di nuovo claude rm <id>.
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:claude attach <id> riavvia una sessione già contrassegnata come fallita per un host morto, e altrimenti stampa il motivo ed esce:
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
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:claude attach <id> stampa il motivo ed esce:
- 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 esempioclaude stop in un altro terminale. Claude Code mantiene la sessione interrotta:
- 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ù:
/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:
- 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
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:
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 comeEUNKNOWN. 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:
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 chenpm 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:
/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:
- 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 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.
- 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:could not be resolved on disk.
Cosa fare:
- Ricrea la directory che il messaggio nomina, o invia da una directory che esiste, quindi riprova
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: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.
- 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 processoclaude 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.
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’eseguibileclaude installato su PATH. L’estensione si rifiuta di avviare Claude Code finché non trova il claude installato su PATH.
- 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 Verify your 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 connection to Claude Code ended before this message completed
L’estensione VS Code ha inviato il vostro messaggio al processoclaude, 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:
- 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
/rewind scriveva e eliminava attraverso i link nei percorsi tracciati e non segnalava un ripristino parziale.
- 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.
/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.
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:- 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
--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 conCLAUDE_CODE_SKIP_PROMPT_HISTORY impostato, quindi Claude Code non scrive alcuna trascrizione o cronologia dei prompt per essa:
- 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 impostaCLAUDE_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:
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
Claude Code scrive la maggior parte di questi messaggi su stderr, non nella conversazione, e scrive la maggior parte di essi all’avvio. Una voce lo dice quando il suo messaggio appare altrove, ad esempio nel log di debug o come avviso di avvio nella vista della conversazione, o in un altro momento, ad esempio la riga diagnostica modello non riconosciuto al momento della richiesta.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:- 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.
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 frontmatterdescription. Claude Code carica ogni agente indipendentemente dal fatto che il totale superi il limite, quindi l’avviso non cambia cosa viene caricato.
- 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 hookasyncRewake 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:
- 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.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
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.
Una skill, un comando o un workflow non è stato caricato perché il suo nome è riservato
Una cartella skill, un frontmattername, 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:
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.
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 camponame:
- 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>.
- 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 regolepermissions.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.
- 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 vostre credenziali, quindi Claude Code rifiuta il percorso senza cercarlo. Vedete questo messaggio quando eseguite/add-dir con tale percorso, o come avviso all’avvio. Quando appare all’avvio, Claude Code si avvia senza quella directory.
- 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
\\wsl$ non contano come percorsi di rete.
Cosa fare:
- Su Windows, mappare la condivisione a una lettera di unità, ad esempio con
net use Z: \\server\share, e passare l’unità all’avvio conclaude --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.
Le impostazioni gestite da remoto non hanno potuto essere caricate
La vostra sessione è idonea per impostazioni gestite dal server, ma Claude Code non ha potuto recuperarle o non ha potuto applicare quello che il server ha restituito, quindi mostra questo avviso nelle sessioni interattive. La causa tra parentesi nomina cosa è fallito, comenetwork 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.
- 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
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:- 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 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 elencodeniedModels lo blocca, il messaggio legge:
availableModels con availableModelsMatch impostato a "exact" lo omette, il messaggio legge:
- 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 elencoallowedProviders, 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:
(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:
- 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
- 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
/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:- 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:- 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
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: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
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:
- 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
-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 scriptotelHeadersHelper 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:
- 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.
-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 suoiheaders 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.
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 formaTool 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:
- 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
Mismatched parentheses.
Non è abbinato dai controlli di permesso dei file
Claude Code ha trovato una regola di permessoWrite, NotebookEdit, MultiEdit, o Glob permission rule con un percorso in uno dei vostri file di impostazioni, in impostazioni gestite, o in un valore di flag --allowedTools, --disallowedTools, o --settings. Controlla i permessi dei file rispetto alle regole Edit e Read solo, quindi non consulta mai una regola di percorso che nomina uno degli altri strumenti di file. Mantiene la regola e non cambia nient’altro; l’avviso nomina la regola, la sua fonte tra parentesi, e la sostituzione da scrivere:
- 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). - Correggere la regola alla fonte che l’avviso nomina tra parentesi: un percorso di file di impostazioni, o il flag stesso per
--allowed-toolse--disallowed-tools. Un percorsoclaude-settings-<hash>.jsonche non esiste su disco rappresenta un valore--settingsinline. Correggere il JSON che passate 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. - Se la fonte legge
managed policy settings, inoltrare l’avviso a chi mantiene le vostre impostazioni gestite, poiché non potete cancellarlo voi stessi.
--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.210, Claude Code accettava queste regole senza un avviso.
Ha un carattere jolly prima del resto del comando
Claude Code ha trovato una regola allowBash 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 in modo che possiate restringere una regola il cui carattere jolly è più ampio di quanto intendete. Claude Code mantiene la regola e non cambia nulla su come corrisponde; l’avviso nomina la regola e la sua fonte tra parentesi:
- 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. - Correggere la regola alla fonte che l’avviso nomina tra parentesi: un percorso di file di impostazioni, o il flag
--allowed-toolsstesso. Un percorsoclaude-settings-<hash>.jsonche non esiste su disco rappresenta un valore--settingsinline. Correggere il JSON che passate a quel flag. - Se la fonte legge
managed policy settings, inoltrare l’avviso a chi mantiene le vostre impostazioni gestite, poiché non potete cancellarlo voi stessi.
--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.
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. Claude Code stampa questo avviso all’avvio:
- 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.
--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.
crossSessionInbound deve essere uno di accept, hold, refuse
Un file di impostazioni impostacrossSessionInbound 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:
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
ANTHROPIC_FOUNDRY_RESOURCE deve essere il nome di una risorsa Foundry
Hai impostatoANTHROPIC_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:
- 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 impostatoCLAUDE_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.
- 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
- 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
--output-format json o stream-json, Claude Code scrive l’avviso al log di debug invece di stderr.
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 vocemodelOverrides 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]. 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. Claude Code segnalasdkper un’esecuzione-pe un valore che inizia conagent:per un subagente.
- 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
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:Claude Code allora trattamy-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.
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.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.
File di maschera sandbox stantii lasciati da una sessione uccisa
claude doctor stampa questo avviso nei suoi diagnostici, e /status elenca la stessa riga. Appare su Linux e WSL2 quando sandboxing è abilitato con isolamento del filesystem attivo.
Mentre un comando sandboxato esegue, la sandbox mantiene un rifiuto di scrittura su un file che non esiste ancora creando un segnaposto di lettura sola di 0 byte lì, e lo rimuove dopo. Una sessione uccisa prima che quella pulizia esegua, ad esempio da SIGKILL, lascia i segnaposti dietro. Sessioni successive li legano di sola lettura di nuovo ad ogni avvio, quindi una scrittura di impostazioni come salvare “Sì, e non chiedere di nuovo” fallisce dove uno siede.
- Chiudere qualsiasi altra sessione di Claude Code in esecuzione in quel progetto, quindi eliminare ogni file elencato con
rm. L’avviso nomina fino a tre file e conta il resto, quindi rieseguireclaude doctordopo l’eliminazione fino a quando l’avviso non appare più. Un segnaposto che la sandbox di un’altra sessione sta ancora usando è una parte viva della protezione di scrittura di quella sessione - 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
claude doctor non contrassegnava questi file; le versioni precedenti lasciano gli stessi segnaposti dietro quando una sessione viene uccisa.
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 su Fable 5.1, Fable 5, 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, e mostra un avviso nella trascrizione
/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.
/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
- 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. - 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