openclaw - 💡(How to fix) Fix `session_status` returns wrong model — reads channel-scoped session façade, not the actual `agent:main:main` session

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

session_status reports the model bound to the channel-scoped session façade (e.g. agent:main:telegram:default:direct:<chat_id>) instead of the model the underlying agent:main:main session is actually running. The trajectory log shows the real model being used; session_status does not.

Root Cause

  • Cost/burn debugging: operators can't confirm which model is running without hand-tailing trajectory files.
  • The Apr 27 cron-leak incident ($50+ Opus burn) was harder to diagnose because session_status lied about which model was active.
RAW_BUFFERClick to expand / collapse

Summary

session_status reports the model bound to the channel-scoped session façade (e.g. agent:main:telegram:default:direct:<chat_id>) instead of the model the underlying agent:main:main session is actually running. The trajectory log shows the real model being used; session_status does not.

Reproduce

  1. Have agents.main.model = anthropic/claude-opus-4-7 configured.
  2. Send any message via Telegram so a channel-scoped session is created.
  3. Run session_status (CLI or via tool call).
  4. Compare the model field in session_status output against the most recent prompt.submitted (or model.completed) event in the corresponding *.trajectory.jsonl for agent:main:main.

Expected

session_status reflects the model the next prompt will actually use — the one the trajectory shows being invoked.

Actual

session_status reflects the channel-scoped façade's stored model, which may be a stale or mismatched value.

Why this matters

  • Cost/burn debugging: operators can't confirm which model is running without hand-tailing trajectory files.
  • The Apr 27 cron-leak incident ($50+ Opus burn) was harder to diagnose because session_status lied about which model was active.

Environment

OpenClaw 2026.5.7 (eeef486); macOS 25.3.0 / darwin; Telegram channel.

Suggestion

session_status should read the actual session that owns the channel binding, or label the output with which session it is reporting.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix `session_status` returns wrong model — reads channel-scoped session façade, not the actual `agent:main:main` session