Skip to content

[Bug]: Cron payload model override ignored — always resolves to agent default #57947

Description

@jkfaris94

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Cron jobs with payload.model set to a specific model (e.g., openai-codex/gpt-5.3-codex) always resolve to the agents.defaults.model.primary model instead. The payload model override is completely ignored.

Per the docs (automation/cron-jobs.md), the resolution priority should be:

  1. Job payload override (highest)
  2. Hook-specific defaults
  3. Agent config default

In practice, step 1 is skipped and all isolated cron jobs run on the agent default.

Steps to reproduce

  1. Set agents.defaults.model.primary to anthropic/claude-opus-4-6
  2. Create an isolated cron job with payload.model: "openai-codex/gpt-5.3-codex"
  3. Run the job (manual or scheduled)
  4. Check cron runs — the model field in the run log shows claude-opus-4-6, not gpt-5.3-codex

Expected behavior

Cron jobs with payload.model set (e.g., openai-codex/gpt-5.3-codex) should use that model for the run, overriding agents.defaults.model.primary, as documented in automation/cron-jobs.md under "Resolution priority."

Actual behavior

The payload.model field is ignored. All isolated cron runs resolve to agents.defaults.model.primary (anthropic/claude-opus-4-6) regardless of what model is specified in the cron payload. Confirmed across 945+ runs, persists after gateway restart, secrets reload, and OAuth re-authentication.

OpenClaw version

2026.3.28

Operating system

Ubuntu 24.04.4 LTS

Install method

No response

Model

anthropic/claude-opus-4-6 (agent default primary)

Provider / routing chain

anthropic/claude-opus-4-6 (primary), openai-codex/gpt-5.4 (fallback #1), openai-codex/gpt-5.3-codex (fallback #2)

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

// agents.defaults.model in openclaw.json
{
"primary": "anthropic/claude-opus-4-6",
"fallbacks": ["openai-codex/gpt-5.4", "openai-codex/gpt-5.3-codex"]
}

// Cron payload (heartbeat example)
{
"kind": "agentTurn",
"model": "openai-codex/gpt-5.3-codex",
"message": "...",
"timeoutSeconds": 120
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingregressionBehavior that previously worked and now fails

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions