Fehlerbehebung bei Automatisierung
Nutze diese Seite bei Problemen mit Scheduler und Zustellung (cron + heartbeat).
Befehls-Leiter
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
openclaw channels status --probe
Dann Automatisierungs-Checks ausführen:
openclaw cron status
openclaw cron list
openclaw system heartbeat last
Cron feuert nicht
openclaw cron status
openclaw cron list
openclaw cron runs --id <jobId> --limit 20
openclaw logs --follow
Gute Ausgabe sieht so aus:
cron statusmeldet aktiviert und einen zukünftigennextWakeAtMs.- Job ist aktiviert und hat einen gültigen Zeitplan/Zeitzone.
cron runszeigtokoder einen expliziten Skip-Grund.
Typische Muster:
cron: scheduler disabled; jobs will not run automatically→ Cron in Konfiguration/Umgebung deaktiviert.cron: timer tick failed→ Scheduler-Tick abgestürzt; umgebenden Stack/Log-Kontext prüfen.reason: not-duein der Run-Ausgabe → Manueller Run ohne--forceaufgerufen und Job noch nicht fällig.
Cron hat gefeuert, aber keine Zustellung
openclaw cron runs --id <jobId> --limit 20
openclaw cron list
openclaw channels status --probe
openclaw logs --follow
Gute Ausgabe sieht so aus:
- Run-Status ist
ok. - Zustellmodus/-ziel sind für isolierte Jobs gesetzt.
- Channel-Probe meldet, dass der Ziel-Channel verbunden ist.
Typische Muster:
- Run erfolgreich, aber Zustellmodus ist
none→ Keine externe Nachricht erwartet. - Zustellziel fehlt/ungültig (
channel/to) → Run kann intern erfolgreich sein, überspringt aber die Ausgabe. - Channel-Auth-Fehler (
unauthorized,missing_scope,Forbidden) → Zustellung durch Channel-Credentials/Berechtigungen blockiert.
Heartbeat unterdrückt oder übersprungen
openclaw system heartbeat last
openclaw logs --follow
openclaw config get agents.defaults.heartbeat
openclaw channels status --probe
Gute Ausgabe sieht so aus:
- Heartbeat aktiviert mit einem Intervall ungleich null.
- Letztes Heartbeat-Ergebnis ist
ran(oder der Skip-Grund ist nachvollziehbar).
Typische Muster:
heartbeat skippedmitreason=quiet-hours→ Außerhalb deractiveHours.requests-in-flight→ Main-Lane beschäftigt; Heartbeat verzögert.empty-heartbeat-file→ Intervall-Heartbeat übersprungen, weilHEARTBEAT.mdkeinen verwertbaren Inhalt hat und kein getaggtes Cron-Event in der Queue steht.alerts-disabled→ Sichtbarkeitseinstellungen unterdrücken ausgehende Heartbeat-Nachrichten.
Zeitzonen- und activeHours-Fallstricke
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
Schnelle Regeln:
Config path not found: agents.defaults.userTimezoneheißt, der Key ist nicht gesetzt; Heartbeat fällt auf die Host-Zeitzone zurück (oderactiveHours.timezonefalls gesetzt).- Cron ohne
--tznutzt die Gateway-Host-Zeitzone. - Heartbeat
activeHoursnutzt die konfigurierte Zeitzonen-Auflösung (user,localoder explizite IANA-TZ). - ISO-Zeitstempel ohne Zeitzone werden für Cron-
at-Zeitpläne als UTC behandelt.
Typische Muster:
- Jobs laufen zur falschen Uhrzeit nach Zeitzonen-Änderung des Hosts.
- Heartbeat wird tagsüber immer übersprungen, weil
activeHours.timezonefalsch ist.
Verwandt: