Skip to content

Bug: Image tool reports 'Unknown model' for all custom providers #70180

@Ezio0

Description

@Ezio0

Description

The image tool consistently returns Unknown model for any custom provider configured in models.json or openclaw.json. Only built-in providers (openai, anthropic, google) appear to work.

Environment

  • OpenClaw version: 2026.4.21 (f788c88)
  • OS: macOS 15.4 (arm64)
  • Node: v24.5.0

Steps to Reproduce

  1. Configure a custom provider (e.g., astroncodingplan, minimax-portal, volcengine-plan, bailian) with input: ["text", "image"] in models.json
  2. Set agents.defaults.imageModel.primary to a custom provider model (e.g., astroncodingplan/astron-code-latest)
  3. Send an image to the agent
  4. Observe the error: Unknown model: astroncodingplan/astron-code-latest

Expected Behavior

The image tool should resolve and use custom provider models just like the text chat model does.

Actual Behavior

All custom provider models return Unknown model. The logs show:

[media-understanding] image: failed (0/1) reason=Model does not support images
[tools] image failed: Unknown model: astroncodingplan/astron-code-latest
[tools] image failed: Unknown model: minimax-portal/MiniMax-M2.7-highspeed
[tools] image failed: Unknown model: volcengine-plan/doubao-seed-2.0-pro
[tools] image failed: Unknown model: bailian/kimi-k2.5
[tools] image failed: Unknown model: dashscope/qwen-vl-max

When the model name is specified without a provider prefix (e.g., astron-code-latest), it defaults to openai/ prefix:

[tools] image failed: Unknown model: openai/astron-code-latest

Additional Context

  • The same custom providers work correctly for text chat (model failover works)
  • Direct API calls to these providers with image input work fine (tested with Python)
  • zai/glm-5v-turbo is recognized but fails with connection timeout (separate issue)
  • The models.json file in ~/.openclaw/agents/main/agent/models.json contains all providers with correct input: ["text", "image"] configuration
  • Running openclaw configure generates the models.json file with the providers listed

Workaround

Using Python to call the provider API directly for image analysis, bypassing the OpenClaw image tool.

Metadata

Metadata

Assignees

No one assigned

    Labels

    clawsweeperTracked by ClawSweeper automationdedupe:childDuplicate issue/PR child in dedupe cluster

    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