Bug type
Regression (worked before, now fails)
Summary
When switching models between different providers in Dashboard v2 (chat UI), the model selector incorrectly uses the current provider's prefix instead of the target model's configured provider, resulting in an invalid model ID and "model not allowed" error.
Steps to reproduce
-
Configure two models from different providers in agent/model.json, e.g.:
modelstudio-cn/qwen-plus (通义千问)
moonshot-cn/kimi-k2.5 (Moonshot)
-
Open Dashboard v2 chat UI
-
Start with model A (e.g., 千问)
-
Use the model picker to switch to model B (e.g., Kimi)
-
Observe the error: GatewayRequestError: model not allowed: modelstudio-cn/kimi-k2.5
Expected behavior
Switching from modelstudio-cn/qwen-plus to Kimi should request moonshot-cn/kimi-k2.5.
Actual behavior
Dashboard incorrectly requests modelstudio-cn/kimi-k2.5 (wrong provider prefix).
The bug is bidirectional:
- From 千问 → Kimi: tries
modelstudio-cn/kimi-k2.5 ❌
- From Kimi → 千问: tries
moonshot-cn/qwen-plus ❌
OpenClaw version
2026.3.13
Operating system
MacOS 26.3.1
Install method
npm global
Model
kimi-k2.5/qwen-plus
Provider / routing chain
gateway → provider
Additional provider/model setup details
"models": {
"providers": {
"modelstudio-cn": {
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "MODELSTUDIO_API_KEY_1",
"api": "openai-completions",
"models": [
{
"id": "qwen-plus",
"name": "千问",
"api": "openai-completions",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192
}
]
},
"moonshot-cn": {
"baseUrl": "https://api.moonshot.cn/v1",
"apiKey": "MOONSHOT_API_KEY_1",
"api": "openai-completions",
"models": [
{
"id": "kimi-k2.5",
"name": "Kimi",
"api": "openai-completions",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "moonshot-cn/kimi-k2.5"
},
"models": {
"modelstudio-cn/qwen-plus": {
"alias": "千问"
},
"moonshot-cn/kimi-k2.5": {
"alias": "Kimi"
}
}
}
},
Logs, screenshots, and evidence
Impact and severity
This affects users who configure multiple models from different providers (e.g., comparing cloud providers, using regional APIs, or maintaining fallback options). While less common than single-provider setups, it's a valid and documented configuration pattern.
Additional information
No response
Bug type
Regression (worked before, now fails)
Summary
When switching models between different providers in Dashboard v2 (chat UI), the model selector incorrectly uses the current provider's prefix instead of the target model's configured provider, resulting in an invalid model ID and "model not allowed" error.
Steps to reproduce
Configure two models from different providers in
agent/model.json, e.g.:modelstudio-cn/qwen-plus(通义千问)moonshot-cn/kimi-k2.5(Moonshot)Open Dashboard v2 chat UI
Start with model A (e.g., 千问)
Use the model picker to switch to model B (e.g., Kimi)
Observe the error:
GatewayRequestError: model not allowed: modelstudio-cn/kimi-k2.5Expected behavior
Switching from
modelstudio-cn/qwen-plusto Kimi should requestmoonshot-cn/kimi-k2.5.Actual behavior
Dashboard incorrectly requests
modelstudio-cn/kimi-k2.5(wrong provider prefix).The bug is bidirectional:
modelstudio-cn/kimi-k2.5❌moonshot-cn/qwen-plus❌OpenClaw version
2026.3.13
Operating system
MacOS 26.3.1
Install method
npm global
Model
kimi-k2.5/qwen-plus
Provider / routing chain
gateway → provider
Additional provider/model setup details
"models": {
"providers": {
"modelstudio-cn": {
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "MODELSTUDIO_API_KEY_1",
"api": "openai-completions",
"models": [
{
"id": "qwen-plus",
"name": "千问",
"api": "openai-completions",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192
}
]
},
"moonshot-cn": {
"baseUrl": "https://api.moonshot.cn/v1",
"apiKey": "MOONSHOT_API_KEY_1",
"api": "openai-completions",
"models": [
{
"id": "kimi-k2.5",
"name": "Kimi",
"api": "openai-completions",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "moonshot-cn/kimi-k2.5"
},
"models": {
"modelstudio-cn/qwen-plus": {
"alias": "千问"
},
"moonshot-cn/kimi-k2.5": {
"alias": "Kimi"
}
}
}
},
Logs, screenshots, and evidence
Impact and severity
This affects users who configure multiple models from different providers (e.g., comparing cloud providers, using regional APIs, or maintaining fallback options). While less common than single-provider setups, it's a valid and documented configuration pattern.
Additional information
No response