Bug Report
Version: 2026.4.5
Summary: The model field set in a cron job's payload via openclaw cron edit --model <model> is not honored when the job runs. Isolated cron sessions always use the agent's primary model instead of the payload override.
Steps to Reproduce
- Create an isolated cron job for an agent whose primary model is
anthropic/claude-sonnet-4-6
- Set a model override via CLI:
openclaw cron edit <id> --model openrouter/auto
- Verify the config is written correctly (jobs.json shows
payload.model: "openrouter/auto")
- Allow the job to run on its scheduled trigger (or run manually)
- Observe the session transcript — the session runs on
claude-sonnet-4-6 (agent primary), not openrouter/auto
Expected Behavior
The cron session should use the model specified in payload.model, overriding the agent's default primary model.
Actual Behavior
The payload.model field is written correctly to cron/jobs.json but is silently ignored at runtime. The session uses the agent's primary model (claude-sonnet-4-6).
Config Evidence
{
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"model": "openrouter/auto",
"lightContext": true,
"message": "Run this command exactly: python3 ..."
}
}
Session transcript confirms model: claude-sonnet-4-6 on all assistant turns despite the override.
Impact
Cost issue: lightweight script-only cron jobs (e.g. running a Python script) are being billed at Sonnet rates instead of routing to cheaper/auto-selected models. Model pinning on cron jobs is a key cost control mechanism and it's not working.
Additional Context
- Affects isolated cron sessions (
sessionTarget: "isolated")
--light-context flag appears to be stored correctly but model override is not respected
- Observed on macOS arm64, gateway running as LaunchAgent
Bug Report
Version: 2026.4.5
Summary: The
modelfield set in a cron job'spayloadviaopenclaw cron edit --model <model>is not honored when the job runs. Isolated cron sessions always use the agent's primary model instead of the payload override.Steps to Reproduce
anthropic/claude-sonnet-4-6openclaw cron edit <id> --model openrouter/autopayload.model: "openrouter/auto")claude-sonnet-4-6(agent primary), notopenrouter/autoExpected Behavior
The cron session should use the model specified in
payload.model, overriding the agent's default primary model.Actual Behavior
The
payload.modelfield is written correctly tocron/jobs.jsonbut is silently ignored at runtime. The session uses the agent's primary model (claude-sonnet-4-6).Config Evidence
{ "sessionTarget": "isolated", "payload": { "kind": "agentTurn", "model": "openrouter/auto", "lightContext": true, "message": "Run this command exactly: python3 ..." } }Session transcript confirms
model: claude-sonnet-4-6on all assistant turns despite the override.Impact
Cost issue: lightweight script-only cron jobs (e.g. running a Python script) are being billed at Sonnet rates instead of routing to cheaper/auto-selected models. Model pinning on cron jobs is a key cost control mechanism and it's not working.
Additional Context
sessionTarget: "isolated")--light-contextflag appears to be stored correctly but model override is not respected