[BUG] Scheduled task ("routine") model setting silently reverts from Haiku to Sonnet between unattended cron runs
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?
Summary
After setting a scheduled task's model to Haiku 4.5 via the routine's detail panel in the Claude desktop app (Mac), the model silently reverts to Sonnet 5.5 at some point during a stretch of fully unattended, automatically-triggered (cron) runs — with no manual action (no UI interaction, no API call, no "Run now") involved at all. This has happened repeatedly across more than one scheduled task in my account.
Environment
- Claude desktop app, macOS
- Feature: Scheduled tasks / Routines (sidebar "ルーティン")
- Affected task observed:
cross-platform-delist-on-sale, cron7 */2 * * *(every 2 hours)
Expected behavior
Once I select a non-default model (e.g. Haiku 4.5) for a routine in its detail panel, that selection should persist and apply to every future automatic (cron-triggered) run of that routine, until I change it again myself.
Actual behavior
The model silently flips back to Sonnet 5.5 between automatic runs. No one touched the routine's settings or triggered a manual run during the window where it changed.
Evidence (session-by-session timeline)
I checked each run's actual model field (via session metadata) for the cross-platform-delist-on-sale task across one night:
| Time (JST, 2026-10-05/06) | Trigger type | Model used |
|---|---|---|
| 10/5 15:26 | automatic (cron) | claude-haiku-4-5-20251001 ✅ |
| 10/5 15:55 | manual (API "run now", for an unrelated test) | claude-sonnet-5-5 (expected — not through the UI's model selector) |
| 10/5 17:12 | automatic (cron) | claude-haiku-4-5-20251001 ✅ (correctly back to Haiku on its own) |
| 10/5 22:53 | automatic | claude-haiku-4-5-20251001 ✅ |
| 10/5 23:13 | automatic (cron) | claude-haiku-4-5-20251001 ✅ |
| 10/6 01:12 | automatic (cron) | claude-sonnet-5-5 ❌ — reverted, nobody touched anything between 23:13 and 01:12 |
| 10/6 03:12 | automatic (cron) | claude-sonnet-5-5 (stayed reverted) |
| 10/6 05:12 | automatic (cron) | claude-sonnet-5-5 (stayed reverted) |
So the revert happened sometime in the 23:13→01:12 window, during which the only activity was the routine's own unattended cron firing — no human interaction, no manual trigger, nothing.
This is not an isolated incident — I (the user) had already noticed and manually corrected the same "reverted to Sonnet" behavior on a different scheduled task earlier, before this timeline was captured.
Possible related clue
When re-selecting Haiku 4.5 from the routine's detail panel, a confirmation dialog appears:
モデルを切り替えますか? このセッションはSonnet 5.5用にキャッシュされています。Haiku 4.5に切り替えると、次のメッセージ送信時にClaudeがセッション全体を再読み込みするため、利用上限をより多く消費します。
(Translation: "Switch model? This session is cached for Sonnet 5.5. Switching to Haiku 4.5 will make Claude reload the entire session on the next message, consuming more of your usage limit.")
The wording "このセッションは…" ("this session is cached for...") suggests the model selector may be scoped to whichever single session is currently open/displayed in that routine's panel, rather than being stored as a persistent default that every future cron-spawned session (each of which gets its own new session ID) reliably inherits. If that's the mechanism, it would explain why the setting doesn't "stick" for unattended runs.
Impact
For scheduled tasks meant to run unattended for cost/budget reasons (this routine runs every 2 hours, 24/7), this makes Haiku effectively unreliable to rely on — the task silently (and expensively) falls back to Sonnet without any notification, defeating the purpose of choosing a cheaper model for routine automation.
What Should Happen?
Once a non-default model (e.g. Haiku 4.5) is selected for a scheduled task/routine, that setting should persist and be used by every future automatic (cron-triggered) run, without silently reverting to the default model.
Error Messages/Logs
Steps to Reproduce
- Open a scheduled task ("routine") in the Claude desktop app sidebar — one with a recurring cron schedule (e.g. every 2 hours).
- In the routine's detail panel, select a non-default model (e.g. Haiku 4.5) from the model dropdown at the bottom of the panel.
- Confirm the "Switch model?" dialog that appears (it warns that switching will reload the session and consume more usage).
- Do not touch the routine again. Let it fire automatically via its cron schedule, unattended, for several hours (no manual "Run now", no further settings changes).
- After several automatic runs have completed, inspect each run's session metadata to see which model it actually used.
Expected: every automatic run continues using the selected Haiku 4.5 model.
Actual: at some point between two consecutive automatic runs — with zero user interaction in between — the model silently reverts to the default (Sonnet 5.5) and stays there for all subsequent automatic runs, until manually reselected again.
Claude Model
Sonnet (default)
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
2.19675.1
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_