Diagnose 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.
sessionTargetpayload.kinddelivery.modeDescriptionisolatedagentTurnannounceAI executes + cron auto-delivers summary (requires complete to/channel/accountId)isolatedagentTurnnoneAI self-delivers via message tool (must include send params in prompt)mainsystemEventnoneTriggers in main session (no independent delivery)
CombinationError Reasonmain + agentTurnGateway rejects: main cron jobs require payload.kind="systemEvent"announce + missing toNo delivery target, message cannot be sentannounce + missing accountIdMulti-account setups deliver to wrong accountnone + agent in isolated sessionAI's message tool lacks contextToken in isolated session
All cron jobs that need to send messages to users must have:
text
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:
text
sessionTarget: isolated
payload.kind: agentTurn
delivery.mode: none
bash
bash skills/cron-delivery-fix/scripts/diagnose.sh
Outputs delivery status of all cron jobs, flagging problematic ones.
bash
# 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>
bash
# 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