anthropics / anthropics/claude-code
[BUG] Desktop app scheduled/background sessions default to Opus despite Sonnet marked as Default (regression of #53739)
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
### Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet as an open issue (closest match is #53739, closed 2026-05-30, but that issue is now locked and this reproduces on a current build, so filing as a likely regression)
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
### What's Wrong?
Scheduled/background sessions (both `CronCreate`-style recurring jobs and the persistent scheduled-tasks skill) consistently start on Opus 5 (1M context), even though the app's own model picker shows "Sonnet 5" labeled as "Default".
Confirmed today (2026-09-18) across several independent recurring tasks:
- A brand-new scheduled task, on its very first-ever run, started on Opus 5 despite no prior session for that task ever existing (so this isn't "reverting" to a stale setting — it's the initial default itself being wrong).
- Several other recurring scheduled tasks (a 4-hourly one, a daily one) show the same Opus 5 default across multiple historical firings, going back at least 2 days.
- The model picker UI shows "Sonnet 5" with a "Default" badge next to it, which does not match what scheduled sessions actually spawn with.
- Manually switching a running session's model to a cheaper one does not prevent the *next* scheduled firing of that same task from reverting to Opus 5, since each firing spawns a brand-new session rather than reusing the corrected one.
This looks like the same root cause as #53739 (desktop app ignoring the configured/displayed default model for new sessions), but scoped specifically to scheduled/background session spawning rather than interactive "New session" clicks, and that issue is closed+locked so I can't comment there.
### What Should Happen?
New scheduled/background sessions should start on whatever model is actually shown as "Default" in the model picker, and ideally there should be a way to pin a specific (cheaper) model per scheduled task, since these often don't need Opus-level capability for simple, repeated jobs.
### Steps to Reproduce
1. Set a cheaper model (e.g. Sonnet or Haiku) via the model picker in a normal chat session.
2. Create a recurring scheduled task (via the scheduled-tasks feature).
3. Let it fire automatically (don't manually start it).
4. Check the model the spawned session actually used — it is Opus regardless of step 1.
### Platform
Anthropic API
### Operating System
Windows
### Additional Information
This is a real, ongoing cost problem for anyone relying on scheduled/automated sessions (not just interactive chat) — there is currently no way to reliably keep recurring background sessions on a cheaper model. Happy to share specific session IDs/timestamps if useful for debugging (not included here to avoid pasting internal account data).
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the issue with a fresh recurring scheduled task after selecting Sonnet or Haiku in the model picker, then compare the displayed default with the model used by the spawned session. Trace scheduled/background session creation and model selection; done means new scheduled sessions use the model shown as Default, with regression coverage for the reported behavior.
Written by the indexing model from the issue text.
Assessment
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100