Soluciona errores de OpenClaw: Guía de diagnóstico rápido
¿Hay algo más frustrante que configurar una automatización y que simplemente no pase nada? Todos hemos pasado por ese momento de revisar logs buscando por qué un proceso no arrancó cuando debía. Si estás lidiando con problemas en el scheduler o en la entrega (cron + heartbeat), esta guía te ayudará a encontrar el fallo rápido.
Usa esta página para resolver problemas de ejecución y envío en tus automatizaciones.
Escalera de comandos
Sección titulada «Escalera de comandos»Primero, verifica el estado general de tu instancia para descartar problemas de conexión o del Gateway:
openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctoropenclaw channels status --probeLuego, ejecuta las comprobaciones específicas de automatización:
openclaw cron statusopenclaw cron listopenclaw system heartbeat lastEl Cron no se ejecuta
Sección titulada «El Cron no se ejecuta»Si tus tareas programadas no arrancan, empieza por aquí:
openclaw cron statusopenclaw cron listopenclaw cron runs --id <jobId> --limit 20openclaw logs --followUn buen output se ve así:
cron statusreporta que está habilitado y muestra unnextWakeAtMsfuturo.- El job está habilitado y tiene un schedule o timezone válido.
cron runsmuestraoko una razón explícita de por qué se saltó.
Firmas comunes de errores:
cron: scheduler disabled; jobs will not run automatically→ El cron está deshabilitado en tu configuración o variables de entorno.cron: timer tick failed→ El tick del scheduler falló; revisa el contexto del stack y los logs cercanos.reason: not-dueen el output de ejecución → Se llamó a una ejecución manual sin usar--forcey al job aún no le toca ejecutarse.
El Cron se ejecutó pero no hubo entrega
Sección titulada «El Cron se ejecutó pero no hubo entrega»A veces el proceso arranca, pero el mensaje nunca llega a su destino. Revisa estos puntos:
openclaw cron runs --id <jobId> --limit 20openclaw cron listopenclaw channels status --probeopenclaw logs --followUn buen output se ve así:
- El estado de la ejecución (
run status) esok. - El modo de entrega y el target están configurados correctamente para jobs aislados.
- El probe del canal reporta que el canal de destino está conectado.
Firmas comunes de errores:
- La ejecución fue exitosa pero el modo de entrega es
none→ No se espera ningún mensaje externo. - Falta el target de entrega o es inválido (
channel/to) → La ejecución puede ser exitosa internamente pero se salta el envío al exterior. - Errores de autenticación en el canal (
unauthorized,missing_scope,Forbidden) → La entrega está bloqueada por credenciales o permisos del canal.
Heartbeat suprimido o saltado
Sección titulada «Heartbeat suprimido o saltado»Si el heartbeat no está enviando señales de vida, verifica la configuración de actividad:
openclaw system heartbeat lastopenclaw logs --followopenclaw config get agents.defaults.heartbeatopenclaw channels status --probeUn buen output se ve así:
- Heartbeat habilitado con un intervalo que no sea cero.
- El último resultado del heartbeat es
ran(o la razón de por qué se saltó es clara).
Firmas comunes de errores:
heartbeat skippedconreason=quiet-hours→ Estás fuera del horario definido enactiveHours.requests-in-flight→ El carril principal está ocupado y el heartbeat se ha pospuesto.empty-heartbeat-file→ El archivoHEARTBEAT.mdexiste pero no tiene contenido que procesar.alerts-disabled→ La configuración de visibilidad está suprimiendo los mensajes de heartbeat salientes.
Problemas comunes con Timezone y activeHours
Sección titulada «Problemas comunes con Timezone y activeHours»Las zonas horarias suelen ser la causa principal de que algo se ejecute a la hora que no es. Revisa tu configuración:
openclaw config get agents.defaults.heartbeat.activeHoursopenclaw config get agents.defaults.heartbeat.activeHours.timezoneopenclaw config get agents.defaults.userTimezone || echo "agents.defaults.userTimezone not set"openclaw cron listopenclaw logs --followReglas rápidas que debes recordar:
- Si ves
Config path not found: agents.defaults.userTimezone, la clave no está definida; el heartbeat usará la zona horaria del host (oactiveHours.timezonesi la configuraste). - Los cron jobs que no incluyen
--tzusan la zona horaria del host donde corre el Gateway. - El
activeHoursdel heartbeat usa la resolución de zona horaria configurada (ya seauser,localo una zona IANA explícita). - Los timestamps ISO que no incluyen zona horaria se tratan siempre como UTC para los schedules
atde cron.
Firmas comunes de errores:
- Los jobs se ejecutan a una hora de reloj incorrecta después de cambiar la zona horaria del host.
- El heartbeat siempre se salta durante tu horario laboral porque
activeHours.timezonees incorrecta.
Siguientes pasos
Sección titulada «Siguientes pasos»OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.