Skip to content

[Bug]: Control UI chat header model picker sends bare model ids for provider-backed models #47620

@Neox92

Description

@Neox92

Bug type

Regression (worked before, now fails)

Summary

The Control UI chat header model picker sends a bare catalog model id for provider-backed models instead of the provider-qualified model ref, which can cause model not allowed errors.

Steps to reproduce

  1. Configure a provider-backed model in OpenClaw so the allowed model ref is provider-qualified (for example provider/model-id).
  2. Open the Control UI.
  3. In the chat header, use the model picker next to the active chat session.
  4. Select the provider-backed model from the dropdown.
  5. Observe the session model patch/request that follows.

Expected behavior

The chat header model picker should submit the same provider-qualified model reference that the backend/config expects, for example provider/model-id.

Actual behavior

The chat header model picker uses the bare catalog model id as the selected value and sends that instead of the provider-qualified ref. For provider-backed models, this can cause the selection to fail with errors such as model not allowed.

OpenClaw version

2026.3.14

Operating system

Windows11 - WSL2 - Ubuntu/Linux

Install method

source / hackable local install

Model

provider-backed model selected from the Control UI chat header picker

Provider / routing chain

OpenClaw Control UI -> session model patch -> provider-backed model ref

Config file / key location

~/.openclaw/openclaw.json ; agents.defaults.models ; models.providers

Additional provider/model setup details

This reproduces when the configured/allowed model ref is provider-qualified (for example provider/model-id) but the chat header picker uses only the catalog model id (model-id) as the submitted value.

The issue appears specific to the Control UI chat header picker. The Agents-side model selection path does not appear to fail in the same way.

Logs, screenshots, and evidence

Example user-visible symptom:

- A provider-backed model is shown in the dropdown.
- Selecting it from the chat header fails.
- The backend rejects the selection because the submitted model ref does not match the allowed provider-qualified ref.

Example error:
- `model not allowed`

Impact and severity

Affected: users selecting provider-backed models from the Control UI chat header picker

Severity: medium

Frequency: reproducible when the configured model ref is provider-qualified but the picker submits a bare id

Consequence: model selection from the chat header can fail even though the model is correctly configured and selectable elsewhere

Additional information

Suggested fix:

  • Use provider-qualified refs for chat header picker option values when the model comes from a provider-backed catalog entry
  • For example, use provider/id instead of only id

This would make the chat header picker consistent with backend/config expectations.

Additional note:
Some model ids may already contain / as part of the provider-native model id (for example Docker-style model ids), so the UI should not assume that any value containing / is already an OpenClaw provider-qualified ref.

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