CronCreate: durable:true flag silently dropped, task runs as session-only

Resolved 💬 1 comment Opened Apr 22, 2026 by sanikaram Closed May 26, 2026

Bug: CronCreate with durable: true silently dropped — task runs as session-only

Model: claude-opus-4-7
Observed: 2026-04-18, reproduced 2026-04-21
Severity: Medium — no errors, but durable cron is effectively unavailable (silent-fail)

Summary

When invoking the CronCreate tool with durable: true, the flag is silently ignored. The tool returns the standard success response noting the task is "Session-only (not written to disk, dies when Claude exits)" — even though durable was explicitly requested. .claude/scheduled_tasks.json is never written.

Expected behaviour

With durable: true, the scheduled task should persist across Claude Code sessions, be written to .claude/scheduled_tasks.json, and fire on schedule whether or not a REPL is active.

Actual behaviour

  • durable: true is accepted without warning or error
  • Tool response says "Session-only (not written to disk, dies when Claude exits)"
  • .claude/scheduled_tasks.json is not created
  • Task dies when the session ends

Reproduction

Invoke CronCreate with any valid schedule and durable: true. Compare the response text to what's documented for durable tasks. Check whether .claude/scheduled_tasks.json was written.

Workaround currently in use

Bypassed via crontab + tmux send-keys dispatcher:

  • crontab -l entries invoke .claude/scripts/cron-dispatch.sh <automation-name>
  • Dispatcher uses tmux send-keys to push an invocation prompt into a persistent claude-agent pane
  • A launchd plist (com.sani.claude-channel) keeps the pane alive and relaunches Claude if the REPL exits

This works, but it's a fair bit of plumbing for what durable: true should handle natively.

Suggested fix

Either:

  1. Honour durable: true by writing to .claude/scheduled_tasks.json and running a persistent scheduler, or
  2. Reject the flag explicitly with an error so callers aren't silently downgraded

Silent downgrade is the worst outcome — users who pass the flag believe they have durability until the first cross-session miss.

Environment

  • Claude Code CLI
  • macOS (Darwin 21.6.0)
  • Model: claude-opus-4-7

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