Skip to content

Cron: manual run of recurring 'every' job enqueues but never produces run entry (at jobs work) #42254

@xp0228

Description

@xp0228

Summary

Manual triggering a recurring cron job (schedule.kind="every") can enqueue but never produce a runs entry, while the same payload works when scheduled as a one-shot at job.

Environment

  • OpenClaw: v2026.3.8
  • OS: Linux (arm64)
  • Channel: Telegram

What works

  • One-shot at + sessionTarget: "isolated" + payload.kind: "agentTurn" + delivery.mode: "announce" works.
    • Example run (jobId 9283dec4-...): finished ok, delivered=true.

What fails

  • Recurring every job (jobId 38c2fac8-...) when manually triggered via cron run --force:
    • Tool returns {enqueued:true} with a manual runId
    • cron runs <jobId> remains empty (no finished/error entry)
    • Logs show lane enqueue/dequeue for session:agent:main:cron:<jobId>, but no subsequent execute/finish logs.

Repro steps

  1. Create a recurring cron job:
{
  "name": "Server health snapshot (8h) [isolated+announce]",
  "schedule": {"kind":"every","everyMs":28800000},
  "sessionTarget":"isolated",
  "payload": {"kind":"agentTurn","message":"(any simple exec task)","timeoutSeconds":600},
  "delivery": {"mode":"announce","channel":"telegram","to":"<chat_id>"}
}
  1. Manually run it: openclaw cron run <jobId> --force (or via API / UI).
  2. Observe it gets enqueued but no run record appears and no message is delivered.
  3. Create the same job as one-shot at for +1min; it finishes and delivers normally.

Logs

See attached excerpt (lane enqueue/dequeue around the manual run time).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions