Sequência de comandos
Execute nesta ordem:openclaw gateway statusmostraRuntime: running,Connectivity probe: oke uma linhaCapability: ....openclaw doctornão relata problemas impeditivos de configuração ou serviço.openclaw channels status --probemostra o status atual do transporte por conta e, quando houver suporte,worksouaudit ok.
Após uma atualização
Use quando uma atualização terminar, mas o Gateway estiver inativo, os canais estiverem vazios ou as chamadas de modelo falharem com erros 401.Update restartemopenclaw status/openclaw status --all. Transferências pendentes ou com falha incluem o próximo comando a ser executado.plugin load failed: dependency tree corrupted; run openclaw doctor --fixem Canais: a configuração do canal ainda existe, mas o registro do plugin falhou antes que o canal pudesse ser carregado.- Erros 401 do provedor após uma nova autenticação:
openclaw doctor --fixverifica se há cópias obsoletas de autenticação OAuth por agente que estejam ocultando a autenticação atual e remove as cópias antigas para que todos os agentes resolvam o perfil compartilhado atual.
Instalações divergentes e proteção contra configurações mais recentes
Use quando um serviço do Gateway parar inesperadamente após uma atualização ou quando os logs mostrarem que um binárioopenclaw é mais antigo do que a versão que gravou openclaw.json pela última vez.
O OpenClaw marca as gravações de configuração com meta.lastTouchedVersion. Comandos somente leitura podem inspecionar uma configuração gravada por uma versão mais recente do OpenClaw, mas mutações de processos e serviços se recusam a ser executadas por um binário mais antigo. Ações bloqueadas: iniciar/parar/reiniciar/desinstalar o serviço do Gateway, reinstalação forçada do serviço, inicialização do Gateway no modo de serviço e limpeza de porta com gateway --force.
Corrija o PATH
PATH para que openclaw seja resolvido para a instalação mais recente e execute a ação novamente.Reinstale o serviço do Gateway
Remova wrappers obsoletos
openclaw antigo.Incompatibilidade de protocolo após reversão
Use quando os logs continuarem exibindoprotocol mismatch após um downgrade ou uma reversão. Um Gateway mais antigo está em execução, mas um processo cliente local mais recente ainda está tentando se reconectar com um intervalo de protocolo que o Gateway mais antigo não consegue usar.
protocol mismatch ... client=... v<version> min=<n> max=<n> expected=<n>nos logs do Gateway.Established clients:emopenclaw gateway status --deepouGateway clientsemopenclaw doctor --deep: clientes TCP ativos conectados à porta do Gateway, com PIDs e linhas de comando quando o sistema operacional permitir.- Um processo cliente cuja linha de comando aponte para a instalação ou o wrapper mais recente do OpenClaw a partir do qual você fez a reversão.
- Pare ou reinicie o processo cliente obsoleto do OpenClaw exibido por
gateway status --deep. - Reinicie aplicativos ou wrappers que incorporem o OpenClaw: painéis locais, editores, auxiliares de servidores de aplicativos ou shells de longa duração com
openclaw logs --follow. - Execute novamente
openclaw gateway status --deepouopenclaw doctor --deepe confirme que o PID do cliente obsoleto desapareceu.
Link simbólico de Skill ignorado por escapar do caminho
Use quando os logs incluírem:~/.agents/skills, <workspace>/.agents/skills, <workspace>/skills ou ~/.openclaw/skills é ignorado quando seu destino real é resolvido fora dessa raiz, a menos que o destino seja explicitamente confiável.
Inspecione o link:
~, / ou uma pasta inteira de projeto sincronizado. Restrinja allowSymlinkTargets à raiz real de Skills que contém diretórios SKILL.md confiáveis.
Se a aplicação do Skill Workshop também precisar gravar por meio desses caminhos confiáveis de Skills do espaço de trabalho vinculados simbolicamente, ative skills.workshop.allowSymlinkTargetWrites. Mantenha essa opção desativada para raízes compartilhadas de Skills somente leitura.
Relacionado:
Uso adicional exigido pelo erro 429 da Anthropic para contexto longo
Use quando os logs ou erros incluírem:HTTP 429: rate_limit_error: Extra usage is required for long context requests.
- O modelo Anthropic selecionado é um modelo Claude 4.x com disponibilidade geral e capacidade para 1M (Opus 4.6/4.7/4.8, Sonnet 4.6), ou a configuração do modelo ainda contém o parâmetro legado
params.context1m: true. - A credencial atual da Anthropic não está qualificada para uso de contexto longo.
- As solicitações falham somente em sessões longas ou execuções de modelos que precisam do caminho de contexto de 1M.
Use uma janela de contexto padrão
context1m legado de uma
configuração de modelo antiga que não tenha disponibilidade geral para contexto de 1M.Use uma credencial qualificada
Configure modelos alternativos
Respostas 403 bloqueadas pelo serviço upstream
Use quando um provedor upstream de LLM retornar um erro403 genérico, como Your request was blocked.
Não presuma que isso seja sempre um problema de configuração do OpenClaw. A resposta pode vir de uma camada de segurança upstream, como uma CDN, WAF, regra de gerenciamento de bots ou proxy reverso diante de um endpoint compatível com OpenAI.
- Vários modelos do mesmo provedor falhando da mesma maneira.
- HTML ou texto genérico de segurança em vez de um erro normal da API do provedor.
- Eventos de segurança do lado do provedor correspondentes ao mesmo horário da solicitação.
- Uma pequena sondagem direta com
curlfuncionando enquanto solicitações normais no formato do SDK falham.
Backend local compatível com OpenAI passa em sondagens diretas, mas as execuções do agente falham
Use quando:curl ... /v1/modelsfunciona.- Chamadas diretas pequenas para
/v1/chat/completionsfuncionam. - As execuções de modelos do OpenClaw falham somente em interações normais do agente.
- Chamadas diretas pequenas funcionam, mas as execuções do OpenClaw falham somente com prompts maiores.
- Erros
model_not_foundou 404, embora/v1/chat/completionsfuncione diretamente com o mesmo ID simples de modelo. - Erros do backend informando que
messages[].contentesperava uma string. - Avisos intermitentes
incomplete turn detected ... stopReason=stop payloads=0com um backend local compatível com OpenAI. - Falhas do backend que aparecem somente com contagens maiores de tokens do prompt ou prompts completos do runtime do agente.
Assinaturas comuns
Assinaturas comuns
model_not_foundcom um servidor local no estilo MLX/vLLM: verifique sebaseUrlinclui/v1, seapié"openai-completions"para backends de/v1/chat/completionse semodels.providers.<provider>.models[].idé o ID simples local do provedor. Selecione-o uma vez com o prefixo do provedor, por exemplo,mlx/mlx-community/Qwen3-30B-A3B-6bit; mantenha a entrada do catálogo comomlx-community/Qwen3-30B-A3B-6bit.messages[...].content: invalid type: sequence, expected a string: o backend rejeita partes estruturadas do conteúdo do Chat Completions. Correção: definamodels.providers.<provider>.models[].compat.requiresStringContent: true.validation.keysou chaves de mensagem permitidas como["role","content"]: o backend rejeita metadados de reprodução no estilo OpenAI em mensagens do Chat Completions. Correção: definamodels.providers.<provider>.models[].compat.strictMessageKeys: true.incomplete turn detected ... stopReason=stop payloads=0: o backend concluiu a solicitação do Chat Completions, mas não retornou texto do assistente visível ao usuário nessa interação. O OpenClaw repete uma vez as interações vazias compatíveis com OpenAI cuja reprodução é segura; falhas persistentes geralmente significam que o backend está emitindo conteúdo vazio ou não textual ou suprimindo o texto da resposta final.- Solicitações diretas pequenas funcionam, mas as execuções do agente do OpenClaw falham com travamentos do backend/modelo (por exemplo, Gemma em algumas compilações do
inferrs): o transporte do OpenClaw provavelmente já está correto; o backend está falhando com o formato maior do prompt do runtime do agente. - As falhas diminuem após desativar as ferramentas, mas não desaparecem: os esquemas das ferramentas faziam parte da pressão, mas o problema restante ainda é a capacidade upstream do modelo/servidor ou um bug do backend.
Opções de correção
Opções de correção
- Defina
compat.requiresStringContent: truepara backends do Chat Completions que aceitam somente strings. - Defina
compat.strictMessageKeys: truepara backends estritos do Chat Completions que aceitam somenteroleecontentem cada mensagem. - Defina
compat.supportsTools: falsepara modelos/backends que não conseguem processar de forma confiável a superfície de esquemas de ferramentas do OpenClaw. - Reduza a pressão do prompt quando possível: inicialização menor do espaço de trabalho, histórico de sessão mais curto, modelo local mais leve ou um backend com suporte mais robusto a contexto longo.
- Se as solicitações diretas pequenas continuarem funcionando enquanto as interações do agente do OpenClaw ainda causarem falhas no backend, trate isso como uma limitação upstream do servidor/modelo e registre uma reprodução nesse projeto com o formato de payload aceito.
Sem respostas
Se os canais estiverem ativos, mas nada responder, verifique o roteamento e a política antes de reconectar qualquer coisa.- Pareamento pendente para remetentes de mensagens diretas.
- Restrição por menção em grupos (
requireMention,mentionPatterns). - Incompatibilidades na lista de permissões do canal/grupo.
drop guild message (mention required→ mensagem de grupo ignorada até haver uma menção.pairing request→ o remetente precisa de aprovação.blocked/allowlist→ o remetente/canal foi filtrado pela política.
Conectividade da interface de controle do painel
Quando o painel/interface de controle não se conectar, valide a URL, o modo de autenticação e as premissas de contexto seguro.- URL de sondagem e URL do painel corretas.
- Incompatibilidade de modo/token de autenticação entre o cliente e o Gateway.
- Uso de HTTP quando a identidade do dispositivo é obrigatória.
127.0.0.1:18789 após uma atualização, primeiro recupere o serviço local do Gateway e confirme que ele está servindo o painel:
curl retornar HTML do OpenClaw, o Gateway está funcionando, e o problema restante provavelmente é o cache do navegador, um link direto antigo ou o estado obsoleto de uma aba. Abra http://127.0.0.1:18789 diretamente e navegue a partir do painel. Se a reinicialização não mantiver o serviço em execução, execute openclaw gateway start e verifique novamente openclaw gateway status.
Assinaturas de conexão/autenticação
Assinaturas de conexão/autenticação
device identity required→ contexto não seguro ou autenticação do dispositivo ausente.origin not allowed→ oOrigindo navegador não está emgateway.controlUi.allowedOrigins(ou você está se conectando a partir de uma origem de navegador que não é loopback sem uma lista de permissões explícita).device nonce required/device nonce mismatch→ o cliente não está concluindo o fluxo de autenticação do dispositivo baseado em desafio (connect.challenge+device.nonce).device signature invalid/device signature expired→ o cliente assinou o payload incorreto (ou usou um carimbo de data/hora obsoleto) para o handshake atual.AUTH_TOKEN_MISMATCHcomcanRetryWithDeviceToken=true→ o cliente pode fazer uma nova tentativa confiável com o token de dispositivo armazenado em cache.- Essa nova tentativa com o token em cache reutiliza o conjunto de escopos armazenado com o token do dispositivo pareado. Chamadores com
deviceToken/scopesexplícitos mantêm o conjunto de escopos solicitado. AUTH_SCOPE_MISMATCH→ o token do dispositivo foi reconhecido, mas seus escopos aprovados não abrangem esta solicitação de conexão; faça um novo pareamento ou aprove o contrato de escopo solicitado em vez de alternar um token compartilhado do Gateway.- Fora desse caminho de nova tentativa, a precedência da autenticação de conexão é: token compartilhado/senha explícito primeiro, depois
deviceTokenexplícito, depois o token de dispositivo armazenado e, por fim, o token de bootstrap. - No caminho assíncrono da interface de controle do Tailscale Serve, as tentativas com falha para o mesmo
{scope, ip}são serializadas antes que o limitador registre a falha. Portanto, duas novas tentativas simultâneas inválidas do mesmo cliente podem resultar emretry laterna segunda tentativa, em vez de duas incompatibilidades simples. too many failed authentication attempts (retry later)de um cliente loopback com origem de navegador → falhas repetidas da mesmaOriginnormalizada são bloqueadas temporariamente; outra origem localhost usa um bucket separado.unauthorizedrepetido após essa nova tentativa → divergência entre o token compartilhado e o token do dispositivo; atualize a configuração do token e, se necessário, aprove novamente ou alterne o token do dispositivo.gateway connect failed:→ destino de host/porta/URL incorreto.
Mapa rápido dos códigos de detalhes de autenticação
Useerror.details.code da resposta de connect com falha para escolher a próxima ação:
scope-upgrade, verifique se o chamador está usando client.id: "gateway-client" e client.mode: "backend" e se não está forçando uma deviceIdentity explícita ou um token de dispositivo.Aguardar connect.challenge
connect.challenge emitido pelo Gateway.Assinar o payload
Enviar o nonce do dispositivo
connect.params.device.nonce com o mesmo nonce do desafio.openclaw devices rotate / revoke / remove for negado inesperadamente:
- Sessões com token de dispositivo pareado podem gerenciar somente seu próprio dispositivo, a menos que o chamador também tenha
operator.admin. openclaw devices rotate --scope ...só pode solicitar escopos de operador que a sessão do chamador já possui.
- Configuração (modos de autenticação do Gateway)
- Interface de controle
- Dispositivos
- Acesso remoto
- Autenticação por proxy confiável
Serviço do Gateway não está em execução
Use quando o serviço estiver instalado, mas o processo não permanecer em execução.Runtime: stoppedcom indicações de saída.- Incompatibilidade na configuração do serviço (
Config (cli)em comparação comConfig (service)). - Conflitos de porta/listener.
- Instalações adicionais de launchd/systemd/schtasks quando
--deepé usado. - Dicas de limpeza em
Other gateway-like services detected (best effort).
Assinaturas comuns
Assinaturas comuns
Gateway start blocked: set gateway.mode=localouexisting config is missing gateway.mode→ o modo local do Gateway não está habilitado, ou o arquivo de configuração foi sobrescrito e perdeugateway.mode. Correção: definagateway.mode="local"em sua configuração ou execute novamenteopenclaw onboard --mode local/openclaw setuppara restaurar a configuração esperada do modo local. Se você estiver executando o OpenClaw via Podman, o caminho de configuração padrão é~/.openclaw/openclaw.json.refusing to bind gateway ... without auth→ associação a uma interface que não é loopback sem um caminho válido de autenticação do Gateway (token/senha ou proxy confiável, quando configurado).another gateway instance is already listening/EADDRINUSE→ conflito de porta.Other gateway-like services detected (best effort)→ existem unidades launchd/systemd/schtasks obsoletas ou paralelas. A maioria das configurações deve manter um Gateway por máquina; se você realmente precisar de mais de um, isole portas + configuração/estado/workspace. Consulte /gateway#multiple-gateways-same-host.System-level OpenClaw gateway service detecteddo doctor → existe uma unidade systemd de sistema, enquanto o serviço no nível do usuário está ausente. Remova ou desabilite a duplicata antes de permitir que o doctor instale um serviço de usuário, ou definaOPENCLAW_SERVICE_REPAIR_POLICY=externalse a unidade de sistema for o supervisor pretendido.Gateway service port does not match current gateway config→ o supervisor instalado ainda fixa o--portantigo. Executeopenclaw doctor --fixouopenclaw gateway install --forcee reinicie o serviço do Gateway.
O Gateway no macOS para silenciosamente de responder e retoma quando você interage com o painel
Use quando os canais (Telegram, WhatsApp etc.) em um host macOS ficam inativos por minutos ou horas, e o Gateway parece voltar assim que você abre a interface de controle, acessa via SSH ou interage de outra forma com o host. Geralmente, não há nenhum sintoma evidente emopenclaw status, pois, quando você verifica, o Gateway já está ativo novamente.
- Um ou mais pacotes
*-uncaught_exception.jsonem~/.openclaw/logs/stability/comerror.codedefinido como um código transitório de rede, comoENETDOWN,ENETUNREACH,EHOSTUNREACHouECONNREFUSED. - Linhas de
pmset -g logcomoEntering Sleep state due to 'Maintenance Sleep'ouen0 driver is slow (msg: WillChangeState to 0)alinhadas aos horários das falhas. Power Nap / Maintenance Sleep coloca brevemente o driver de Wi-Fi no estado 0; qualquerconnect()de saída que ocorra nessa janela pode falhar comENETDOWN, mesmo em um host que normalmente tenha conectividade de rede completa. - Saída de
launchctl printmostrandostate = not runningcom várias execuções (runs) recentes e um código de saída, especialmente quando o intervalo entre a falha e a próxima inicialização é da ordem de uma hora, em vez de segundos. O launchd do macOS aplica uma barreira não documentada de proteção contra reinicializações após uma sequência de falhas, que pode deixar de respeitarKeepAlive=trueaté que um gatilho externo, como login interativo, conexão com o painel oulaunchctl kickstart, a reative.
- Um pacote de estabilidade cujo
error.codesejaENETDOWNou um código relacionado, com a pilha de chamadas apontando paralookupAndConnect/Socket.connectdo módulonetdo Node. O OpenClaw2026.5.26e versões posteriores classificam esses casos como erros transitórios de rede inofensivos, portanto eles não chegam mais ao manipulador de exceções não capturadas de nível superior; se você estiver em uma versão anterior, atualize primeiro. - Longos períodos de inatividade que terminam no instante em que você se conecta à interface de controle ou acessa o host por SSH: é a atividade visível ao usuário que reativa a barreira de reinicialização do launchd, não alguma ação do painel sobre o Gateway.
- A contagem de
runsaumentando ao longo do dia sem uma linha correspondentereceived SIG*; shutting downem~/Library/Logs/openclaw/gateway.log: encerramentos normais registram um sinal; falhas transitórias não.
-
Atualize o Gateway se estiver executando uma versão anterior à
2026.5.26. Após a atualização, futuros errosENETDOWNserão registrados como avisos, em vez de encerrar o processo. -
Reduza a atividade de suspensão para manutenção em hosts Mac mini / desktop destinados a funcionar como servidores sempre ativos:
Isso reduz significativamente, mas não elimina por completo, a oscilação subjacente do driver. O sistema ainda pode realizar algumas suspensões para manutenção de keepalive TCP e manutenção de mDNS, independentemente dessas opções.
-
Adicione um monitor de atividade para que uma futura sequência de falhas estacionada pelo launchd seja detectada rapidamente:
O objetivo é reativar externamente a barreira de reinicialização;
KeepAlive=truepor si só não é suficiente no macOS após uma sequência de falhas.
Loop de supervisão do launchd no macOS com LaunchAgents duplicados de Gateway/Node
Use isto quando uma instalação do macOS continuar reiniciando a cada poucos segundos, as verificações de integridade doopenclaw
alternarem entre disponível e indisponível e o encaminhamento de canais travar,
mesmo que o serviço pareça estar em execução.
Isso foi observado em instalações antigas nas quais os LaunchAgents ai.openclaw.gateway e
ai.openclaw.node estavam ativos e cada um injetava
OPENCLAW_LAUNCHD_LABEL. Nesse estado, o OpenClaw pode detectar a
supervisão do launchd, tentar devolver o controle da reinicialização ao launchd e entrar em um loop rápido de
EADDRINUSE/reinicialização, em vez de manter um único processo estável do Gateway.
- Mais de um PID do Gateway ao longo da amostra de 30 segundos, em vez de um único processo estável.
EADDRINUSE,another gateway instance is already listeningou linhas repetidas de reinicialização/transferência emgateway.log.- Tanto
~/Library/LaunchAgents/ai.openclaw.gateway.plistquanto~/Library/LaunchAgents/ai.openclaw.node.plistcarregados ao mesmo tempo em um host que deveria executar apenas um serviço gerenciado do Gateway.
-
Se este host deve executar somente o serviço do Gateway, remova o serviço
gerenciado do Node por meio do OpenClaw. Pule esta etapa se você utiliza ativamente o serviço do Node
para recursos remotos do Node; desinstalá-lo interrompe esses recursos neste
host:
-
Instale um wrapper persistente do Gateway que remova os marcadores herdados do launchd
antes de iniciar o OpenClaw. Use a opção compatível
--wrapper; não edite o arquivo gerado em~/.openclaw/service-env/, pois a reinstalação do serviço, a atualização e o reparo do Doctor regeneram esse arquivo:gateway installmantém o caminho do wrapper entre reinstalações forçadas, atualizações e reparos do Doctor. -
Verifique se o Gateway está estável e atendendo RPC, não apenas escutando:
A amostra de PIDs deve mostrar um único processo estável, em vez de um conjunto rotativo de PIDs, e o encaminhamento de canais de entrada deve ser retomado.
-
Depois de atualizar para uma versão na qual o loop subjacente de dois LaunchAgents esteja
corrigido, remova a solução alternativa e reinstale o serviço gerenciado normal:
O Gateway é encerrado durante alto uso de memória
Use quando o Gateway desaparecer sob carga, o supervisor relatar uma reinicialização semelhante a OOM ou os logs mencionaremcritical memory pressure bundle written.
Reason: diagnostic.memory.pressure.criticalno pacote de estabilidade mais recente.Memory pressure:comcritical/rss_threshold,critical/heap_thresholdoucritical/rss_growth.- Valores de
V8 heap:próximos ao limite do heap. - Entradas de
Largest session files:comoagents/<agent>/sessions/<session>.jsonlousessions/<session>.jsonl. - Contadores de memória de cgroup do Linux quando o Gateway é executado dentro de um contêiner ou serviço com memória limitada.
critical memory pressure bundle writtenaparece pouco antes da reinicialização → o OpenClaw capturou um pacote de estabilidade anterior ao OOM. Inspecione-o comopenclaw gateway stability --bundle latest.memory pressure: level=critical ... memoryPressureSnapshot=disabledaparece nos logs do Gateway → o OpenClaw detectou pressão crítica de memória, mas o instantâneo de estabilidade anterior ao OOM está desativado.Largest session files:aponta para um caminho de transcrição anonimizado muito grande → reduza o histórico de sessões mantido, inspecione o crescimento das sessões ou mova transcrições antigas para fora do armazenamento ativo antes de reiniciar.- Os bytes usados em
V8 heap:estão próximos ao limite do heap → reduza a pressão de prompts/sessões, diminua o trabalho simultâneo ou aumente o limite de heap do Node somente após confirmar que a carga de trabalho é esperada. Memory pressure: critical/rss_growth→ a memória cresceu rapidamente em uma única janela de amostragem. Verifique nos logs mais recentes se houve uma importação grande, saída descontrolada de uma ferramenta, tentativas repetidas ou um lote de trabalhos de agentes enfileirados.- A pressão crítica de memória aparece nos logs, mas não existe pacote → esse é o padrão. Defina
diagnostics.memoryPressureSnapshot: truepara capturar o pacote de estabilidade anterior ao OOM em futuros eventos de pressão crítica de memória.
O Gateway rejeitou uma configuração inválida
Use quando a inicialização do Gateway falhar comInvalid config ou quando os logs de recarga dinâmica indicarem que uma edição inválida foi ignorada.
Invalid config at ...config reload skipped (invalid config): ...Config write rejected: ...- Um arquivo
openclaw.json.rejected.*com data e hora ao lado da configuração ativa. - Um arquivo
openclaw.json.clobbered.*com data e hora sedoctor --fixtiver reparado uma edição direta corrompida. - O OpenClaw mantém os 32 arquivos
.clobbered.*mais recentes de cada caminho de configuração e remove os mais antigos por rotação.
O que aconteceu
O que aconteceu
- A configuração não passou pela validação durante a inicialização, a recarga dinâmica ou uma gravação controlada pelo OpenClaw.
- A inicialização do Gateway falha de forma segura, em vez de reescrever
openclaw.json. - A recarga dinâmica ignora edições externas inválidas e mantém ativa a configuração atual do ambiente de execução.
- As gravações controladas pelo OpenClaw rejeitam cargas úteis inválidas/destrutivas antes da confirmação e salvam
.rejected.*. openclaw doctor --fixé responsável pelo reparo. Ele pode remover prefixos que não sejam JSON ou restaurar a última cópia válida conhecida, preservando a carga útil rejeitada como.clobbered.*.- Quando ocorrem muitos reparos em um caminho de configuração, o OpenClaw remove por rotação os arquivos
.clobbered.*mais antigos, para que a carga útil reparada mais recente continue disponível.
Inspecionar e reparar
Inspecionar e reparar
Assinaturas comuns
Assinaturas comuns
.clobbered.*existe → o Doctor preservou uma edição externa corrompida ao reparar a configuração ativa..rejected.*existe → uma gravação de configuração controlada pelo OpenClaw falhou nas verificações de esquema ou sobrescrita antes da confirmação.Config write rejected:→ a gravação tentou remover a estrutura obrigatória, reduzir o arquivo drasticamente ou persistir uma configuração inválida.config reload skipped (invalid config):→ uma edição direta falhou na validação e foi ignorada pelo Gateway em execução.Invalid config at ...→ a inicialização falhou antes que os serviços do Gateway fossem iniciados.missing-meta-vs-last-good,gateway-mode-missing-vs-last-goodousize-drop-vs-last-good:*→ uma gravação controlada pelo OpenClaw foi rejeitada porque perdeu campos ou tamanho em comparação com o último backup válido conhecido.Config last-known-good promotion skipped→ o candidato continha espaços reservados anonimizados de segredos, como***.
Opções de correção
Opções de correção
- Execute
openclaw doctor --fixpara permitir que o Doctor repare uma configuração com prefixo/sobrescrita ou restaure a última configuração válida conhecida. - Copie somente as chaves desejadas de
.clobbered.*ou.rejected.*e aplique-as comopenclaw config setouconfig.patch. - Execute
openclaw config validateantes de reiniciar. - Se editar manualmente, mantenha a configuração JSON5 completa, não apenas o objeto parcial que pretendia alterar.
Avisos da sondagem do Gateway
Use quandoopenclaw gateway probe alcançar algum destino, mas ainda exibir um bloco de avisos.
warnings[].codeeprimaryTargetIdna saída JSON.- Se o aviso é sobre fallback de SSH, vários gateways, escopos ausentes ou referências de autenticação não resolvidas.
SSH tunnel failed to start; falling back to direct probes.→ a configuração do SSH falhou, mas o comando ainda tentou sondagens diretas nos destinos configurados/de loopback.multiple reachable gateway identities detected→ gateways distintos responderam, ou o OpenClaw não conseguiu comprovar que os destinos alcançáveis são o mesmo gateway. Um túnel SSH, uma URL de proxy ou uma URL remota configurada para o mesmo gateway é tratado como um único gateway com vários transportes, mesmo quando as portas de transporte são diferentes.Read-probe diagnostics are limited by gateway scopes (missing operator.read)→ a conexão funcionou, mas a RPC de detalhes está limitada pelo escopo; emparelhe a identidade do dispositivo ou use credenciais comoperator.read.Gateway accepted the WebSocket connection, but follow-up read diagnostics failed→ a conexão funcionou, mas o conjunto completo de RPCs de diagnóstico atingiu o tempo limite ou falhou. Trate isso como um Gateway alcançável com diagnósticos degradados; compareconnect.okeconnect.rpcOkna saída de--json.Capability: pairing-pendingougateway closed (1008): pairing required→ o gateway respondeu, mas este cliente ainda precisa de emparelhamento/aprovação antes do acesso normal de operador.- Texto de aviso de SecretRef não resolvida em
gateway.auth.*/gateway.remote.*→ o material de autenticação não estava disponível neste caminho de comando para o destino que falhou.
Canal conectado, mas as mensagens não fluem
Se o estado do canal estiver conectado, mas o fluxo de mensagens estiver inativo, concentre-se em políticas, permissões e regras de entrega específicas do canal.- Política de mensagens diretas (
pairing,allowlist,open,disabled). - Lista de permissões do grupo e requisitos de menção.
- Permissões/escopos ausentes da API do canal.
mention required→ mensagem ignorada pela política de menções do grupo.pairing/ rastros de aprovação pendente → o remetente não está aprovado.missing_scope,not_in_channel,Forbidden,401/403→ problema de autenticação/permissões do canal.
Entrega de Cron e Heartbeat
Se o Cron ou o Heartbeat não tiver sido executado ou não tiver feito a entrega, verifique primeiro o estado do agendador e depois o destino de entrega.- Cron habilitado e próximo despertar presente.
- Status do histórico de execução da tarefa (
ok,skipped,error). - Motivos para ignorar o Heartbeat (
quiet-hours,requests-in-flight,cron-in-progress,lanes-busy,alerts-disabled,empty-heartbeat-file,no-tasks-due).
Assinaturas comuns
Assinaturas comuns
cron: scheduler disabled; jobs will not run automatically→ Cron desabilitado.cron: timer tick failed→ o ciclo do agendador falhou; verifique erros de arquivo/log/runtime.heartbeat skippedcomreason=quiet-hours→ fora da janela de horários ativos.heartbeat skippedcomreason=empty-heartbeat-file→HEARTBEAT.mdexiste, mas contém apenas uma estrutura vazia composta por espaços em branco, comentários, cabeçalhos, cercas ou listas de verificação vazias; portanto, o OpenClaw ignora a chamada ao modelo.heartbeat skippedcomreason=no-tasks-due→HEARTBEAT.mdcontém um blocotasks:, mas nenhuma das tarefas deve ser executada neste ciclo.heartbeat: unknown accountId→ ID de conta inválido para o destino de entrega do Heartbeat.heartbeat skippedcomreason=dm-blocked→ o destino do Heartbeat foi resolvido como um destino do tipo mensagem direta enquantoagents.defaults.heartbeat.directPolicy(ou a substituição por agente) está definido comoblock.
Node emparelhado, ferramenta falha
Se um Node estiver emparelhado, mas as ferramentas falharem, isole o estado de primeiro plano, permissões e aprovação.- Node online com os recursos esperados.
- Concessões de permissão do sistema operacional para câmera/microfone/localização/tela.
- Estado das aprovações de execução e da lista de permissões.
NODE_BACKGROUND_UNAVAILABLE→ o aplicativo do Node deve estar em primeiro plano.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ permissão do sistema operacional ausente.SYSTEM_RUN_DENIED: approval required→ aprovação de execução pendente.SYSTEM_RUN_DENIED: allowlist miss→ comando bloqueado pela lista de permissões.
A ferramenta de navegador falha
Use quando as ações da ferramenta de navegador falharem, mesmo que o próprio gateway esteja íntegro.- Se
plugins.allowestá definido e incluibrowser. - Caminho válido para o executável do navegador.
- Acessibilidade do perfil CDP.
- Disponibilidade local do Chrome para perfis
existing-session/user.
Assinaturas do Plugin/executável
Assinaturas do Plugin/executável
unknown command "browser"ouunknown command 'browser'→ o plugin de navegador incluído foi excluído porplugins.allow.- Ferramenta de navegador ausente/indisponível enquanto
browser.enabled=true→plugins.allowexcluibrowser, portanto o plugin nunca foi carregado. Failed to start Chrome CDP on port→ o processo do navegador não conseguiu iniciar.browser.executablePath not found→ o caminho configurado é inválido.browser.cdpUrl must be http(s) or ws(s)→ a URL CDP configurada usa um esquema incompatível, comofile:ouftp:.browser.cdpUrl has invalid port→ a URL CDP configurada tem uma porta inválida ou fora do intervalo.Playwright is not available in this gateway build; '<feature>' is unsupported.→ a instalação atual do gateway não possui a dependência principal do runtime do navegador; reinstale ou atualize o OpenClaw e reinicie o gateway. Capturas ARIA e capturas básicas de página ainda podem funcionar, mas navegação, capturas de IA, capturas de elementos por seletor CSS e exportação para PDF permanecem indisponíveis.
Assinaturas do Chrome MCP/existing-session
Assinaturas do Chrome MCP/existing-session
Could not find DevToolsActivePort for chrome→ a sessão existente do Chrome MCP ainda não conseguiu se conectar ao diretório de dados do navegador selecionado. Abra a página de inspeção do navegador, habilite a depuração remota, mantenha o navegador aberto, aprove a primeira solicitação de conexão e tente novamente. Se o estado de login não for necessário, prefira o perfil gerenciadoopenclaw.No browser tabs found for profile="user"→ o perfil de conexão do Chrome MCP não tem nenhuma guia local do Chrome aberta.Remote CDP for profile "<name>" is not reachable→ o endpoint CDP remoto configurado não pode ser alcançado a partir do host do gateway.Browser attachOnly is enabled ... not reachableouBrowser attachOnly is enabled and CDP websocket ... is not reachable→ o perfil somente para conexão não tem um destino alcançável, ou o endpoint HTTP respondeu, mas ainda não foi possível abrir o WebSocket CDP.
Assinaturas de elemento/captura/upload
Assinaturas de elemento/captura/upload
fullPage is not supported for element screenshots→ a solicitação de captura combinou--full-pagecom--refou--element.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ as chamadas de captura do Chrome MCP /existing-sessiondevem usar a captura de página ou um--refde uma captura, não--elementCSS.existing-session file uploads do not support element selectors; use ref/inputRef.→ os hooks de upload do Chrome MCP precisam de referências de captura, não de seletores CSS.existing-session file uploads currently support one file at a time.→ envie um upload por chamada nos perfis do Chrome MCP.existing-session dialog handling does not support timeoutMs.→ os hooks de diálogo nos perfis do Chrome MCP não aceitam substituições de tempo limite.existing-session type does not support timeoutMs overrides.→ omitatimeoutMsparaact:typeem perfisprofile="user"/ de sessão existente do Chrome MCP, ou use um perfil de navegador gerenciado/CDP quando um tempo limite personalizado for necessário.response body is not supported for existing-session profiles yet.→responsebodyainda exige um perfil de navegador gerenciado ou CDP bruto.- Substituições obsoletas de viewport/modo escuro/localidade/modo offline em perfis somente para conexão ou CDP remoto → execute
openclaw browser stop --browser-profile <name>para fechar a sessão de controle ativa e liberar o estado de emulação do Playwright/CDP sem reiniciar todo o gateway.
Se você atualizou e algo parou de funcionar repentinamente
A maioria das falhas após uma atualização ocorre por divergência de configuração ou porque padrões mais rigorosos passaram a ser aplicados.1. O comportamento de autenticação e substituição de URL mudou
1. O comportamento de autenticação e substituição de URL mudou
- Se
gateway.mode=remote, as chamadas da CLI podem estar direcionadas ao remoto enquanto o serviço local está funcionando normalmente. - Chamadas explícitas com
--urlnão recorrem às credenciais armazenadas.
gateway connect failed:→ destino da URL incorreto.unauthorized→ endpoint alcançável, mas autenticação incorreta.
2. As proteções de vinculação e autenticação estão mais rigorosas
2. As proteções de vinculação e autenticação estão mais rigorosas
- Vinculações que não sejam de loopback (
lan,tailnet,custom) precisam de um caminho válido de autenticação do gateway: autenticação por token/senha compartilhados ou uma implantaçãotrusted-proxyfora do loopback configurada corretamente. - Chaves antigas como
gateway.tokennão substituemgateway.auth.token.
refusing to bind gateway ... without auth→ vinculação fora do loopback sem um caminho válido de autenticação do gateway.Connectivity probe: failedenquanto o runtime está em execução → gateway ativo, mas inacessível com a autenticação/URL atual.
3. O estado de emparelhamento e identidade do dispositivo mudou
3. O estado de emparelhamento e identidade do dispositivo mudou
- Aprovações de dispositivos pendentes para o painel/Nodes.
- Aprovações pendentes de emparelhamento de mensagens diretas após alterações de política ou identidade.
device identity required→ a autenticação do dispositivo não foi atendida.pairing required→ o remetente/dispositivo deve ser aprovado.