After upgrading to OpenClaw 2026.6.1 (build 2e08f0f), per-run cron history is no longer persisted.
On the affected host:
~/.openclaw/cron/runs/history.db and ~/.openclaw/cron/runs/index.db exist but are 0 bytes (ctime = the upgrade date; never written since).
- All legacy
~/.openclaw/cron/runs/<uuid>.jsonl files were renamed to <uuid>.jsonl.migrated (100 present); there are 0 live .jsonl files.
openclaw cron runs --id <id> therefore returns no historical rows.
openclaw cron list --json job state (lastDurationMs, lastStatus, consecutiveErrors) is still updated, so scheduler state is intact — only the per-run history store is empty.
Expected: new cron runs append to history.db / index.db after migration.
Actual: the SQLite stores are created empty and never populated; run history is lost going forward.
Environment: OpenClaw 2026.6.1 (2e08f0f), Linux (Debian/Ubuntu), node v22.22.1, gateway under systemd (user unit), ~80 cron jobs.
Workaround in place: we mirror run outcomes into our own logging DB via a cron wrapper and read openclaw cron list --json state for health.
Possibly related (same release, lower priority — mentioned only in case it helps):
- Diagnostics "critical" heap threshold appears calibrated to a ~3GB heap while running an 8GB heap (
NODE_OPTIONS=--max-old-space-size=8192), producing ~280 false-"critical" diagnostics over 3 days with NRestarts=0.
- Per-job
failureAlert{} exposes only a per-job cooldownMs — there is no global cross-job storm-cap — so a single upstream provider outage floods the alert channel from many jobs at once.
After upgrading to OpenClaw 2026.6.1 (build
2e08f0f), per-run cron history is no longer persisted.On the affected host:
~/.openclaw/cron/runs/history.dband~/.openclaw/cron/runs/index.dbexist but are 0 bytes (ctime = the upgrade date; never written since).~/.openclaw/cron/runs/<uuid>.jsonlfiles were renamed to<uuid>.jsonl.migrated(100 present); there are 0 live.jsonlfiles.openclaw cron runs --id <id>therefore returns no historical rows.openclaw cron list --jsonjobstate(lastDurationMs,lastStatus,consecutiveErrors) is still updated, so scheduler state is intact — only the per-run history store is empty.Expected: new cron runs append to
history.db/index.dbafter migration.Actual: the SQLite stores are created empty and never populated; run history is lost going forward.
Environment: OpenClaw 2026.6.1 (
2e08f0f), Linux (Debian/Ubuntu), node v22.22.1, gateway under systemd (user unit), ~80 cron jobs.Workaround in place: we mirror run outcomes into our own logging DB via a cron wrapper and read
openclaw cron list --jsonstate for health.Possibly related (same release, lower priority — mentioned only in case it helps):
NODE_OPTIONS=--max-old-space-size=8192), producing ~280 false-"critical" diagnostics over 3 days withNRestarts=0.failureAlert{}exposes only a per-jobcooldownMs— there is no global cross-job storm-cap — so a single upstream provider outage floods the alert channel from many jobs at once.