Solución de problemas del Gateway
Esta página es el runbook profundo. Empieza en /help/troubleshooting si primero quieres el flujo rápido de triaje.Secuencia de comandos
Ejecuta estos primero, en este orden:openclaw gateway statusmuestraRuntime: runningyRPC probe: ok.openclaw doctorno informa problemas bloqueantes de configuración/servicio.openclaw channels status --probemuestra el estado de transporte en vivo por cuenta y, donde sea compatible, resultados de sondeo/auditoría comoworksoaudit ok.
Anthropic 429 requiere uso extra para contexto largo
Usa esto cuando los registros/errores incluyan:HTTP 429: rate_limit_error: Extra usage is required for long context requests.
- El modelo Anthropic Opus/Sonnet seleccionado tiene
params.context1m: true. - La credencial actual de Anthropic no es apta para uso de contexto largo.
- Las solicitudes fallan solo en sesiones largas/ejecuciones de modelo que necesitan la ruta beta de 1M.
- Desactiva
context1mpara ese modelo y volver a la ventana de contexto normal. - Usa una clave API de Anthropic con facturación, o habilita Anthropic Extra Usage en la cuenta Anthropic OAuth/suscripción.
- Configura modelos de respaldo para que las ejecuciones continúen cuando se rechacen las solicitudes de contexto largo de Anthropic.
- /providers/anthropic
- /reference/token-use
- /help/faq#why-am-i-seeing-http-429-ratelimiterror-from-anthropic
Sin respuestas
Si los canales están activos pero nada responde, comprueba el enrutamiento y la política antes de volver a conectar nada.- Emparejamiento pendiente para remitentes de mensajes directos.
- Restricción por mención de grupo (
requireMention,mentionPatterns). - Desajustes en la lista de permitidos de canal/grupo.
drop guild message (mention required→ mensaje de grupo ignorado hasta que haya mención.pairing request→ el remitente necesita aprobación.blocked/allowlist→ el remitente/canal fue filtrado por la política.
Conectividad de la UI de control del panel
Cuando el panel/la UI de control no se conecta, valida la URL, el modo de autenticación y los supuestos de contexto seguro.- URL de sondeo y URL del panel correctas.
- Desajuste de modo de autenticación/token entre cliente y gateway.
- Uso de HTTP donde se requiere identidad del dispositivo.
device identity required→ contexto no seguro o falta autenticación del dispositivo.origin not allowed→ elOrigindel navegador no está engateway.controlUi.allowedOrigins(o te estás conectando desde un origen de navegador no loopback sin una lista de permitidos explícita).device nonce required/device nonce mismatch→ el cliente no está completando el flujo de autenticación del dispositivo basado en desafío (connect.challenge+device.nonce).device signature invalid/device signature expired→ el cliente firmó la carga útil incorrecta (o una marca de tiempo obsoleta) para el handshake actual.AUTH_TOKEN_MISMATCHconcanRetryWithDeviceToken=true→ el cliente puede hacer un reintento de confianza con el token de dispositivo en caché.- Ese reintento con token en caché reutiliza el conjunto de ámbitos en caché almacenado con el
token de dispositivo emparejado. Los llamadores con
deviceTokenexplícito /scopesexplícitos conservan su conjunto de ámbitos solicitado. - Fuera de esa ruta de reintento, la precedencia de autenticación de conexión es
primero token/contraseña compartidos explícitos, luego
deviceTokenexplícito, luego token de dispositivo almacenado, y después token de bootstrap. - En la ruta asíncrona de la UI de control de Tailscale Serve, los intentos fallidos para el mismo
{scope, ip}se serializan antes de que el limitador registre el fallo. Por tanto, dos reintentos concurrentes incorrectos del mismo cliente pueden mostrarretry lateren el segundo intento en lugar de dos simples desajustes. too many failed authentication attempts (retry later)desde un cliente loopback de origen de navegador → los fallos repetidos desde ese mismoOriginnormalizado quedan bloqueados temporalmente; otro origen localhost usa un bucket independiente.unauthorizedrepetido después de ese reintento → deriva del token compartido/token de dispositivo; actualiza la configuración del token y vuelve a aprobar/rotar el token de dispositivo si es necesario.gateway connect failed:→ objetivo de host/puerto/url incorrecto.
Mapa rápido de códigos de detalle de autenticación
Usaerror.details.code de la respuesta fallida de connect para elegir la siguiente acción:
| Código de detalle | Significado | Acción recomendada |
|---|---|---|
AUTH_TOKEN_MISSING | El cliente no envió un token compartido requerido. | Pega/establece el token en el cliente y vuelve a intentarlo. Para rutas del panel: openclaw config get gateway.auth.token y luego pégalo en la configuración de la UI de control. |
AUTH_TOKEN_MISMATCH | El token compartido no coincide con el token de autenticación del gateway. | Si canRetryWithDeviceToken=true, permite un reintento de confianza. Los reintentos con token en caché reutilizan ámbitos aprobados almacenados; los llamadores con deviceToken / scopes explícitos conservan los ámbitos solicitados. Si sigue fallando, ejecuta la lista de recuperación de deriva de token. |
AUTH_DEVICE_TOKEN_MISMATCH | El token por dispositivo en caché está obsoleto o revocado. | Rota/vuelve a aprobar el token de dispositivo usando la CLI de devices, luego vuelve a conectar. |
PAIRING_REQUIRED | La identidad del dispositivo es conocida pero no está aprobada para este rol. | Aprueba la solicitud pendiente: openclaw devices list y luego openclaw devices approve <requestId>. |
- espera
connect.challenge - firma la carga útil vinculada al desafío
- envía
connect.params.device.noncecon el mismo nonce del desafío
openclaw devices rotate / revoke / remove se deniega inesperadamente:
- las sesiones con token de dispositivo emparejado solo pueden gestionar su propio
dispositivo salvo que el llamador también tenga
operator.admin openclaw devices rotate --scope ...solo puede solicitar ámbitos de operador que la sesión llamadora ya posea
- /web/control-ui
- /gateway/configuration (modos de autenticación del gateway)
- /gateway/trusted-proxy-auth
- /gateway/remote
- /cli/devices
El servicio Gateway no se está ejecutando
Usa esto cuando el servicio está instalado pero el proceso no se mantiene activo.Runtime: stoppedcon pistas de salida.- Desajuste de configuración del servicio (
Config (cli)frente aConfig (service)). - Conflictos de puerto/listener.
- Instalaciones adicionales de launchd/systemd/schtasks cuando se usa
--deep. - Pistas de limpieza de
Other gateway-like services detected (best effort).
Gateway start blocked: set gateway.mode=localoexisting config is missing gateway.mode→ el modo gateway local no está habilitado, o el archivo de configuración fue sobrescrito y perdiógateway.mode. Corrección: establecegateway.mode="local"en tu configuración, o vuelve a ejecutaropenclaw onboard --mode local/openclaw setuppara volver a estampar la configuración esperada en modo local. Si ejecutas OpenClaw mediante Podman, la ruta predeterminada de configuración es~/.openclaw/openclaw.json.refusing to bind gateway ... without auth→ bind no loopback sin una ruta válida de autenticación del gateway (token/contraseña, o trusted-proxy donde esté configurado).another gateway instance is already listening/EADDRINUSE→ conflicto de puerto.Other gateway-like services detected (best effort)→ existen unidades launchd/systemd/schtasks obsoletas o paralelas. La mayoría de configuraciones deben mantener un gateway por máquina; si necesitas más de uno, aísla puertos + config/estado/espacio de trabajo. Consulta /gateway#multiple-gateways-same-host.
Advertencias del sondeo del Gateway
Usa esto cuandoopenclaw gateway probe alcanza algo, pero aun así muestra un bloque de advertencia.
warnings[].codeyprimaryTargetIden la salida JSON.- Si la advertencia trata sobre respaldo SSH, varios gateways, ámbitos faltantes o referencias de autenticación no resueltas.
SSH tunnel failed to start; falling back to direct probes.→ la configuración SSH falló, pero el comando aun así probó objetivos directos configurados/loopback.multiple reachable gateways detected→ respondió más de un objetivo. Normalmente esto significa una configuración intencional con varios gateway o listeners obsoletos/duplicados.Probe diagnostics are limited by gateway scopes (missing operator.read)→ la conexión funcionó, pero el RPC de detalle está limitado por ámbito; empareja identidad del dispositivo o usa credenciales conoperator.read.- texto de advertencia por SecretRef no resuelto de
gateway.auth.*/gateway.remote.*→ el material de autenticación no estaba disponible en esta ruta de comando para el objetivo fallido.
Canal conectado pero los mensajes no fluyen
Si el estado del canal es conectado pero el flujo de mensajes está muerto, céntrate en la política, los permisos y las reglas de entrega específicas del canal.- Política de mensajes directos (
pairing,allowlist,open,disabled). - Lista de permitidos de grupo y requisitos de mención.
- Permisos/ámbitos API del canal faltantes.
mention required→ mensaje ignorado por la política de mención en grupo.- trazas
pairing/ aprobación pendiente → el remitente no está aprobado. missing_scope,not_in_channel,Forbidden,401/403→ problema de autenticación/permisos del canal.
Entrega de cron y heartbeat
Si cron o heartbeat no se ejecutó o no se entregó, verifica primero el estado del programador y luego el destino de entrega.- Cron habilitado y siguiente activación presente.
- Estado del historial de ejecución del trabajo (
ok,skipped,error). - Motivos de omisión de heartbeat (
quiet-hours,requests-in-flight,alerts-disabled,empty-heartbeat-file,no-tasks-due).
cron: scheduler disabled; jobs will not run automatically→ cron deshabilitado.cron: timer tick failed→ falló el tick del programador; comprueba errores de archivo/registro/runtime.heartbeat skippedconreason=quiet-hours→ fuera de la ventana de horas activas.heartbeat skippedconreason=empty-heartbeat-file→HEARTBEAT.mdexiste pero solo contiene líneas en blanco / encabezados Markdown, así que OpenClaw omite la llamada al modelo.heartbeat skippedconreason=no-tasks-due→HEARTBEAT.mdcontiene un bloquetasks:, pero ninguna de las tareas vence en este tick.heartbeat: unknown accountId→ id de cuenta no válido para el destino de entrega de heartbeat.heartbeat skippedconreason=dm-blocked→ el destino de heartbeat se resolvió a un destino tipo DM mientrasagents.defaults.heartbeat.directPolicy(o la anulación por agente) está establecido enblock.
Falla la herramienta de nodo emparejado
Si un nodo está emparejado pero las herramientas fallan, aísla el estado de primer plano, permisos y aprobaciones.- Nodo en línea con las capacidades esperadas.
- Permisos del sistema operativo para cámara/micrófono/ubicación/pantalla.
- Estado de aprobaciones de exec y lista de permitidos.
NODE_BACKGROUND_UNAVAILABLE→ la app del nodo debe estar en primer plano.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ falta permiso del sistema operativo.SYSTEM_RUN_DENIED: approval required→ aprobación de exec pendiente.SYSTEM_RUN_DENIED: allowlist miss→ comando bloqueado por la lista de permitidos.
Falla la herramienta de navegador
Usa esto cuando las acciones de la herramienta de navegador fallan aunque el propio gateway esté saludable.- Si
plugins.allowestá establecido e incluyebrowser. - Ruta válida al ejecutable del navegador.
- Alcanzabilidad del perfil CDP.
- Disponibilidad local de Chrome para perfiles
existing-session/user.
unknown command "browser"ounknown command 'browser'→ el plugin incluido del navegador está excluido porplugins.allow.- herramienta de navegador faltante / no disponible mientras
browser.enabled=true→plugins.allowexcluyebrowser, así que el plugin nunca se cargó. Failed to start Chrome CDP on port→ el proceso del navegador no pudo iniciarse.browser.executablePath not found→ la ruta configurada no es válida.browser.cdpUrl must be http(s) or ws(s)→ la URL CDP configurada usa un esquema no compatible comofile:oftp:.browser.cdpUrl has invalid port→ la URL CDP configurada tiene un puerto incorrecto o fuera de rango.No Chrome tabs found for profile="user"→ el perfil de adjuntar Chrome MCP no tiene pestañas locales abiertas de Chrome.Remote CDP for profile "<name>" is not reachable→ el endpoint CDP remoto configurado no es accesible desde el host del gateway.Browser attachOnly is enabled ... not reachableoBrowser attachOnly is enabled and CDP websocket ... is not reachable→ el perfil attach-only no tiene un objetivo accesible, o el endpoint HTTP respondió pero aun así no pudo abrirse el WebSocket CDP.Playwright is not available in this gateway build; '<feature>' is unsupported.→ la instalación actual del gateway no incluye el paquete completo de Playwright; las instantáneas ARIA y capturas básicas de página aún pueden funcionar, pero la navegación, instantáneas de IA, capturas de elementos por selector CSS y exportación PDF seguirán sin estar disponibles.fullPage is not supported for element screenshots→ la solicitud de captura mezcló--full-pagecon--refo--element.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ las llamadas de captura en Chrome MCP /existing-sessiondeben usar captura de página o un--refde instantánea, no--elementCSS.existing-session file uploads do not support element selectors; use ref/inputRef.→ los hooks de subida de archivos de Chrome MCP requieren referencias de instantánea, no selectores CSS.existing-session file uploads currently support one file at a time.→ envía una sola subida por llamada en perfiles Chrome MCP.existing-session dialog handling does not support timeoutMs.→ los hooks de diálogo en perfiles Chrome MCP no admiten anulaciones de tiempo de espera.response body is not supported for existing-session profiles yet.→responsebodytodavía requiere un navegador gestionado o un perfil CDP sin procesar.- anulaciones obsoletas de viewport / modo oscuro / locale / offline en perfiles attach-only o CDP remoto → ejecuta
openclaw browser stop --browser-profile <name>para cerrar la sesión de control activa y liberar el estado de emulación Playwright/CDP sin reiniciar todo el gateway.
Si actualizaste y algo se rompió de repente
La mayoría de problemas posteriores a una actualización son deriva de configuración o valores predeterminados más estrictos que ahora se están aplicando.1) Cambió el comportamiento de autenticación y anulación de URL
- Si
gateway.mode=remote, las llamadas de la CLI pueden estar apuntando a remoto mientras tu servicio local está bien. - Las llamadas explícitas con
--urlno recurren a credenciales almacenadas.
gateway connect failed:→ objetivo URL incorrecto.unauthorized→ endpoint accesible pero autenticación incorrecta.
2) Los guardarraíles de bind y autenticación son más estrictos
- Los binds no loopback (
lan,tailnet,custom) necesitan una ruta válida de autenticación del gateway: autenticación compartida por token/contraseña, o una implementacióntrusted-proxyno loopback correctamente configurada. - Las claves antiguas como
gateway.tokenno sustituyengateway.auth.token.
refusing to bind gateway ... without auth→ bind no loopback sin una ruta válida de autenticación del gateway.RPC probe: failedmientras el runtime se está ejecutando → el gateway está activo pero es inaccesible con la autenticación/url actual.
3) Cambió el estado de emparejamiento e identidad del dispositivo
- Aprobaciones pendientes de dispositivos para panel/nodos.
- Aprobaciones pendientes de emparejamiento de mensajes directos tras cambios de política o identidad.
device identity required→ no se cumple la autenticación del dispositivo.pairing required→ debe aprobarse el remitente/dispositivo.