openclaw - 💡(How to fix) Fix [Bug]: subagent spawn validation rejects every non-off thinking level on all canonical openai/* models — error cites canonical alias even when openai-codex/* is requested

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…

On v2026.5.19, sessions_spawn (and any subagent-creation path) rejects every non-off thinking level for the canonical openai/* model namespace. The error consistently cites openai/gpt-5.5 even when the caller specified openai-codex/gpt-5.5 — subagent validation appears to fold openai-codex/* through openai/* alias routing before consulting the catalog, then the canonical catalog's missing reasoning metadata causes the rejection.

This is the same root cause as the picker / /think directive surface tracked in #84646, but a distinct surface and worth its own narrow report because it breaks the subagent API contract and is environment-affecting (not just UX).

Error Message

On v2026.5.19, sessions_spawn (and any subagent-creation path) rejects every non-off thinking level for the canonical openai/* model namespace. The error consistently cites openai/gpt-5.5 even when the caller specified openai-codex/gpt-5.5 — subagent validation appears to fold openai-codex/* through openai/* alias routing before consulting the catalog, then the canonical catalog's missing reasoning metadata causes the rejection.

  • The caller passed openai-codex/gpt-5.5, but the validation error names openai/gpt-5.5 — alias normalization happens before catalog lookup.
  • Same error shape with high, medium, low, minimal — only off is accepted.

Root Cause

This is the same root cause as the picker / /think directive surface tracked in #84646, but a distinct surface and worth its own narrow report because it breaks the subagent API contract and is environment-affecting (not just UX).

Fix Action

Workaround

  • For main session: set agents.defaults.thinkingDefault: "<level>" at config time — this bypasses runtime validation and the level is honored for normal turns.
  • For subagents: no working workaround in v5.19. Forcing thinking: "off" on every subagent spawn loses the capability entirely. Any subagent that needs reasoning is currently blocked.

Code Example

sessions_spawn({
  model: "openai-codex/gpt-5.5",
  thinking: "xhigh",
  // ...prompt etc.
})

---

Thinking level xhigh is not supported for openai/gpt-5.5.
Use one of: off.

---

"agents": { "defaults": { "thinkingDefault": "xhigh" } }
RAW_BUFFERClick to expand / collapse

Summary

On v2026.5.19, sessions_spawn (and any subagent-creation path) rejects every non-off thinking level for the canonical openai/* model namespace. The error consistently cites openai/gpt-5.5 even when the caller specified openai-codex/gpt-5.5 — subagent validation appears to fold openai-codex/* through openai/* alias routing before consulting the catalog, then the canonical catalog's missing reasoning metadata causes the rejection.

This is the same root cause as the picker / /think directive surface tracked in #84646, but a distinct surface and worth its own narrow report because it breaks the subagent API contract and is environment-affecting (not just UX).

Environment

  • OpenClaw v2026.5.19 stable
  • Channel: Telegram (also reproduces via main agent calling the sessions_spawn tool)
  • Active agent: main, runtime pi
  • Auth: auth.order.openai = ["openai-codex:[email protected]"] (OAuth, no api-key fallback)
  • /status confirms runtime: OpenAI Codex

Reproduction

A subagent spawn request:

sessions_spawn({
  model: "openai-codex/gpt-5.5",
  thinking: "xhigh",
  // ...prompt etc.
})

returns:

Thinking level xhigh is not supported for openai/gpt-5.5.
Use one of: off.

Notes from this run:

  • The caller passed openai-codex/gpt-5.5, but the validation error names openai/gpt-5.5 — alias normalization happens before catalog lookup.
  • Same error shape with high, medium, low, minimal — only off is accepted.
  • Affects every canonical openai/* model in our setup (gpt-5.5, gpt-5.4, gpt-5.4-mini) — they all share the same catalog metadata gap.

Asymmetry vs. main-session thinking

Main-session thinking via the config-time path still applies correctly:

"agents": { "defaults": { "thinkingDefault": "xhigh" } }

/think reports Current thinking level: xhigh for the main session, and turns appear to honor it. So the routed gpt-5.5 runtime (OpenAI Codex OAuth) is fully capable of running non-off thinking — only the OpenClaw catalog metadata for openai/* claims off-only.

Regression vs. v2026.5.18

This was working on v2026.5.18 a few hours before upgrading to v5.19. I previously verified in #84489 that on v5.18:

  • sessions_spawn(model: "openai/gpt-5.4", thinking: "high") → ✅ completed successfully
  • sessions_spawn(model: "openai-codex/gpt-5.5", thinking: "high") → ✅ completed successfully

After upgrading to v2026.5.19 these exact spawn calls now fail with the Use one of: off rejection above. The catalog truth-source enforcement appears to have been tightened in v5.19 in a way that exposes the underlying canonical openai/* catalog reasoning-metadata gap on every code path, including subagent spawn, that previously bypassed the canonical lookup.

The /think picker on the same model also regressed in v5.19 (now shows only default, off, was showing the full range on v5.18 because #82975's picker fix was effectively a UI-side hack rather than a catalog correction) — that surface is tracked in #84646.

Expected

sessions_spawn with thinking: "high" (or any other non-off level supported by the underlying model) on any openai/* or openai-codex/* canonical OpenAI gpt-5 model should be accepted. The fix is to populate the reasoning-metadata for openai/gpt-5.5, openai/gpt-5.4, and openai/gpt-5.4-mini in the canonical catalog so that they advertise the full thinking-level capability the underlying API supports.

Workaround

  • For main session: set agents.defaults.thinkingDefault: "<level>" at config time — this bypasses runtime validation and the level is honored for normal turns.
  • For subagents: no working workaround in v5.19. Forcing thinking: "off" on every subagent spawn loses the capability entirely. Any subagent that needs reasoning is currently blocked.

Related

  • #84646 — /think directive / picker surface; this is the subagent-spawn surface peer report for the same root cause
  • #82975 — original "picker only shows default/off" (closed as completed; picker UI was patched in a way that did not fix the underlying catalog metadata, and v5.19 reverted that patch)
  • #84489 — broader subagent / orchestration umbrella where the original v5.18 verify was recorded

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 [Bug]: subagent spawn validation rejects every non-off thinking level on all canonical openai/* models — error cites canonical alias even when openai-codex/* is requested