Install
openclaw skills install cron-delivery-fixDiagnose and fix OpenClaw cron job delivery failures. Script-based approach to prevent manual config errors. Fixes silent delivery failures, missing delivery params, and invalid session/payload combinations. Triggers: cron not delivering, scheduled task not sending, message not received.
openclaw skills install cron-delivery-fixDiagnose and fix OpenClaw cron job message delivery failures. Uses scripted operations to prevent manual configuration errors.
delivered but user didn't receive itnot-deliveredThis issue recurred on multiple dates. Each manual fix introduced new problems:
to/channel/accountId, resulting in incomplete delivery--no-deliver accidentally cleared delivery configs; wrong --session caused invalid combinationsRoot cause: Manually running openclaw cron edit one by one easily misses parameters or creates illegal configs.
Solution: Use scripts for unified management. Never manually edit cron session/delivery fields.
| sessionTarget | payload.kind | delivery.mode | Description |
|---|---|---|---|
| isolated | agentTurn | announce | AI executes + cron auto-delivers summary (requires complete to/channel/accountId) |
| isolated | agentTurn | none | AI self-delivers via message tool (must include send params in prompt) |
| main | systemEvent | none | Triggers in main session (no independent delivery) |
| Combination | Error Reason |
|---|---|
| main + agentTurn | Gateway rejects: main cron jobs require payload.kind="systemEvent" |
| announce + missing to | No delivery target, message cannot be sent |
| announce + missing accountId | Multi-account setups deliver to wrong account |
| none + agent in isolated session | AI's message tool lacks contextToken in isolated session |
All cron jobs that need to send messages to users must have:
sessionTarget: isolated
payload.kind: agentTurn
delivery.mode: announce
delivery.channel: <your-channel-id>
delivery.to: <your-user-id>
delivery.accountId: <your-account-id>
Tasks that don't need to send messages:
sessionTarget: isolated
payload.kind: agentTurn
delivery.mode: none
bash skills/cron-delivery-fix/scripts/diagnose.sh
Outputs delivery status of all cron jobs, flagging problematic ones.
# Fix a single job
bash skills/cron-delivery-fix/scripts/fix-single.sh <job-id> [--announce|--silent]
# Fix all delivery-type jobs
bash skills/cron-delivery-fix/scripts/fix-all.sh
# Restore a broken job (with valid config)
bash skills/cron-delivery-fix/scripts/restore.sh <job-id>
# Run diagnosis again to confirm no issues
bash skills/cron-delivery-fix/scripts/diagnose.sh
# Manual trigger test
openclaw cron run <job-id>
openclaw cron edit --session main on agentTurn-type tasks--no-deliver to clear delivery config then re-add params one by one (easy to miss params)diagnose.sh to verify afterwards