Risoluzione dei problemi del Gateway
Questa pagina è il runbook approfondito. Inizia da /help/troubleshooting se vuoi prima il flusso rapido di triage.Scala dei comandi
Esegui prima questi, in quest’ordine:openclaw gateway statusmostraRuntime: runningeRPC probe: ok.openclaw doctornon segnala problemi bloccanti di configurazione/servizio.openclaw channels status --probemostra lo stato live del trasporto per account e, dove supportato, risultati di probe/audit comeworksoaudit ok.
Anthropic 429 extra usage required for long context
Usa questa sezione quando log/errori includono:HTTP 429: rate_limit_error: Extra usage is required for long context requests.
- Il modello Anthropic Opus/Sonnet selezionato ha
params.context1m: true. - La credenziale Anthropic corrente non è idonea per l’uso del contesto lungo.
- Le richieste falliscono solo su sessioni lunghe/esecuzioni del modello che richiedono il percorso beta da 1M.
- Disabilita
context1mper quel modello per tornare alla normale finestra di contesto. - Usa una chiave API Anthropic con fatturazione, oppure abilita Anthropic Extra Usage sull’account Anthropic OAuth/subscription.
- Configura modelli di fallback in modo che le esecuzioni continuino quando le richieste Anthropic per contesto lungo vengono rifiutate.
- /providers/anthropic
- /reference/token-use
- /help/faq#why-am-i-seeing-http-429-ratelimiterror-from-anthropic
Nessuna risposta
Se i canali sono attivi ma non arriva nessuna risposta, controlla instradamento e policy prima di riconnettere qualsiasi cosa.- Pairing in sospeso per i mittenti DM.
- Gating delle menzioni nei gruppi (
requireMention,mentionPatterns). - Mismatch nelle allowlist di canale/gruppo.
drop guild message (mention required→ messaggio di gruppo ignorato fino a una menzione.pairing request→ il mittente richiede approvazione.blocked/allowlist→ mittente/canale filtrato dalla policy.
Connettività della dashboard/control UI
Quando la dashboard/control UI non si connette, verifica URL, modalità di autenticazione e ipotesi sul contesto sicuro.- URL probe corretto e URL dashboard corretto.
- Mismatch della modalità di autenticazione/token tra client e gateway.
- Uso di HTTP dove è richiesta l’identità del dispositivo.
device identity required→ contesto non sicuro o autenticazione del dispositivo mancante.origin not allowed→Origindel browser non è ingateway.controlUi.allowedOrigins(oppure ti stai connettendo da un’origine browser non loopback senza un’allowlist esplicita).device nonce required/device nonce mismatch→ il client non sta completando il flusso di autenticazione del dispositivo basato su challenge (connect.challenge+device.nonce).device signature invalid/device signature expired→ il client ha firmato il payload sbagliato (o un timestamp obsoleto) per l’handshake corrente.AUTH_TOKEN_MISMATCHconcanRetryWithDeviceToken=true→ il client può fare un retry trusted con token dispositivo in cache.- Quel retry con token in cache riusa il set di ambiti in cache memorizzato con il token
dispositivo accoppiato. I chiamanti con
deviceTokenesplicito /scopesespliciti mantengono invece il set di ambiti richiesto. - Fuori da quel percorso di retry, la precedenza dell’autenticazione di connect è:
token/password condiviso esplicito, poi
deviceTokenesplicito, poi token dispositivo memorizzato, poi bootstrap token. - Nel percorso asincrono Tailscale Serve Control UI, i tentativi falliti per lo stesso
{scope, ip}vengono serializzati prima che il limiter registri il fallimento. Due retry concorrenti errati dallo stesso client possono quindi mostrareretry lateral secondo tentativo invece di due semplici mismatch. too many failed authentication attempts (retry later)da un client loopback con origine browser → fallimenti ripetuti dalla stessaOriginnormalizzata vengono temporaneamente bloccati; un’altra origine localhost usa un bucket separato.unauthorizedripetuto dopo quel retry → deriva del token condiviso/token dispositivo; aggiorna la configurazione del token e riapprova/ruota il token dispositivo se necessario.gateway connect failed:→ host/porta/target URL errato.
Mappa rapida dei codici di dettaglio auth
Usaerror.details.code dalla risposta connect fallita per scegliere l’azione successiva:
| Codice di dettaglio | Significato | Azione consigliata |
|---|---|---|
AUTH_TOKEN_MISSING | Il client non ha inviato un token condiviso richiesto. | Incolla/imposta il token nel client e riprova. Per i percorsi dashboard: openclaw config get gateway.auth.token poi incollalo nelle impostazioni della Control UI. |
AUTH_TOKEN_MISMATCH | Il token condiviso non corrisponde al token auth del gateway. | Se canRetryWithDeviceToken=true, consenti un retry trusted. I retry con token in cache riusano gli ambiti approvati memorizzati; i chiamanti con deviceToken / scopes espliciti mantengono gli ambiti richiesti. Se continua a fallire, esegui la checklist di recupero dalla deriva del token. |
AUTH_DEVICE_TOKEN_MISMATCH | Il token per dispositivo in cache è obsoleto o revocato. | Ruota/riapprova il token dispositivo usando la CLI dei dispositivi, poi riconnettiti. |
PAIRING_REQUIRED | L’identità del dispositivo è nota ma non approvata per questo ruolo. | Approva la richiesta in sospeso: openclaw devices list poi openclaw devices approve <requestId>. |
- attenda
connect.challenge - firmi il payload vincolato alla challenge
- invii
connect.params.device.noncecon lo stesso nonce della challenge
openclaw devices rotate / revoke / remove viene negato in modo inatteso:
- le sessioni con token del dispositivo accoppiato possono gestire solo il proprio dispositivo a meno che il
chiamante non abbia anche
operator.admin openclaw devices rotate --scope ...può richiedere solo ambiti operatore che la sessione chiamante possiede già
- /web/control-ui
- /gateway/configuration (modalità auth del gateway)
- /gateway/trusted-proxy-auth
- /gateway/remote
- /cli/devices
Servizio gateway non in esecuzione
Usa questa sezione quando il servizio è installato ma il processo non resta attivo.Runtime: stoppedcon indizi sull’uscita.- Mismatch della configurazione del servizio (
Config (cli)vsConfig (service)). - Conflitti di porta/listener.
- Installazioni launchd/systemd/schtasks aggiuntive quando viene usato
--deep. - Suggerimenti di pulizia
Other gateway-like services detected (best effort).
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. Correzione: impostagateway.mode="local"nella tua configurazione, oppure rieseguiopenclaw onboard --mode local/openclaw setupper ripristinare la configurazione attesa per la modalità locale. Se stai eseguendo OpenClaw tramite Podman, il percorso di configurazione predefinito è~/.openclaw/openclaw.json.refusing to bind gateway ... without auth→ bind non loopback senza un percorso auth gateway valido (token/password, o trusted-proxy dove 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 dovrebbe esserci un solo gateway per macchina; se te ne servono più di uno, isola porte + config/stato/workspace. Vedi /gateway#multiple-gateways-same-host.
Avvisi della probe del gateway
Usa questa sezione quandoopenclaw gateway probe raggiunge qualcosa, ma stampa comunque un blocco di avvisi.
warnings[].codeeprimaryTargetIdnell’output JSON.- Se l’avviso riguarda fallback SSH, gateway multipli, ambiti mancanti o riferimenti auth non risolti.
SSH tunnel failed to start; falling back to direct probes.→ la configurazione SSH è fallita, ma il comando ha comunque provato target diretti configurati/loopback.multiple reachable gateways detected→ ha risposto più di un target. Di solito significa una configurazione multi-gateway intenzionale o listener obsoleti/duplicati.Probe diagnostics are limited by gateway scopes (missing operator.read)→ la connessione è riuscita, ma l’RPC di dettaglio è limitato dagli ambiti; accoppia l’identità del dispositivo o usa credenziali conoperator.read.- testo di avviso SecretRef non risolto per
gateway.auth.*/gateway.remote.*→ il materiale auth non era disponibile in questo percorso di comando per il target fallito.
Canale connesso ma messaggi non in transito
Se lo stato del canale è connected ma il flusso dei messaggi è morto, concentrati su policy, permessi e regole di consegna specifiche del canale.- Policy DM (
pairing,allowlist,open,disabled). - Allowlist di gruppo e requisiti di menzione.
- Permessi/ambiti API del canale mancanti.
mention required→ messaggio ignorato dalla policy di menzione del gruppo.pairing/ tracce di approvazione in sospeso → il mittente non è approvato.missing_scope,not_in_channel,Forbidden,401/403→ problema di autenticazione/permessi del canale.
Consegna cron e heartbeat
Se cron o heartbeat non sono stati eseguiti o non hanno consegnato, verifica prima lo stato dello scheduler, poi il target di consegna.- Cron abilitato e prossima attivazione presente.
- Stato della cronologia delle esecuzioni del job (
ok,skipped,error). - Motivi di skip dell’heartbeat (
quiet-hours,requests-in-flight,alerts-disabled,empty-heartbeat-file,no-tasks-due).
cron: scheduler disabled; jobs will not run automatically→ cron disabilitato.cron: timer tick failed→ tick dello scheduler fallito; controlla errori di file/log/runtime.heartbeat skippedconreason=quiet-hours→ fuori dalla finestra di ore attive.heartbeat skippedconreason=empty-heartbeat-file→HEARTBEAT.mdesiste ma contiene solo righe vuote / intestazioni markdown, quindi OpenClaw salta la chiamata al modello.heartbeat skippedconreason=no-tasks-due→HEARTBEAT.mdcontiene un bloccotasks:, ma nessuna attività è in scadenza a questo tick.heartbeat: unknown accountId→ ID account non valido per il target di consegna heartbeat.heartbeat skippedconreason=dm-blocked→ il target heartbeat è stato risolto in una destinazione in stile DM mentreagents.defaults.heartbeat.directPolicy(o l’override per agente) è impostato sublock.
Errore di uno strumento del nodo accoppiato
Se un nodo è accoppiato ma gli strumenti falliscono, isola stato in foreground, permessi e approvazioni.- Nodo online con le capacità previste.
- Permessi del sistema operativo per camera/microfono/posizione/schermo.
- Approvazioni exec e stato allowlist.
NODE_BACKGROUND_UNAVAILABLE→ l’app del nodo deve essere in foreground.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ permesso OS mancante.SYSTEM_RUN_DENIED: approval required→ approvazione exec in sospeso.SYSTEM_RUN_DENIED: allowlist miss→ comando bloccato dalla allowlist.
Errore dello strumento browser
Usa questa sezione quando le azioni dello strumento browser falliscono anche se il gateway stesso è integro.- Se
plugins.allowè impostato e includebrowser. - Percorso eseguibile del browser valido.
- Raggiungibilità del profilo CDP.
- Disponibilità di Chrome locale per i profili
existing-session/user.
unknown command "browser"ounknown command 'browser'→ il plugin browser incluso è escluso daplugins.allow.- strumento browser mancante / non disponibile mentre
browser.enabled=true→plugins.allowescludebrowser, quindi il plugin non è mai stato caricato. Failed to start Chrome CDP on port→ il processo browser non è riuscito ad avviarsi.browser.executablePath not found→ il percorso configurato non è valido.browser.cdpUrl must be http(s) or ws(s)→ l’URL CDP configurato usa uno schema non supportato comefile:oftp:.browser.cdpUrl has invalid port→ l’URL CDP configurato ha una porta non valida o fuori intervallo.No Chrome tabs found for profile="user"→ il profilo di attach Chrome MCP non ha schede Chrome locali aperte.Remote CDP for profile "<name>" is not reachable→ l’endpoint CDP remoto configurato non è raggiungibile dall’host gateway.Browser attachOnly is enabled ... not reachableoBrowser attachOnly is enabled and CDP websocket ... is not reachable→ il profilo attach-only non ha un target raggiungibile, oppure l’endpoint HTTP ha risposto ma il WebSocket CDP non è comunque stato aperto.Playwright is not available in this gateway build; '<feature>' is unsupported.→ l’installazione gateway corrente non include il pacchetto Playwright completo; snapshot ARIA e screenshot di base della pagina possono comunque funzionare, ma navigazione, snapshot AI, screenshot di elementi con selettori CSS ed esportazione PDF restano non disponibili.fullPage is not supported for element screenshots→ la richiesta screenshot ha combinato--full-pagecon--refo--element.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ le chiamate screenshot Chrome MCP /existing-sessiondevono usare una cattura pagina o un--refda snapshot, non--elementCSS.existing-session file uploads do not support element selectors; use ref/inputRef.→ gli hook di upload Chrome MCP richiedono riferimenti da snapshot, non selettori CSS.existing-session file uploads currently support one file at a time.→ invia un upload per chiamata sui profili Chrome MCP.existing-session dialog handling does not support timeoutMs.→ gli hook dialog sui profili Chrome MCP non supportano override del timeout.response body is not supported for existing-session profiles yet.→responsebodyrichiede ancora un browser gestito o un profilo CDP raw.- override obsoleti di viewport / dark-mode / locale / offline su profili attach-only o CDP remoti → esegui
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 hai aggiornato e qualcosa si è rotto all’improvviso
La maggior parte dei problemi post-aggiornamento è dovuta a deriva della configurazione o a valori predefiniti più rigidi che ora vengono applicati.1) Il comportamento di auth e override URL è cambiato
- Se
gateway.mode=remote, le chiamate CLI potrebbero puntare al remoto mentre il tuo servizio locale è a posto. - Le chiamate esplicite con
--urlnon usano il fallback alle credenziali memorizzate.
gateway connect failed:→ target URL errato.unauthorized→ endpoint raggiungibile ma auth errata.
2) I guardrail su bind e auth sono più rigidi
- I bind non loopback (
lan,tailnet,custom) richiedono un percorso auth gateway valido: autenticazione con token/password condivisi, oppure un deploymenttrusted-proxynon loopback configurato correttamente. - Vecchie chiavi come
gateway.tokennon sostituisconogateway.auth.token.
refusing to bind gateway ... without auth→ bind non loopback senza un percorso auth gateway valido.RPC probe: failedmentre il runtime è in esecuzione → gateway attivo ma inaccessibile con auth/url correnti.
3) Lo stato di pairing e identità del dispositivo è cambiato
- Approvazioni dispositivo in sospeso per dashboard/nodi.
- Approvazioni DM pairing in sospeso dopo cambi di policy o identità.
device identity required→ autenticazione del dispositivo non soddisfatta.pairing required→ mittente/dispositivo deve essere approvato.