Skip to content

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

@jkfaris94

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions