Skip to content

Cron scheduler: nextWakeAtMs stays null, jobs never auto-fire #9930

@fujiwara-tofu-shop

Description

@fujiwara-tofu-shop

Summary

The built-in cron scheduler creates jobs successfully and stores them, but they never auto-fire. The nextWakeAtMs field stays null after job creation, suggesting the wake scheduler never picks up the job.

Reproduction

# Add a job scheduled to run soon
openclaw cron add \
  --name "Test job" \
  --at "+1m" \
  --session main \
  --system-event "Test cron fired" \
  --wake now

# Check job status
openclaw cron list --json

Expected

  • nextWakeAtMs should be populated with the scheduled timestamp
  • Job should fire automatically at the scheduled time

Actual

  • nextWakeAtMs is null
  • Job never fires automatically
  • Manual trigger works fine: openclaw cron run <job-id> --force

Environment

  • OpenClaw version: 2026.2.2-3
  • OS: Ubuntu 24.04 (x64)
  • Node: v22.22.0
  • Running as systemd user service with lingering enabled

Workaround

Using system crontab to call openclaw agent instead:

# In crontab -e
0 7 * * * /path/to/openclaw agent --to <chat_id> --channel telegram --message "Morning briefing trigger" --deliver

This bypasses the internal scheduler entirely but still routes through the gateway properly.

Notes

  • Gateway is running continuously (verified via systemctl --user status openclaw)
  • Jobs persist correctly in ~/.openclaw/cron/jobs.json
  • The issue affects both at (one-shot) and cron (recurring) schedule types
  • Seems like the scheduler isn't registering the wake-up after job creation

Possibly related

Saw another user report similar symptoms on Twitter - jobs get created but "just don't do it". This appears to be a known pain point.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions