openclaw - 💡(How to fix) Fix 🔴 [CONFIRMED BUG] WebUI image attachments dropped — Built-in Qwen plugin filters qwen3.6-plus on Coding Plan baseUrl + custom provider key mismatch [1 comments, 1 participants]

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…
GitHub stats
openclaw/openclaw#69989Fetched 2026-04-23 07:30:40
View on GitHub
Comments
1
Participants
1
Timeline
3
Reactions
0
Participants
Timeline (top)
closed ×1commented ×1renamed ×1

Error Message

13:01:01 WARN parseMessageWithAttachments: 2 attachment(s) dropped — model does not support images 12:21:16 WARN media-understanding: image: failed (0/1) reason=Unknown model

Root Cause

Root cause hypothesis: The modelEntry lookup fails for WebUI sessions because:

Fix Action

Workaround

Use Telegram channel for image uploads — works correctly with the same model configuration.


Code Example

{
  "id": "qwen3.6-plus",
  "name": "qwen3.6-plus",
  "input": ["text", "image"],
  "contextWindow": 1000000,
  "maxTokens": 65536
}

---

12:58:47 INFO  agent model: alibailian/qwen3.6-plus
12:58:47 INFO  ready (9 plugins: acpx, active-memory, browser, device-pair, memory-core, memory-wiki, phone-control, talk-voice, telegram; 21.2s)

---

13:01:01 WARN  parseMessageWithAttachments: 2 attachment(s) dropped — model does not support images

---

12:21:16 WARN  media-understanding: image: failed (0/1) reason=Unknown model

---

async function resolveGatewayModelSupportsImages(params) {
    if (!params.model) return true;
    try {
        const modelEntry = (await params.loadGatewayModelCatalog())
            .find((entry) => entry.id === params.model && 
                            (!params.provider || entry.provider === params.provider));
        if (modelEntry) {
            if (modelEntry.input?.includes("image")) return true;
            return false;
        }
        return false;  // Falls through here
    } catch {
        return false;
    }
}

---

Model: alibailian/qwen3.6-plus
Context: 109k/1.0m (11%)
Compactions: 0
Runtime: direct
RAW_BUFFERClick to expand / collapse

Bug Description

WebUI (Control UI) image attachments are silently dropped with the warning parseMessageWithAttachments: X attachment(s) dropped — model does not support images, even when the configured model explicitly declares vision support (input: ["text", "image"]).

The same model works correctly via Telegram channel. This indicates the issue is specific to WebUI attachment handling, not model configuration.


Environment

FieldValue
OpenClaw2026.4.21 (f788c88)
OSWindows 11 10.0.26200 (x64)
Nodev25.9.0
Modelalibailian/qwen3.6-plus
Provideralibailian (Alibaba DashScope Coding Plan)
APIopenai-completions
WebUIControl UI (webchat)

Model Configuration

{
  "id": "qwen3.6-plus",
  "name": "qwen3.6-plus",
  "input": ["text", "image"],
  "contextWindow": 1000000,
  "maxTokens": 65536
}

This model is officially confirmed to support visual understanding by the provider (Alibaba Coding Plan).


Reproduction Steps

  1. Configure a vision-capable model (alibailian/qwen3.6-plus) with input: ["text", "image"]
  2. Restart Gateway to ensure model catalog is loaded
  3. Open Control UI (WebUI) in browser
  4. Upload 2 images (1 PNG, 1 JPG) via the chat interface
  5. Observe: Images are dropped, no visual analysis occurs

Expected Behavior

WebUI should accept and forward image attachments to the vision-capable model for analysis, same as Telegram channel.


Actual Behavior

  • WebUI: Images are dropped with warning parseMessageWithAttachments: 2 attachment(s) dropped — model does not support images
  • Telegram: Same model, same config, same images — works correctly

Evidence / Logs

1. Gateway startup confirms model loaded

