claude-code - 💡(How to fix) Fix [DOCS] CronCreate durable: true accepted but silently no-op — session-only crons on macOS

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Fix Action

Fix / Workaround

Impact I run plugins (airgap-crucible) that dispatch long-running async work and rely on a +60–90 minute harvest cron to retrieve results. With durable: true being a silent no-op, every harvest is at risk of becoming a "ghosted run" if the dispatching Claude session ends — which the plugin's own queue discipline explicitly forbids.

Workaround in place I shipped a launchd-based watchdog (~/.claude/scripts/harvest-cron-watchdog.sh + ~/Library/LaunchAgents/com.pai.harvest-cron-watchdog.plist) that polls a JSON watch-list every 60s. That is what durable: true should do internally. Live-fire confirmed against a real harvest at 2026-05-15T09:48+02:00.

RAW_BUFFERClick to expand / collapse

Documentation Type Other

Documentation Location No response

Section/Topic CronCreate tool — durable: true parameter

Current Documentation The CronCreate tool description / schema documents durable: true as a persisting flag. The tool's own runtime confirmation text references ~/.claude/scheduled_tasks.json as the on-disk store.

What's Wrong or Missing? CronCreate accepts durable: true as documented, but on macOS the resulting cron is session-only — it dies when the Claude Code REPL exits. The flag is silently a no-op: nothing is written to ~/.claude/scheduled_tasks.json (the file does not exist), and the tool's own confirmation text says Session-only (not written to disk, dies when Claude exits) even when durable: true was passed.

Reproduction From Claude Code on macOS 26.2 (Apple Silicon), invoke:

CronCreate({ schedule: "...", command: "...", durable: true }) Tool returns success.

Observe:

The returned message text says Session-only (not written to disk, dies when Claude exits). ls ~/.claude/scheduled_tasks.json → no such file or directory. Exiting the Claude session terminates the scheduled task. Expected behavior When durable: true is passed, the scheduled task should persist across session exits. Per the tool's own documentation it should write to ~/.claude/scheduled_tasks.json (or an equivalent on-disk store) and resume from disk on next Claude Code launch.

Impact I run plugins (airgap-crucible) that dispatch long-running async work and rely on a +60–90 minute harvest cron to retrieve results. With durable: true being a silent no-op, every harvest is at risk of becoming a "ghosted run" if the dispatching Claude session ends — which the plugin's own queue discipline explicitly forbids.

Workaround in place I shipped a launchd-based watchdog (~/.claude/scripts/harvest-cron-watchdog.sh + ~/Library/LaunchAgents/com.pai.harvest-cron-watchdog.plist) that polls a JSON watch-list every 60s. That is what durable: true should do internally. Live-fire confirmed against a real harvest at 2026-05-15T09:48+02:00.

Environment Claude Code: latest (subscription) macOS: 26.2 (build 25C56), Apple Silicon mcp__scheduled-tasks__* (Anthropic-hosted Schedule/routines) is not viable as a fallback — refuses unsupervised invocation by design (billing-safety gate). Suggested Improvement Either:

Honor durable: true by persisting the scheduled task to ~/.claude/scheduled_tasks.json (or equivalent) and resuming from disk on next launch — the behavior the tool already advertises in its confirmation text.

Update the documentation and the tool's confirmation text to clearly state that durability is unsupported on macOS until $LATER, and steer users to alternatives (atrun / launchd / external schedulers).

If the underlying intent is "durable scheduling will only be available via the cloud-routines MCP" — please say so explicitly in the tool description so users don't expect a working local-disk path.

Impact High - Prevents users from using a feature

Additional Context Cross-referenced from a private PAI infrastructure tracking issue with full evidence and follow-ups.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [DOCS] CronCreate durable: true accepted but silently no-op — session-only crons on macOS