Dépannage de l’automatisation¶
Utilisez cette page pour les problèmes de planification et de livraison (cron + heartbeat).
Échelle de commandes¶
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
openclaw channels status --probe
Ensuite, exécutez les vérifications d’automatisation :
openclaw cron status
openclaw cron list
openclaw system heartbeat last
Cron ne se déclenche pas¶
openclaw cron status
openclaw cron list
openclaw cron runs --id <jobId> --limit 20
openclaw logs --follow
Une sortie correcte ressemble à :
cron statusindique activé et un futurnextWakeAtMs.- La tâche est activée et possède une planification/un fuseau horaire valides.
cron runsafficheokou une raison explicite de saut.
Signatures courantes :
cron: scheduler disabled; jobs will not run automatically→ cron désactivé dans la configuration/les variables d’environnement.cron: timer tick failed→ le tick du planificateur a planté ; inspectez le contexte de pile/logs environnant.reason: not-duedans la sortie d’exécution → exécution manuelle appelée sans--forceet la tâche n’est pas encore due.
Cron déclenché mais aucune livraison¶
openclaw cron runs --id <jobId> --limit 20
openclaw cron list
openclaw channels status --probe
openclaw logs --follow
Une sortie correcte ressemble à :
- Le statut d’exécution est
ok. - Le mode/la cible de livraison sont définis pour les tâches isolées.
- La sonde de canal indique que le canal cible est connecté.
Signatures courantes :
- L’exécution a réussi mais le mode de livraison est
none→ aucun message externe n’est attendu. - Cible de livraison manquante/invalide (
channel/to) → l’exécution peut réussir en interne mais ignorer la sortie. - Erreurs d’authentification du canal (
unauthorized,missing_scope,Forbidden) → livraison bloquée par les identifiants/permissions du canal.
Heartbeat supprimé ou ignoré¶
openclaw system heartbeat last
openclaw logs --follow
openclaw config get agents.defaults.heartbeat
openclaw channels status --probe
Une sortie correcte ressemble à :
- Heartbeat activé avec un intervalle non nul.
- Le dernier résultat de heartbeat est
ran(ou la raison du saut est comprise).
Signatures courantes :
heartbeat skippedavecreason=quiet-hours→ en dehors deactiveHours.requests-in-flight→ la voie principale est occupée ; heartbeat différé.empty-heartbeat-file→HEARTBEAT.mdexiste mais n’a aucun contenu exploitable.alerts-disabled→ les paramètres de visibilité suppriment les messages de heartbeat sortants.
Pièges liés au fuseau horaire et à 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
Rè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.timezones’il est défini).- Un cron sans
--tzutilise le fuseau horaire de l’hôte de la Gateway (passerelle). - Le heartbeat
activeHoursutilise la résolution de fuseau horaire configurée (user,localou un fuseau IANA explicite). - Les horodatages ISO sans fuseau horaire sont traités comme UTC pour les planifications cron
at.
Signatures courantes :
- Les tâches s’exécutent à une heure civile incorrecte après des changements de fuseau horaire de l’hôte.
- Le heartbeat est toujours ignoré pendant votre journée parce que
activeHours.timezoneest incorrect.
Liens connexes :