12:58:47 INFO  agent model: alibailian/qwen3.6-plus
12:58:47 INFO  ready (9 plugins: acpx, active-memory, browser, device-pair, memory-core, memory-wiki, phone-control, talk-voice, telegram; 21.2s)

2. WebUI image upload FAILS

13:01:01 WARN  parseMessageWithAttachments: 2 attachment(s) dropped — model does not support images

3. Media understanding subsystem also fails

12:21:16 WARN  media-understanding: image: failed (0/1) reason=Unknown model

4. Telegram channel WORKS (same model, same session)

  • Telegram image sent at 12:21 — successfully analyzed
  • Model correctly identified as vision-capable via Telegram

Code Analysis

The bug appears to be in resolveGatewayModelSupportsImages() (session-utils-CIR-C-as.js):

async function resolveGatewayModelSupportsImages(params) {
    if (!params.model) return true;
    try {
        const modelEntry = (await params.loadGatewayModelCatalog())
            .find((entry) => entry.id === params.model && 
                            (!params.provider || entry.provider === params.provider));
        if (modelEntry) {
            if (modelEntry.input?.includes("image")) return true;
            return false;
        }
        return false;  // Falls through here
    } catch {
        return false;
    }
}

Root cause hypothesis: The modelEntry lookup fails for WebUI sessions because:

  1. params.provider format differs between WebUI and Telegram channels
  2. loadGatewayModelCatalog() does not include custom provider models (only pi-coding-agent built-in models)
  3. The entry.id / entry.provider values in the model catalog do not match the WebUI resolved model ref

Supporting evidence: media-understanding logs Unknown model for qwen3.6-plus, confirming the model catalog lookup returns undefined.


Workaround

Use Telegram channel for image uploads — works correctly with the same model configuration.


Additional Context

  • Gateway restart does NOT fix the issue
  • Config hot-reload does NOT fix the issue
  • Telegram channel works correctly (proves model config is valid)
  • Issue is 100% reproducible on WebUI

Session Status (at time of report)

Model: alibailian/qwen3.6-plus
Context: 109k/1.0m (11%)
Compactions: 0
Runtime: direct

extent analysis

TL;DR

The issue can be fixed by modifying the resolveGatewayModelSupportsImages() function to correctly handle the model catalog lookup for WebUI sessions.

Guidance

  • Verify that the params.provider format is consistent between WebUI and Telegram channels to ensure correct model lookup.
  • Check the loadGatewayModelCatalog() function to ensure it includes custom provider models, not just built-in models.
  • Confirm that the entry.id and entry.provider values in the model catalog match the WebUI resolved model reference.
  • Consider adding error handling to the resolveGatewayModelSupportsImages() function to provide more informative error messages.

Example

async function resolveGatewayModelSupportsImages(params) {
    if (!params.model) return true;
    try {
        const modelEntry = (await params.loadGatewayModelCatalog())
            .find((entry) => entry.id === params.model && 
                            (!params.provider || entry.provider === params.provider));
        if (modelEntry) {
            if (modelEntry.input?.includes("image")) return true;
            return false;
        }
        console.error(`Model not found in catalog: ${params.model}`);
        return false;  
    } catch (error) {
        console.error(`Error resolving model support: ${error}`);
        return false;
    }
}

Notes

The provided code analysis suggests that the issue lies in the resolveGatewayModelSupportsImages() function, but further investigation is needed to confirm the root cause. The workaround using the Telegram channel indicates that the model configuration is valid, and the issue is specific to the WebUI attachment handling.

Recommendation

Apply a workaround by using the Telegram channel for image uploads until the root cause is identified and fixed. This ensures that image analysis is not disrupted while the issue is being investigated.

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 🔴 [CONFIRMED BUG] WebUI image attachments dropped — Built-in Qwen plugin filters qwen3.6-plus on Coding Plan baseUrl + custom provider key mismatch [1 comments, 1 participants]