Image Tool Fails with "Unknown model" on v2026.4.11 (worked on v2026.4.8)
Summary
The image tool (vision/image understanding) fails on OpenClaw v2026.4.11 when using a custom provider name for a Qwen/DashScope endpoint. The exact same configuration works on v2026.4.8.
Error
All image models failed (3):
bailian/kimi-k2.5: Unknown model: bailian/kimi-k2.5 | Unknown model: bailian/kimi-k2.5 |
bailian/qwen3.6-plus: Unknown model: bailian/qwen3.6-plus | Unknown model: bailian/qwen3.6-plus |
minimax/MiniMax-M2.7: Model does not support images: minimax/MiniMax-M2.7
Configuration
{
"agents": {
"defaults": {
"model": "bailian/kimi-k2.5",
"imageModel": {
"primary": "bailian/kimi-k2.5",
"fallbacks": ["bailian/qwen3.6-plus", "minimax/MiniMax-M2.7"]
}
}
},
"models": {
"providers": {
"bailian": {
"baseUrl": "https://coding.dashscope.aliyuncs.com/v1",
"apiKey": "sk-...",
"api": "openai-completions",
"models": [
{
"id": "qwen3.6-plus",
"name": "qwen3.6-plus",
"reasoning": false,
"input": ["text", "image"],
"cost": {"input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0},
"contextWindow": 1000000,
"maxTokens": 65536,
"compat": {
"supportsDeveloperRole": false,
"supportsUsageInStreaming": true,
"supportsStrictMode": false,
"thinkingFormat": "qwen"
}
},
{
"id": "kimi-k2.5",
"name": "kimi-k2.5",
"reasoning": false,
"input": ["text", "image"],
"cost": {"input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0},
"contextWindow": 262144,
"maxTokens": 32768,
"compat": {
"supportsDeveloperRole": false,
"supportsUsageInStreaming": true,
"supportsStrictMode": false,
"thinkingFormat": "qwen"
}
}
]
}
}
}
}
Reproduction
- Configure a custom provider (e.g.,
"bailian") pointing to https://coding.dashscope.aliyuncs.com/v1
- Set
imageModel.primary to a model under this provider (e.g., bailian/kimi-k2.5)
- Try to use the
image tool to analyze an image
- On v2026.4.11: ❌ fails with "Unknown model"
- On v2026.4.8: ✅ works correctly
Root Cause Analysis
After analyzing the source code of v2026.4.11:
- The
modelRegistry.find(provider, modelId) in @mariozechner/pi-coding-agent returns undefined
- The issue appears to be in how models.json is generated/synchronized between v2026.4.8 and v2026.4.11
- Specifically, models defined under custom provider names (not the official
qwen/modelstudio/qwencloud names) may be handled differently in newer versions
- The
models.json generated on v2026.4.11 is missing qwen3.6-plus from the bailian provider, even though it's defined in openclaw.json
Environment
- Working: OpenClaw v2026.4.8, macOS
- Broken: OpenClaw v2026.4.11, macOS
- Node.js: v22.22.1
- Same openclaw.json config on both machines
Expected Behavior
Custom provider names should be fully supported, and models defined under them should be discoverable by the image tool, just like in v2026.4.8.
Image Tool Fails with "Unknown model" on v2026.4.11 (worked on v2026.4.8)
Summary
The
imagetool (vision/image understanding) fails on OpenClaw v2026.4.11 when using a custom provider name for a Qwen/DashScope endpoint. The exact same configuration works on v2026.4.8.Error
Configuration
{ "agents": { "defaults": { "model": "bailian/kimi-k2.5", "imageModel": { "primary": "bailian/kimi-k2.5", "fallbacks": ["bailian/qwen3.6-plus", "minimax/MiniMax-M2.7"] } } }, "models": { "providers": { "bailian": { "baseUrl": "https://coding.dashscope.aliyuncs.com/v1", "apiKey": "sk-...", "api": "openai-completions", "models": [ { "id": "qwen3.6-plus", "name": "qwen3.6-plus", "reasoning": false, "input": ["text", "image"], "cost": {"input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0}, "contextWindow": 1000000, "maxTokens": 65536, "compat": { "supportsDeveloperRole": false, "supportsUsageInStreaming": true, "supportsStrictMode": false, "thinkingFormat": "qwen" } }, { "id": "kimi-k2.5", "name": "kimi-k2.5", "reasoning": false, "input": ["text", "image"], "cost": {"input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0}, "contextWindow": 262144, "maxTokens": 32768, "compat": { "supportsDeveloperRole": false, "supportsUsageInStreaming": true, "supportsStrictMode": false, "thinkingFormat": "qwen" } } ] } } } }Reproduction
"bailian") pointing tohttps://coding.dashscope.aliyuncs.com/v1imageModel.primaryto a model under this provider (e.g.,bailian/kimi-k2.5)imagetool to analyze an imageRoot Cause Analysis
After analyzing the source code of v2026.4.11:
modelRegistry.find(provider, modelId)in@mariozechner/pi-coding-agentreturnsundefinedqwen/modelstudio/qwencloudnames) may be handled differently in newer versionsmodels.jsongenerated on v2026.4.11 is missingqwen3.6-plusfrom the bailian provider, even though it's defined inopenclaw.jsonEnvironment
Expected Behavior
Custom provider names should be fully supported, and models defined under them should be discoverable by the image tool, just like in v2026.4.8.