Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
Plugin model provider (opencode-go) cannot be resolved by isolated cron sessions, even though openclaw models lists it correctly and session_status model=default resolves it for existing sessions.
Steps to reproduce
- Install a model plugin (e.g. opencode-go) that registers via catalog.json
- Set default model to opencode-go/deepseek-v4-flash
- Create a cron job with model: "opencode-go/deepseek-v4-flash"
- Check run history — provider is always the fallback, never opencode-go
Expected behavior
Cron job runs use the explicitly set model through the plugin provider.
Actual behavior
Always resolves to deepseek (fallback provider), fallbackUsed: false.
OpenClaw version
2026.6.9
Operating system
Ubuntu 24.04
Install method
npm global
Model
opencode-go/deepseek-v4-flash
Provider / routing chain
opencode-go
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
Root cause investigation: models.json only has legacy providers; plugin providers are loaded from plugins/*/catalog.json separately. The find() or findInitialModel() path for isolated session creation doesn't resolve plugin-provided models correctly, falling through to the first available model instead.
Workaround: session_status model=default works for existing interactive sessions, but not for isolated cron sessions.
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
Plugin model provider (opencode-go) cannot be resolved by isolated cron sessions, even though openclaw models lists it correctly and session_status model=default resolves it for existing sessions.
Steps to reproduce
Expected behavior
Cron job runs use the explicitly set model through the plugin provider.
Actual behavior
Always resolves to deepseek (fallback provider), fallbackUsed: false.
OpenClaw version
2026.6.9
Operating system
Ubuntu 24.04
Install method
npm global
Model
opencode-go/deepseek-v4-flash
Provider / routing chain
opencode-go
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
Root cause investigation: models.json only has legacy providers; plugin providers are loaded from plugins/*/catalog.json separately. The find() or findInitialModel() path for isolated session creation doesn't resolve plugin-provided models correctly, falling through to the first available model instead.
Workaround: session_status model=default works for existing interactive sessions, but not for isolated cron sessions.