Solución de problemas de automatización
Solución de problemas de automatización
Sección titulada «Solución de problemas de automatización»Use esta página para problemas del programador y de entrega (cron + heartbeat).
Escalera de comandos
Sección titulada «Escalera de comandos»openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctoropenclaw channels status --probeLuego ejecute comprobaciones de automatización:
openclaw cron statusopenclaw cron listopenclaw system heartbeat lastCron no se ejecuta
Sección titulada «Cron no se ejecuta»openclaw cron statusopenclaw cron listopenclaw cron runs --id <jobId> --limit 20openclaw logs --followUna buena salida se ve así:
cron statusinforma habilitado y unnextWakeAtMsfuturo.- El trabajo está habilitado y tiene una zona horaria/programación válida.
cron runsmuestraoko un motivo explícito de omisión.
Firmas comunes:
cron: scheduler disabled; jobs will not run automatically→ cron deshabilitado en config/env.cron: timer tick failed→ el tick del programador falló; inspeccione el contexto de pila/log circundante.reason: not-dueen la salida de ejecución → se llamó a la ejecución manual sin--forcey el trabajo aún no vence.
Cron se ejecutó pero no hay entrega
Sección titulada «Cron se ejecutó pero no hay entrega»openclaw cron runs --id <jobId> --limit 20openclaw cron listopenclaw channels status --probeopenclaw logs --followUna buena salida se ve así:
- El estado de ejecución es
ok. - El modo/objetivo de entrega están configurados para trabajos aislados.
- El sondeo del canal informa que el canal objetivo está conectado.
Firmas comunes:
- La ejecución se realizó correctamente pero el modo de entrega es
none→ no se espera ningún mensaje externo. - Objetivo de entrega faltante/no válido (
channel/to) → la ejecución puede tener éxito internamente pero omitir el envío saliente. - Errores de autenticación del canal (
unauthorized,missing_scope,Forbidden) → entrega bloqueada por credenciales/permisos del canal.
Latido (heartbeat) suprimido u omitido
Sección titulada «Latido (heartbeat) suprimido u omitido»openclaw system heartbeat lastopenclaw logs --followopenclaw config get agents.defaults.heartbeatopenclaw channels status --probeUna buena salida se ve así:
- Latido habilitado con intervalo distinto de cero.
- El resultado del último latido es
ran(o se entiende el motivo de la omisión).
Firmas comunes:
heartbeat skippedconreason=quiet-hours→ fuera deactiveHours.requests-in-flight→ carril principal ocupado; latido diferido.empty-heartbeat-file→ latido de intervalo omitido porqueHEARTBEAT.mdno tiene contenido procesable y no hay ningún evento cron etiquetado en cola.alerts-disabled→ la configuración de visibilidad suprime los mensajes de latido salientes.
Problemas de zona horaria y activeHours
Sección titulada «Problemas de zona horaria y activeHours»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:
Config path not found: agents.defaults.userTimezonesignifica que la clave no está establecida; el latido vuelve a la zona horaria del host (o aactiveHours.timezonesi está establecida).- Cron sin
--tzutiliza la zona horaria del host de la puerta de enlace. - El latido
activeHoursutiliza la resolución de zona horaria configurada (user,localo zona horaria IANA explícita). - Las programaciones de Cron
attratan las marcas de tiempo ISO sin zona horaria como UTC a menos que haya utilizado la CLI--at "<offset-less-iso>" --tz <iana>.
Firmas comunes:
- Los trabajos se ejecutan a la hora incorrecta del reloj después de los cambios de zona horaria del host.
- Heartbeat siempre se omite durante su horario diurno porque
activeHours.timezonees incorrecto.
Relacionado: