Sequenza di comandi
Eseguire nell’ordine seguente:openclaw gateway statusmostraRuntime: running,Connectivity probe: oke una rigaCapability: ....openclaw doctornon segnala problemi bloccanti di configurazione o del servizio.openclaw channels status --probemostra lo stato in tempo reale del trasporto per ogni account e, dove supportato,worksoaudit ok.
Dopo un aggiornamento
Utilizzare questa procedura quando un aggiornamento è terminato, ma il Gateway non è attivo, i canali sono vuoti oppure le chiamate ai modelli non riescono con errori 401.Update restartinopenclaw status/openclaw status --all. I passaggi di consegna in sospeso o non riusciti includono il comando successivo da eseguire.plugin load failed: dependency tree corrupted; run openclaw doctor --fixnella sezione Canali: la configurazione del canale esiste ancora, ma la registrazione del Plugin non è riuscita prima che il canale potesse essere caricato.- Errori 401 del provider dopo una nuova autenticazione:
openclaw doctor --fixverifica la presenza di copie obsolete delle credenziali OAuth per singolo agente e le rimuove, affinché tutti gli agenti risolvano il profilo condiviso corrente.
Installazioni disallineate e protezione dalle configurazioni più recenti
Utilizzare questa procedura quando un servizio Gateway si arresta inaspettatamente dopo un aggiornamento oppure i log mostrano che un file binarioopenclaw è precedente alla versione che ha scritto per ultima openclaw.json.
OpenClaw contrassegna le scritture della configurazione con meta.lastTouchedVersion. I comandi di sola lettura possono esaminare una configurazione scritta da una versione più recente di OpenClaw, ma le operazioni che modificano processi e servizi non possono essere eseguite da un file binario precedente. Azioni bloccate: avvio, arresto, riavvio e disinstallazione del servizio Gateway; reinstallazione forzata del servizio; avvio del Gateway in modalità servizio; pulizia della porta gateway --force.
Correggere PATH
PATH affinché openclaw risolva l’installazione più recente, quindi eseguire nuovamente l’azione.Reinstallare il servizio Gateway
Rimuovere i wrapper obsoleti
openclaw precedente.Mancata corrispondenza del protocollo dopo un rollback
Utilizzare questa procedura quando i log continuano a mostrareprotocol mismatch dopo un downgrade o un rollback. È in esecuzione un Gateway precedente, ma un processo client locale più recente continua a riconnettersi con un intervallo di versioni del protocollo non supportato dal Gateway precedente.
protocol mismatch ... client=... v<version> min=<n> max=<n> expected=<n>nei log del Gateway.Established clients:inopenclaw gateway status --deepoppureGateway clientsinopenclaw doctor --deep: client TCP attivi connessi alla porta del Gateway, con PID e righe di comando quando consentito dal sistema operativo.- Un processo client la cui riga di comando punta all’installazione o al wrapper OpenClaw più recente da cui è stato eseguito il rollback.
- Arrestare o riavviare il processo client OpenClaw obsoleto mostrato da
gateway status --deep. - Riavviare le applicazioni o i wrapper che incorporano OpenClaw: dashboard locali, editor, helper del server applicativo o shell
openclaw logs --followdi lunga durata. - Eseguire nuovamente
openclaw gateway status --deepoopenclaw doctor --deepe verificare che il PID del client obsoleto non sia più presente.
Collegamento simbolico di una Skill ignorato perché esce dal percorso
Utilizzare questa procedura quando i log includono:~/.agents/skills, <workspace>/.agents/skills, <workspace>/skills o ~/.openclaw/skills viene ignorato quando la sua destinazione reale viene risolta al di fuori di tale radice, a meno che la destinazione non sia esplicitamente considerata attendibile.
Esaminare il collegamento:
~, / o un’intera cartella di progetto sincronizzata. Limitare allowSymlinkTargets alla radice reale delle Skill che contiene directory SKILL.md attendibili.
Se l’applicazione di Skill Workshop deve anche scrivere attraverso tali percorsi attendibili delle Skill nell’area di lavoro collegati simbolicamente, abilitare skills.workshop.allowSymlinkTargetWrites. Mantenerlo disabilitato per le radici condivise delle Skill in sola lettura.
Correlati:
Utilizzo aggiuntivo richiesto da Anthropic 429 per il contesto esteso
Utilizzare questa procedura quando i log o gli errori includono:HTTP 429: rate_limit_error: Extra usage is required for long context requests.
- Il modello Anthropic selezionato è un modello Claude 4.x da 1M con disponibilità generale (Opus 4.6/4.7/4.8, Sonnet 4.6), oppure la configurazione del modello contiene ancora il valore obsoleto
params.context1m: true. - Le credenziali Anthropic correnti non sono idonee all’utilizzo del contesto esteso.
- Le richieste non riescono solo durante sessioni o esecuzioni del modello prolungate che richiedono il percorso di contesto da 1M.
Utilizzare una finestra di contesto standard
context1m dalla precedente
configurazione del modello che non supporta il contesto da 1M con disponibilità generale.Utilizzare credenziali idonee
Configurare modelli di fallback
Risposte 403 bloccate a monte
Utilizzare questa procedura quando un provider LLM a monte restituisce un errore generico403, ad esempio Your request was blocked.
Non presupporre che si tratti sempre di un problema di configurazione di OpenClaw. La risposta può provenire da un livello di sicurezza a monte, ad esempio una CDN, un WAF, una regola di gestione dei bot o un proxy inverso posto davanti a un endpoint compatibile con OpenAI.
- Più modelli dello stesso provider non riescono nello stesso modo.
- Viene restituito HTML o testo generico relativo alla sicurezza anziché un normale errore dell’API del provider.
- Sono presenti eventi di sicurezza sul lato del provider relativi allo stesso momento della richiesta.
- Una piccola richiesta di verifica diretta
curlriesce, mentre le normali richieste con la struttura dell’SDK non riescono.
Il backend locale compatibile con OpenAI supera le verifiche dirette, ma le esecuzioni dell’agente non riescono
Utilizzare questa procedura quando:curl ... /v1/modelsfunziona.- Le piccole chiamate dirette
/v1/chat/completionsfunzionano. - Le esecuzioni dei modelli OpenClaw non riescono solo durante i normali turni dell’agente.
- Le piccole chiamate dirette riescono, ma le esecuzioni di OpenClaw non riescono solo con prompt più grandi.
- Si verificano errori
model_not_foundo 404, anche se una richiesta diretta/v1/chat/completionsfunziona con lo stesso ID di modello senza prefisso. - Il backend segnala errori perché
messages[].contentrichiede una stringa. - Si verificano avvisi intermittenti
incomplete turn detected ... stopReason=stop payloads=0con un backend locale compatibile con OpenAI. - Il backend si arresta in modo anomalo solo con un numero maggiore di token del prompt o con i prompt completi del runtime dell’agente.
Sintomi comuni
Sintomi comuni
model_not_foundcon un server locale in stile MLX/vLLM: verificare chebaseUrlincluda/v1, cheapisia"openai-completions"per i backend/v1/chat/completionse chemodels.providers.<provider>.models[].idsia l’ID locale del provider senza prefisso. Selezionarlo una sola volta con il prefisso del provider, ad esempiomlx/mlx-community/Qwen3-30B-A3B-6bit; mantenere la voce del catalogo comemlx-community/Qwen3-30B-A3B-6bit.messages[...].content: invalid type: sequence, expected a string: il backend rifiuta le parti strutturate del contenuto di Chat Completions. Correzione: impostaremodels.providers.<provider>.models[].compat.requiresStringContent: true.validation.keyso chiavi consentite per i messaggi come["role","content"]: il backend rifiuta i metadati di riproduzione in stile OpenAI nei messaggi di Chat Completions. Correzione: impostaremodels.providers.<provider>.models[].compat.strictMessageKeys: true.incomplete turn detected ... stopReason=stop payloads=0: il backend ha completato la richiesta di Chat Completions, ma non ha restituito alcun testo dell’assistente visibile all’utente per quel turno. OpenClaw riprova una volta i turni vuoti compatibili con OpenAI che possono essere riprodotti in sicurezza; gli errori persistenti indicano generalmente che il backend emette contenuti vuoti o non testuali oppure omette il testo della risposta finale.- Le piccole richieste dirette riescono, ma le esecuzioni degli agenti OpenClaw non riescono a causa di arresti anomali del backend o del modello (ad esempio Gemma in alcune build
inferrs): il trasporto di OpenClaw è probabilmente già corretto; il backend non riesce a gestire la struttura più grande del prompt del runtime dell’agente. - Gli errori diminuiscono dopo la disabilitazione degli strumenti, ma non scompaiono: gli schemi degli strumenti contribuivano al carico, ma il problema residuo riguarda ancora la capacità del modello o del server a monte oppure un bug del backend.
Opzioni di correzione
Opzioni di correzione
- Impostare
compat.requiresStringContent: trueper i backend Chat Completions che accettano solo stringhe. - Impostare
compat.strictMessageKeys: trueper i backend Chat Completions rigorosi che accettano soloroleecontentin ciascun messaggio. - Impostare
compat.supportsTools: falseper i modelli o i backend che non riescono a gestire in modo affidabile la superficie degli schemi degli strumenti di OpenClaw. - Ridurre, dove possibile, il carico del prompt: bootstrap più piccolo dell’area di lavoro, cronologia della sessione più breve, modello locale più leggero o backend con un supporto migliore per il contesto esteso.
- Se le piccole richieste dirette continuano a riuscire mentre i turni degli agenti OpenClaw continuano a causare arresti anomali nel backend, considerare il problema una limitazione del server o del modello a monte e inviare una riproduzione al relativo progetto con la struttura del payload accettata.
Nessuna risposta
Se i canali sono attivi ma non arriva alcuna risposta, controllare l’instradamento e i criteri prima di riconnettere qualsiasi elemento.- Associazione in sospeso per i mittenti dei messaggi diretti.
- Limitazione basata sulle menzioni nei gruppi (
requireMention,mentionPatterns). - Mancate corrispondenze nelle liste consentite di canali/gruppi.
drop guild message (mention required→ messaggio di gruppo ignorato fino a una menzione.pairing request→ il mittente deve essere approvato.blocked/allowlist→ il mittente/canale è stato filtrato dai criteri.
Connettività dell’interfaccia di controllo della dashboard
Quando la dashboard/interfaccia di controllo non riesce a connettersi, verificare l’URL, la modalità di autenticazione e le condizioni relative al contesto sicuro.- URL di verifica e URL della dashboard corretti.
- Mancata corrispondenza della modalità di autenticazione/del token tra client e Gateway.
- Utilizzo di HTTP quando è richiesta l’identità del dispositivo.
127.0.0.1:18789 dopo un aggiornamento, ripristinare innanzitutto il servizio Gateway locale e verificare che stia rendendo disponibile la dashboard:
curl restituisce l’HTML di OpenClaw, il Gateway funziona e il problema restante è probabilmente dovuto alla cache del browser, a un vecchio collegamento diretto o allo stato obsoleto di una scheda. Aprire direttamente http://127.0.0.1:18789 e navigare dalla dashboard. Se dopo il riavvio il servizio non rimane in esecuzione, eseguire openclaw gateway start e ricontrollare openclaw gateway status.
Segnali di connessione/autenticazione
Segnali di connessione/autenticazione
device identity required→ contesto non sicuro o autenticazione del dispositivo mancante.origin not allowed→ il valoreOrigindel browser non è presente ingateway.controlUi.allowedOrigins(oppure la connessione proviene da un’origine browser non di loopback priva di una lista consentita esplicita).device nonce required/device nonce mismatch→ il client non sta completando il flusso di autenticazione del dispositivo basato sulla richiesta di verifica (connect.challenge+device.nonce).device signature invalid/device signature expired→ il client ha firmato il payload errato (o con una marca temporale obsoleta) per l’handshake corrente.AUTH_TOKEN_MISMATCHconcanRetryWithDeviceToken=true→ il client può effettuare un solo nuovo tentativo attendibile con il token del dispositivo memorizzato nella cache.- Questo nuovo tentativo con il token memorizzato nella cache riutilizza l’insieme di ambiti memorizzato insieme al token del dispositivo associato. I chiamanti con
deviceTokenesplicito /scopesesplicito mantengono invece l’insieme di ambiti richiesto. AUTH_SCOPE_MISMATCH→ il token del dispositivo è stato riconosciuto, ma i relativi ambiti approvati non coprono questa richiesta di connessione; associare nuovamente o approvare il contratto degli ambiti richiesto anziché ruotare un token Gateway condiviso.- Al di fuori di questo percorso di nuovo tentativo, l’ordine di precedenza per l’autenticazione della connessione è: prima token/password condivisi espliciti, quindi
deviceTokenesplicito, poi il token del dispositivo memorizzato e infine il token di bootstrap. - Nel percorso asincrono dell’interfaccia di controllo Tailscale Serve, i tentativi non riusciti per lo stesso
{scope, ip}vengono serializzati prima che il limitatore registri l’errore. Due nuovi tentativi simultanei non validi dallo stesso client possono quindi produrreretry lateral secondo tentativo anziché due semplici mancate corrispondenze. too many failed authentication attempts (retry later)da un client di loopback con origine browser → gli errori ripetuti dallo stessoOriginnormalizzato vengono temporaneamente bloccati; un’altra origine localhost utilizza un gruppo distinto.unauthorizedripetuto dopo il nuovo tentativo → divergenza tra token condiviso e token del dispositivo; aggiornare la configurazione del token e, se necessario, approvare nuovamente o ruotare il token del dispositivo.gateway connect failed:→ destinazione host/porta/URL errata.
Mappa rapida dei codici di dettaglio dell’autenticazione
Utilizzareerror.details.code dalla risposta connect non riuscita per scegliere l’azione successiva:
scope-upgrade, verificare che il chiamante utilizzi client.id: "gateway-client" e client.mode: "backend" e che non imponga un deviceIdentity esplicito o un token del dispositivo.Attendere connect.challenge
connect.challenge emesso dal Gateway.Firmare il payload
Inviare il nonce del dispositivo
connect.params.device.nonce con lo stesso nonce della richiesta di verifica.openclaw devices rotate / revoke / remove viene negato inaspettatamente:
- Le sessioni con token di un dispositivo associato possono gestire soltanto il proprio dispositivo, a meno che il chiamante non disponga anche di
operator.admin. openclaw devices rotate --scope ...può richiedere soltanto ambiti operatore già posseduti dalla sessione del chiamante.
- Configurazione (modalità di autenticazione del Gateway)
- Interfaccia di controllo
- Dispositivi
- Accesso remoto
- Autenticazione tramite proxy attendibile
Servizio Gateway non in esecuzione
Utilizzare questa sezione quando il servizio è installato, ma il processo non rimane attivo.Runtime: stoppedcon indicazioni sull’uscita.- Mancata corrispondenza della configurazione del servizio (
Config (cli)rispetto aConfig (service)). - Conflitti di porta/listener.
- Installazioni aggiuntive di launchd/systemd/schtasks quando viene utilizzato
--deep. - Indicazioni per la pulizia di
Other gateway-like services detected (best effort).
Segnali comuni
Segnali comuni
Gateway start blocked: set gateway.mode=localoexisting config is missing gateway.mode→ la modalità Gateway locale non è abilitata oppure il file di configurazione è stato sovrascritto e ha persogateway.mode. Soluzione: impostaregateway.mode="local"nella configurazione oppure rieseguireopenclaw onboard --mode local/openclaw setupper ripristinare la configurazione prevista della modalità locale. Se OpenClaw viene eseguito tramite Podman, il percorso di configurazione predefinito è~/.openclaw/openclaw.json.refusing to bind gateway ... without auth→ associazione non di loopback senza un percorso di autenticazione Gateway valido (token/password oppure proxy attendibile, se configurato).another gateway instance is already listening/EADDRINUSE→ conflitto di porta.Other gateway-like services detected (best effort)→ esistono unità launchd/systemd/schtasks obsolete o parallele. Nella maggior parte delle configurazioni è opportuno mantenere un solo Gateway per macchina; se ne serve più di uno, isolare porte, configurazione, stato e area di lavoro. Consultare /gateway#multiple-gateways-same-host.System-level OpenClaw gateway service detectedda doctor → esiste un’unità di sistema systemd mentre manca il servizio a livello utente. Rimuovere o disabilitare il duplicato prima di consentire a doctor di installare un servizio utente, oppure impostareOPENCLAW_SERVICE_REPAIR_POLICY=externalse l’unità di sistema è il supervisore previsto.Gateway service port does not match current gateway config→ il supervisore installato è ancora vincolato al vecchio--port. Eseguireopenclaw doctor --fixoopenclaw gateway install --force, quindi riavviare il servizio Gateway.
Il Gateway su macOS smette silenziosamente di rispondere e riprende quando si interagisce con la dashboard
Da utilizzare quando i canali (Telegram, WhatsApp, ecc.) su un host macOS smettono di rispondere per periodi che vanno da alcuni minuti ad alcune ore e il Gateway sembra riattivarsi non appena si apre la Control UI, si accede tramite SSH o si interagisce in altro modo con l’host. Di solito non è presente alcun sintomo evidente inopenclaw status, perché quando lo si controlla il Gateway è già di nuovo attivo.
- Uno o più bundle
*-uncaught_exception.jsonin~/.openclaw/logs/stability/conerror.codeimpostato su un codice di rete transitorio comeENETDOWN,ENETUNREACH,EHOSTUNREACHoECONNREFUSED. - Righe
pmset -g logcomeEntering Sleep state due to 'Maintenance Sleep'oen0 driver is slow (msg: WillChangeState to 0)in corrispondenza dei timestamp degli arresti anomali. Power Nap / Maintenance Sleep porta brevemente il driver Wi-Fi nello stato 0; qualsiasiconnect()in uscita che si verifichi in quell’intervallo può non riuscire conENETDOWN, anche su un host che dispone altrimenti di connettività di rete completa. - Output di
launchctl printche mostrastate = not runningcon piùrunsrecenti e un codice di uscita, soprattutto quando l’intervallo tra l’arresto anomalo e l’avvio successivo è nell’ordine di un’ora anziché di pochi secondi. Dopo una serie di arresti anomali, launchd di macOS applica un meccanismo di protezione dal riavvio non documentato che può smettere di rispettareKeepAlive=truefinché un evento esterno, come un accesso interattivo, una connessione alla dashboard olaunchctl kickstart, non lo riattiva.
- Un bundle di stabilità il cui
error.codeèENETDOWNo un codice correlato, con lo stack di chiamate che punta a NodenetlookupAndConnect/Socket.connect. OpenClaw2026.5.26e versioni successive classificano questi eventi come errori di rete transitori innocui, impedendo che si propaghino al gestore di primo livello delle eccezioni non intercettate; se si utilizza una versione precedente, eseguire prima l’aggiornamento. - Lunghi periodi di inattività che terminano nell’istante in cui ci si connette alla Control UI o si accede all’host tramite SSH: è l’attività visibile all’utente a riattivare il meccanismo di riavvio di launchd, non un’azione della dashboard sul Gateway.
- Il conteggio
runsaumenta nel corso della giornata senza una rigareceived SIG*; shutting downcorrispondente in~/Library/Logs/openclaw/gateway.log: gli arresti regolari registrano un segnale, mentre gli arresti anomali transitori no.
-
Aggiornare il Gateway se si utilizza una versione precedente a
2026.5.26. Dopo l’aggiornamento, i futuri erroriENETDOWNvengono registrati come avvisi anziché terminare il processo. -
Ridurre l’attività di sospensione per manutenzione sugli host Mac mini / desktop destinati a funzionare come server sempre attivi:
Questa operazione riduce significativamente, ma non elimina del tutto, l’instabilità del driver sottostante. Il sistema può comunque eseguire alcune sospensioni per manutenzione per mantenere attivi TCP keepalive e mDNS, indipendentemente da questi flag.
-
Aggiungere un watchdog di operatività affinché un’eventuale futura serie di arresti anomali bloccata da launchd venga rilevata rapidamente:
Lo scopo è riattivare esternamente il meccanismo di riavvio; dopo una serie di arresti anomali su macOS, il solo
KeepAlive=truenon è sufficiente.
Ciclo del supervisore launchd di macOS con LaunchAgent duplicati per Gateway/Node
Da utilizzare quando un’installazione macOS continua a riavviarsi ogni pochi secondi, i controlli di integritàopenclaw
oscillano tra disponibile e non disponibile e l’inoltro dei canali si blocca,
anche se il servizio sembra essere in esecuzione.
Questo comportamento è stato osservato nelle installazioni meno recenti in cui sia ai.openclaw.gateway sia
ai.openclaw.node erano LaunchAgent attivi e ciascuno inseriva
OPENCLAW_LAUNCHD_LABEL. In questo stato OpenClaw può rilevare la supervisione di launchd,
tentare di delegare nuovamente il riavvio a launchd e finire in un rapido ciclo di
EADDRINUSE/riavvio anziché mantenere un unico processo Gateway stabile.
- Più di un PID del Gateway nel campione di 30 secondi anziché un unico processo stabile.
EADDRINUSE,another gateway instance is already listeningo ripetute righe di riavvio/delega ingateway.log.- Sia
~/Library/LaunchAgents/ai.openclaw.gateway.plistsia~/Library/LaunchAgents/ai.openclaw.node.plistcaricati contemporaneamente su un host che dovrebbe eseguire un solo servizio Gateway gestito.
-
Se questo host deve eseguire soltanto il servizio Gateway, rimuovere tramite OpenClaw
il servizio Node gestito. Saltare questo passaggio se si utilizza attivamente il servizio Node
per le funzionalità dei Node remoti; la disinstallazione interrompe tali funzionalità su
questo host:
-
Installare un wrapper permanente per il Gateway che elimini i marcatori launchd
ereditati prima di avviare OpenClaw. Utilizzare l’opzione
--wrappersupportata; non modificare il file generato in~/.openclaw/service-env/, perché la reinstallazione del servizio, l’aggiornamento e la riparazione tramite Doctor rigenerano tale file:gateway installmantiene il percorso del wrapper durante le reinstallazioni forzate, gli aggiornamenti e le riparazioni tramite Doctor. -
Verificare che il Gateway sia stabile e gestisca RPC, anziché limitarsi ad ascoltare:
Il campione di PID dovrebbe mostrare un unico processo stabile anziché un insieme variabile di PID e l’inoltro dei canali in entrata dovrebbe riprendere.
-
Dopo l’aggiornamento a una versione in cui il ciclo sottostante dei due LaunchAgent è
stato corretto, rimuovere la soluzione alternativa e reinstallare il normale servizio gestito:
Chiusura del Gateway durante un utilizzo elevato della memoria
Da utilizzare quando il Gateway scompare sotto carico, il supervisore segnala un riavvio dovuto all’esaurimento della memoria oppure i log menzionanocritical memory pressure bundle written.
Reason: diagnostic.memory.pressure.criticalnel bundle di stabilità più recente.Memory pressure:concritical/rss_threshold,critical/heap_thresholdocritical/rss_growth.- Valori
V8 heap:prossimi al limite dell’heap. - Voci
Largest session files:comeagents/<agent>/sessions/<session>.jsonlosessions/<session>.jsonl. - Contatori della memoria cgroup di Linux quando il Gateway viene eseguito in un container o in un servizio con memoria limitata.
critical memory pressure bundle writtencompare poco prima del riavvio → OpenClaw ha acquisito un bundle di stabilità precedente all’esaurimento della memoria. Esaminarlo conopenclaw gateway stability --bundle latest.memory pressure: level=critical ... memoryPressureSnapshot=disabledcompare nei log del Gateway → OpenClaw ha rilevato una pressione critica sulla memoria, ma l’acquisizione di stabilità precedente all’esaurimento della memoria è disattivata.Largest session files:indica un percorso molto grande di una trascrizione oscurata → ridurre la cronologia delle sessioni conservata, esaminare la crescita delle sessioni o spostare le vecchie trascrizioni fuori dall’archivio attivo prima del riavvio.- I byte utilizzati in
V8 heap:sono prossimi al limite dell’heap → ridurre il carico di prompt/sessioni, diminuire il lavoro simultaneo oppure aumentare il limite dell’heap di Node solo dopo aver confermato che il carico di lavoro è previsto. Memory pressure: critical/rss_growth→ la memoria è aumentata rapidamente durante un singolo intervallo di campionamento. Controllare nei log più recenti la presenza di un’importazione di grandi dimensioni, un output incontrollato degli strumenti, tentativi ripetuti o un gruppo di attività dell’agente in coda.- Nei log compare una pressione critica sulla memoria, ma non esiste alcun bundle → questo è il comportamento predefinito. Impostare
diagnostics.memoryPressureSnapshot: trueper acquisire il bundle di stabilità precedente all’esaurimento della memoria in occasione di futuri eventi di pressione critica sulla memoria.
Il Gateway ha rifiutato una configurazione non valida
Da utilizzare quando l’avvio del Gateway non riesce conInvalid config o i log del ricaricamento a caldo indicano che una modifica non valida è stata ignorata.
Invalid config at ...config reload skipped (invalid config): ...Config write rejected: ...- Un file
openclaw.json.rejected.*con timestamp accanto alla configurazione attiva. - Un file
openclaw.json.clobbered.*con timestamp sedoctor --fixha riparato una modifica diretta non valida. - OpenClaw conserva i 32 file
.clobbered.*più recenti per ogni percorso di configurazione ed elimina progressivamente quelli meno recenti.
Che cosa è successo
Che cosa è successo
- La configurazione non ha superato la convalida durante l’avvio, il ricaricamento a caldo o una scrittura gestita da OpenClaw.
- L’avvio del Gateway si interrompe in modo sicuro anziché riscrivere
openclaw.json. - Il ricaricamento a caldo ignora le modifiche esterne non valide e mantiene attiva la configurazione di runtime corrente.
- Le scritture gestite da OpenClaw rifiutano i payload non validi o distruttivi prima del commit e salvano
.rejected.*. openclaw doctor --fixgestisce la riparazione. Può rimuovere i prefissi non JSON o ripristinare l’ultima copia valida nota, conservando il payload rifiutato come.clobbered.*.- Quando vengono eseguite molte riparazioni per un singolo percorso di configurazione, OpenClaw elimina progressivamente i file
.clobbered.*meno recenti, in modo che il payload riparato più recente rimanga disponibile.
Ispezione e riparazione
Ispezione e riparazione
Indicatori comuni
Indicatori comuni
.clobbered.*esiste → doctor ha conservato una modifica esterna non valida durante la riparazione della configurazione attiva..rejected.*esiste → la scrittura di una configurazione gestita da OpenClaw non ha superato i controlli dello schema o di sovrascrittura prima del commit.Config write rejected:→ la scrittura ha tentato di eliminare una struttura obbligatoria, ridurre drasticamente il file o rendere persistente una configurazione non valida.config reload skipped (invalid config):→ una modifica diretta non ha superato la convalida ed è stata ignorata dal Gateway in esecuzione.Invalid config at ...→ l’avvio non è riuscito prima dell’attivazione dei servizi del Gateway.missing-meta-vs-last-good,gateway-mode-missing-vs-last-goodosize-drop-vs-last-good:*→ una scrittura gestita da OpenClaw è stata rifiutata perché ha perso campi o dimensioni rispetto all’ultimo backup valido noto.Config last-known-good promotion skipped→ il candidato conteneva segnaposto di segreti oscurati, come***.
Opzioni di correzione
Opzioni di correzione
- Eseguire
openclaw doctor --fixper consentire a doctor di riparare la configurazione con prefisso o sovrascritta oppure ripristinare l’ultima configurazione valida nota. - Copiare solo le chiavi desiderate da
.clobbered.*o.rejected.*, quindi applicarle conopenclaw config setoconfig.patch. - Eseguire
openclaw config validateprima del riavvio. - In caso di modifica manuale, mantenere la configurazione JSON5 completa, non soltanto l’oggetto parziale che si desidera modificare.
Avvisi del probe del Gateway
Utilizzare quandoopenclaw gateway probe raggiunge una destinazione, ma visualizza comunque un blocco di avviso.
warnings[].codeeprimaryTargetIdnell’output JSON.- Se l’avviso riguarda il fallback SSH, più gateway, ambiti mancanti o riferimenti di autenticazione non risolti.
SSH tunnel failed to start; falling back to direct probes.→ la configurazione SSH non è riuscita, ma il comando ha comunque tentato di usare le destinazioni dirette configurate o di loopback.multiple reachable gateway identities detected→ hanno risposto gateway distinti oppure OpenClaw non ha potuto dimostrare che le destinazioni raggiungibili fossero lo stesso gateway. Un tunnel SSH, un URL proxy o un URL remoto configurato per lo stesso gateway viene considerato un singolo gateway con più trasporti, anche quando le porte dei trasporti sono diverse.Read-probe diagnostics are limited by gateway scopes (missing operator.read)→ la connessione è riuscita, ma l’RPC dei dettagli è limitata dall’ambito; associare l’identità del dispositivo o utilizzare credenziali conoperator.read.Gateway accepted the WebSocket connection, but follow-up read diagnostics failed→ la connessione è riuscita, ma il set completo di RPC diagnostiche è scaduto o non è riuscito. Considerarlo un Gateway raggiungibile con diagnostica degradata; confrontareconnect.okeconnect.rpcOknell’output di--json.Capability: pairing-pendingogateway closed (1008): pairing required→ il gateway ha risposto, ma questo client richiede ancora l’associazione o l’approvazione prima del normale accesso da parte dell’operatore.- Testo di avviso SecretRef
gateway.auth.*/gateway.remote.*non risolto → il materiale di autenticazione non era disponibile in questo percorso del comando per la destinazione non riuscita.
Canale connesso, ma i messaggi non vengono trasmessi
Se lo stato del canale risulta connesso ma il flusso dei messaggi è interrotto, concentrarsi sui criteri, sulle autorizzazioni e sulle regole di recapito specifiche del canale.- Criterio per i messaggi diretti (
pairing,allowlist,open,disabled). - Elenco consentito del gruppo e requisiti per le menzioni.
- Autorizzazioni o ambiti API del canale mancanti.
mention required→ messaggio ignorato dai criteri per le menzioni del gruppo.pairing/ tracce di approvazione in sospeso → il mittente non è approvato.missing_scope,not_in_channel,Forbidden,401/403→ problema di autenticazione o autorizzazioni del canale.
Recapito di Cron e Heartbeat
Se Cron o Heartbeat non è stato eseguito o non ha effettuato il recapito, verificare prima lo stato dell’utilità di pianificazione, quindi la destinazione di recapito.- Cron abilitato e prossima attivazione presente.
- Stato della cronologia delle esecuzioni del processo (
ok,skipped,error). - Motivi per cui Heartbeat è stato ignorato (
quiet-hours,requests-in-flight,cron-in-progress,lanes-busy,alerts-disabled,empty-heartbeat-file,no-tasks-due).
Indicatori comuni
Indicatori comuni
cron: scheduler disabled; jobs will not run automatically→ Cron disabilitato.cron: timer tick failed→ il ciclo dell’utilità di pianificazione non è riuscito; controllare gli errori di file, log o runtime.heartbeat skippedconreason=quiet-hours→ fuori dalla finestra delle ore di attività.heartbeat skippedconreason=empty-heartbeat-file→HEARTBEAT.mdesiste, ma contiene soltanto una struttura vuota, commenti, intestazioni, delimitatori di blocchi o elenchi di controllo vuoti, quindi OpenClaw ignora la chiamata al modello.heartbeat skippedconreason=no-tasks-due→HEARTBEAT.mdcontiene un bloccotasks:, ma nessuna attività è prevista in questo ciclo.heartbeat: unknown accountId→ ID account non valido per la destinazione di recapito di Heartbeat.heartbeat skippedconreason=dm-blocked→ la destinazione di Heartbeat è stata risolta come una destinazione di tipo messaggio diretto mentreagents.defaults.heartbeat.directPolicy(o la sostituzione specifica dell’agente) è impostato sublock.
Node associato, strumento non riuscito
Se un Node è associato ma gli strumenti non funzionano, isolare lo stato di primo piano, delle autorizzazioni e dell’approvazione.- Node online con le funzionalità previste.
- Autorizzazioni del sistema operativo concesse per fotocamera, microfono, posizione e schermo.
- Stato delle approvazioni di esecuzione e dell’elenco consentito.
NODE_BACKGROUND_UNAVAILABLE→ l’app del Node deve essere in primo piano.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ autorizzazione del sistema operativo mancante.SYSTEM_RUN_DENIED: approval required→ approvazione dell’esecuzione in sospeso.SYSTEM_RUN_DENIED: allowlist miss→ comando bloccato dall’elenco consentito.
Strumento browser non riuscito
Utilizzare quando le azioni dello strumento browser non riescono anche se il gateway è integro.- Se
plugins.allowè impostato e includebrowser. - Percorso valido dell’eseguibile del browser.
- Raggiungibilità del profilo CDP.
- Disponibilità locale di Chrome per i profili
existing-session/user.
Indicatori del Plugin o dell'eseguibile
Indicatori del Plugin o dell'eseguibile
unknown command "browser"ounknown command 'browser'→ il Plugin browser incluso è escluso daplugins.allow.- Strumento browser mancante o non disponibile mentre
browser.enabled=true→plugins.allowescludebrowser, quindi il Plugin non è mai stato caricato. Failed to start Chrome CDP on port→ l’avvio del processo del browser non è riuscito.browser.executablePath not found→ il percorso configurato non è valido.browser.cdpUrl must be http(s) or ws(s)→ l’URL CDP configurato utilizza uno schema non supportato, comefile:oftp:.browser.cdpUrl has invalid port→ l’URL CDP configurato ha una porta non valida o fuori intervallo.Playwright is not available in this gateway build; '<feature>' is unsupported.→ l’installazione corrente del gateway non include la dipendenza del runtime browser di base; reinstallare o aggiornare OpenClaw, quindi riavviare il gateway. Le istantanee ARIA e le schermate di base delle pagine possono continuare a funzionare, ma la navigazione, le istantanee AI, le schermate degli elementi tramite selettore CSS e l’esportazione PDF restano non disponibili.
Indicatori di Chrome MCP o della sessione esistente
Indicatori di Chrome MCP o della sessione esistente
Could not find DevToolsActivePort for chrome→ la sessione esistente di Chrome MCP non è ancora riuscita a connettersi alla directory dei dati del browser selezionata. Aprire la pagina di ispezione del browser, abilitare il debug remoto, mantenere aperto il browser, approvare la prima richiesta di connessione, quindi riprovare. Se lo stato di accesso non è necessario, preferire il profilo gestitoopenclaw.No browser tabs found for profile="user"→ il profilo di connessione Chrome MCP non ha schede locali di Chrome aperte.Remote CDP for profile "<name>" is not reachable→ l’endpoint CDP remoto configurato non è raggiungibile dall’host del gateway.Browser attachOnly is enabled ... not reachableoBrowser attachOnly is enabled and CDP websocket ... is not reachable→ il profilo di sola connessione non ha destinazioni raggiungibili oppure l’endpoint HTTP ha risposto, ma non è stato comunque possibile aprire il WebSocket CDP.
Indicatori di elementi, schermate o caricamenti
Indicatori di elementi, schermate o caricamenti
fullPage is not supported for element screenshots→ la richiesta di schermata combinava--full-pagecon--refo--element.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ le chiamate per le schermate di Chrome MCP /existing-sessiondevono utilizzare l’acquisizione della pagina o un--refdell’istantanea, non un--elementCSS.existing-session file uploads do not support element selectors; use ref/inputRef.→ gli hook di caricamento di Chrome MCP richiedono riferimenti alle istantanee, non selettori CSS.existing-session file uploads currently support one file at a time.→ inviare un solo caricamento per chiamata nei profili Chrome MCP.existing-session dialog handling does not support timeoutMs.→ gli hook delle finestre di dialogo nei profili Chrome MCP non supportano sostituzioni del timeout.existing-session type does not support timeoutMs overrides.→ ometteretimeoutMsperact:typenei profili di sessione esistenteprofile="user"/ Chrome MCP oppure utilizzare un profilo browser gestito/CDP quando è necessario un timeout personalizzato.response body is not supported for existing-session profiles yet.→responsebodyrichiede ancora un browser gestito o un profilo CDP non elaborato.- Sostituzioni obsolete di viewport, modalità scura, impostazioni locali o modalità offline nei profili di sola connessione o CDP remoti → eseguire
openclaw browser stop --browser-profile <name>per chiudere la sessione di controllo attiva e rilasciare lo stato di emulazione Playwright/CDP senza riavviare l’intero gateway.
Se dopo un aggiornamento qualcosa ha improvvisamente smesso di funzionare
La maggior parte dei problemi successivi a un aggiornamento è dovuta a una divergenza della configurazione o all’applicazione di impostazioni predefinite ora più rigorose.1. Il comportamento di autenticazione e sovrascrittura dell'URL è cambiato
1. Il comportamento di autenticazione e sovrascrittura dell'URL è cambiato
- Se
gateway.mode=remote, le chiamate CLI potrebbero essere indirizzate al servizio remoto anche se quello locale funziona correttamente. - Le chiamate esplicite
--urlnon utilizzano come alternativa le credenziali memorizzate.
gateway connect failed:→ destinazione URL errata.unauthorized→ endpoint raggiungibile, ma autenticazione errata.
2. Le protezioni per il binding e l'autenticazione sono più rigide
2. Le protezioni per il binding e l'autenticazione sono più rigide
- I binding non loopback (
lan,tailnet,custom) richiedono un percorso di autenticazione del Gateway valido: autenticazione tramite token/password condivisi oppure una distribuzione non loopbacktrusted-proxyconfigurata correttamente. - Le chiavi precedenti come
gateway.tokennon sostituisconogateway.auth.token.
refusing to bind gateway ... without auth→ binding non loopback senza un percorso di autenticazione del Gateway valido.Connectivity probe: failedmentre il runtime è in esecuzione → Gateway attivo ma inaccessibile con l’autenticazione o l’URL correnti.
3. Lo stato di associazione e dell'identità del dispositivo è cambiato
3. Lo stato di associazione e dell'identità del dispositivo è cambiato
- Approvazioni dei dispositivi in sospeso per dashboard/nodi.
- Approvazioni di associazione dei messaggi diretti in sospeso dopo modifiche ai criteri o all’identità.
device identity required→ autenticazione del dispositivo non soddisfatta.pairing required→ il mittente/dispositivo deve essere approvato.