[BUG] Scheduled task cron dispatch silently fails to fire — no lastRunAt, no execution, no error
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Description:
A recurring scheduled task (live-leads-daily-plastic-mfg, cronExpression: "0 7 1-5", weekdays 7:04 AM local) has failed to fire on at least 3 consecutive weekdays (Aug 25, 26, 27 2026), confirmed by:
The task's lastRunAt field never updated across all 3 days, even hours after the scheduled time passed.
nextRunAt correctly advanced to the following weekday each time, implying the scheduler believes the prior slot was handled — but no corresponding execution occurred.
Real side effects the task would produce (Google Sheet rows, CRM API calls, email sends) never appeared for those dates until I manually re-ran the task's logic myself in chat.
I also tested a manual one-time fireAt override (via update_scheduled_task) set ~1 minute in the future — this also never fired. nextRunAt stayed frozen at the fireAt value with no lastRunAt appearing even 25+ minutes later. This suggests the issue isn't specific to cron parsing — the dispatch mechanism itself isn't triggering execution, for both recurring and one-time schedules.
No error was ever surfaced to the user or in any tool response — the failure is completely silent.
What Should Happen?
Expected: The task should fire at its scheduled time (or shortly after, given documented jitter), and any dispatch failure should be visibly surfaced rather than silently skipped.
Impact: A user relying on this for unattended daily automation had no way to know the task wasn't running except by manually cross-checking downstream side effects each day.
Error Messages/Logs
Steps to Reproduce
- Create a scheduled task with a recurring cron schedule (e.g. "0 7 1-5") using the scheduled-tasks tools.
- Let the scheduled fire time pass.
- Call list_scheduled_tasks — lastRunAt never updates, even hours after the scheduled time.
- Confirm via side effects (e.g. no API calls made, no files written) that the task's prompt never actually executed.
- As a second test, set a one-time fireAt ~1 minute in the future via update_scheduled_task.
- That one-time fire also never occurs — nextRunAt stays frozen at the fireAt value, lastRunAt never appears, even 25+ minutes later.
Claude Model
Sonnet (default)
Is this a regression?
No, this never worked
Last Working Version
2.1.231
Claude Code Version
2.1.231
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
- Create a scheduled task with a recurring cron schedule (e.g. "0 7 1-5") using the scheduled-tasks tools.
- Let the scheduled fire time pass.
- Call list_scheduled_tasks — lastRunAt never updates, even hours after the scheduled time.
- Confirm via side effects (e.g. no API calls made, no files written) that the task's prompt never actually executed.
- As a second test, set a one-time fireAt ~1 minute in the future via update_scheduled_task.
- That one-time fire also never occurs — nextRunAt stays frozen at the fireAt value, lastRunAt never appears, even 25+ minutes later.