Solución de problemas de automatización
Usa esta página para problemas del programador y la entrega (cron + heartbeat).
Escalera de comandos
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
openclaw channels status --probe
Luego ejecuta las verificaciones de automatización:
openclaw cron status
openclaw cron list
openclaw system heartbeat last
Cron no se dispara
openclaw cron status
openclaw cron list
openclaw cron runs --id <jobId> --limit 20
openclaw logs --follow
Una buena salida se ve así:
cron statusreporta habilitado y unnextWakeAtMsfuturo.- La tarea está habilitada y tiene un horario/zona horaria válidos.
cron runsmuestraoko una razón de omisión explícita.
Firmas comunes:
cron: scheduler disabled; jobs will not run automatically→ cron deshabilitado en config/env.cron: timer tick failed→ el tick del programador falló; inspecciona la pila/contexto del log.reason: not-dueen la salida de ejecución → ejecución manual llamada sin--forcey la tarea aún no es debida.
Cron se disparó pero no hubo entrega
openclaw cron runs --id <jobId> --limit 20
openclaw cron list
openclaw channels status --probe
openclaw logs --follow
Una buena salida se ve así:
- El estado de la ejecución es
ok. - El modo/destino de entrega están configurados para tareas aisladas.
- La sonda del canal reporta el canal destino conectado.
Firmas comunes:
- La ejecución tuvo éxito pero el modo de entrega es
none→ no se espera mensaje externo. - Destino de entrega faltante/inválido (
channel/to) → la ejecución puede tener éxito internamente pero omite la salida. - Errores de auth del canal (
unauthorized,missing_scope,Forbidden) → la entrega está bloqueada por credenciales/permisos del canal.
Heartbeat suprimido u omitido
openclaw system heartbeat last
openclaw logs --follow
openclaw config get agents.defaults.heartbeat
openclaw channels status --probe
Una buena salida se ve así:
- Heartbeat habilitado con intervalo no nulo.
- El último resultado del heartbeat es
ran(o la razón de omisión se entiende).
Firmas comunes:
heartbeat skippedconreason=quiet-hours→ fuera deactiveHours.requests-in-flight→ la vía principal está ocupada; heartbeat diferido.empty-heartbeat-file→ heartbeat por intervalo omitido porqueHEARTBEAT.mdno tiene contenido procesable y no hay evento cron etiquetado en cola.alerts-disabled→ la configuración de visibilidad suprime mensajes de heartbeat salientes.
Problemas con zona horaria y activeHours
openclaw config get agents.defaults.heartbeat.activeHours
openclaw config get agents.defaults.heartbeat.activeHours.timezone
openclaw config get agents.defaults.userTimezone || echo "agents.defaults.userTimezone not set"
openclaw cron list
openclaw logs --follow
Reglas rápidas:
Config path not found: agents.defaults.userTimezonesignifica que la clave no está configurada; el heartbeat recurre a la zona horaria del host (oactiveHours.timezonesi está configurada).- Cron sin
--tzusa la zona horaria del host del gateway. activeHoursdel heartbeat usa la resolución de zona horaria configurada (user,localo una IANA tz explícita).- Las marcas de tiempo ISO sin zona horaria se tratan como UTC para los horarios
atde cron.
Firmas comunes:
- Las tareas se ejecutan a la hora de reloj incorrecta después de cambios de zona horaria del host.
- El heartbeat siempre se omite durante tu horario diurno porque
activeHours.timezonees incorrecto.
Relacionado: