Automation Troubleshooting
Automation troubleshooting
Section intitulée « Automation troubleshooting »Use this page for scheduler and delivery issues (cron + heartbeat).
Command ladder
Section intitulée « Command ladder »openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctoropenclaw channels status --probeThen run automation checks:
openclaw cron statusopenclaw cron listopenclaw system heartbeat lastCron not firing
Section intitulée « Cron not firing »openclaw cron statusopenclaw cron listopenclaw cron runs --id <jobId> --limit 20openclaw logs --followGood output looks like:
cron statusreports enabled and a futurenextWakeAtMs.- Job is enabled and has a valid schedule/timezone.
cron runsshowsokor explicit skip reason.
Common signatures:
cron: scheduler disabled; jobs will not run automatically→ cron disabled in config/env.cron: timer tick failed→ scheduler tick crashed; inspect surrounding stack/log context.reason: not-duein run output → manual run called without--forceand job not due yet.
Cron fired but no delivery
Section intitulée « Cron fired but no delivery »openclaw cron runs --id <jobId> --limit 20openclaw cron listopenclaw channels status --probeopenclaw logs --followGood output looks like:
- Run status is
ok. - Delivery mode/target are set for isolated jobs.
- Channel probe reports target channel connected.
Common signatures:
- Run succeeded but delivery mode is
none→ no external message is expected. - Delivery target missing/invalid (
channel/to) → run may succeed internally but skip outbound. - Channel auth errors (
unauthorized,missing_scope,Forbidden) → delivery blocked by channel credentials/permissions.
Heartbeat suppressed or skipped
Section intitulée « Heartbeat suppressed or skipped »openclaw system heartbeat lastopenclaw logs --followopenclaw config get agents.defaults.heartbeatopenclaw channels status --probeGood output looks like:
- Heartbeat enabled with non-zero interval.
- Last heartbeat result is
ran(or skip reason is understood).
Common signatures:
heartbeat skippedwithreason=quiet-hours→ outsideactiveHours.requests-in-flight→ main lane busy; heartbeat deferred.empty-heartbeat-file→ interval heartbeat ignoré carHEARTBEAT.mdn’a pas de contenu actionnable et aucun événement cron étiqueté n’est en file d’attente.alerts-disabled→ les paramètres de visibilité suppriment les messages heartbeat sortants.
Pièges liés au fuseau horaire et aux activeHours
Section intitulée « Pièges liés au fuseau horaire et aux 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 --followRègles rapides :
Config path not found: agents.defaults.userTimezonesignifie que la clé n’est pas définie ; le heartbeat revient au fuseau horaire de l’hôte (ouactiveHours.timezonesi défini).- Cron sans
--tzutilise le fuseau horaire de l’hôte de la passerelle. - Le heartbeat
activeHoursutilise la résolution de fuseau horaire configurée (user,localou tz IANA explicite). - Les planifications Cron
attraitent les horodatages ISO sans fuseau horaire comme UTC, sauf si vous avez utilisé le CLI--at "<offset-less-iso>" --tz <iana>.
Signatures courantes :
- Les tâches s’exécutent à la mauvaise heure horloge après un changement de fuseau horaire de l’hôte.
- Heartbeat est toujours ignoré pendant la journée car
activeHours.timezoneest incorrect.
Connexes :