Scheduled task silently skipped after wake from standby: dispatch cleared but lastRunAt still set
Environment
- Claude Desktop (Windows, MSIX) 1.18286.0.0, claude-code runtime 2.1.197
- Windows 11 Pro 10.0.26200, Modern Standby (S0)
What happened
A recurring scheduled task (cron 0 9 5,7 7 *, jitter 284s) was dispatched at
09:00:40 +284s. The machine entered standby at ~09:04, inside the jitter window.
On wake (~09:30) the app logged Cleared stale pending dispatch and set the
task's lastRunAt — but no session was ever spawned. The run was lost silently:
the scheduler state says "ran today", the transcript directory shows no new
session, and no error or notification surfaced anywhere.
Expected
Either (a) re-dispatch the pending task after wake (the cron catch-up otherwise
works — a delayed fire at 09:30 would have been fine), or (b) drop the dispatch
WITHOUT setting lastRunAt, so the miss is detectable, ideally with a visible
failure notice.
Evidence
main.log: dispatch at 09:00:40, standby, wake, `Cleared stale pending
dispatch` at ~09:30:45.
scheduled-tasks.json:lastRunAt: 2026-07-05T07:30:45.051Zset; no matching
session transcript created.
Impact
Time-critical scheduled runs (daily reports) fail silently when the PC sleeps
through the dispatch+jitter window. Detection rule we now use externally:lastRunAt set without a new transcript = silent skip.
Workaround
One-time tasks (fire without jitter) + an external Task-Scheduler watchdog that
wakes the PC before the slot and alerts via push if no session appears.