Skip to content

[bug] vision describe: default base URL is the Coding Plan endpoint → HTTP 404 for all VL/OCR models #241

Open

Description

@shaolin-cloud

Environment

  • CLI: bl 2.1.0
  • Skill: 2.1.0
  • Node: v22.23.3
  • OS: Linux 5.15.0-198-generic x86_64 (Ubuntu)
  • Region: cn (domestic)

Reproduce

bl vision describe without an explicit --base-url posts to
https://coding.dashscope.aliyuncs.com/compatible-mode/v1/chat/completions,
which does not serve VL/OCR models, so the request always 404s.

# fails
bl vision describe --image ./test.png --model qwen3.5-ocr --prompt "Output the text" --verbose

# identical command + explicit public endpoint succeeds
bl vision describe --image ./test.png --model qwen3.5-ocr --prompt "Output the text" \
  --base-url https://dashscope.aliyuncs.com

Expected

bl vision describe should resolve its endpoint the same way other API-key
commands do (--base-url → DASHSCOPE_BASE_URL → selected profile base_url),
or fall back to a public DashScope endpoint that actually serves VL models.

Actual

Every call without --base-url fails with HTTP 404, for every model tried
(qwen3.5-ocr, qwen-vl-ocr, qwen3-vl-plus). The same command with
--base-url https://dashscope.aliyuncs.com exits 0 and returns correct OCR text.

The configured profile's base_url is a private workspace endpoint
([REDACTED_URL]), and vision does not use that either — so neither the
profile setting nor a working default is applied.

Full output

> POST https://coding.dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
> x-dashscope-source-config: {"channel":"bailian-cli","tags":{"t1":"public","t2":"bl","t3":"2.1.0"}}
< 404 Not Found

Error:       HTTP 404
Status:      HTTP 404
Exit code:   1

JSON error

{
  "error": {
    "code": 1,
    "message": "HTTP 404",
    "http_status": 404
  }
}

Already tried

  • bl update to 2.1.0; skill version aligned with the CLI
  • bl auth status healthy (API key + console gateway configured)
  • Reproduces on every call (100%), on several models, and also on a plain
    320×90 test image with no document content
  • --base-url https://dashscope.aliyuncs.com works every time

Notes

  • Frequency: always
  • Invoked via: terminal and agent (DeepSeek Harness)
  • Impact: the error carries no hint about the endpoint, so it reads like a model
    or auth problem. Users cannot self-diagnose without --verbose, and the
    documented bl model search catalog lists these models as available. This
    breaks the entire VL/OCR surface of the CLI for anyone who does not pass
    --base-url explicitly.

Activity

  1. hopelynd commented on Oct 12, 2026

    @hopelynd
    Collaborator

    Thanks for the report. bl vision describe uses the same base URL resolution as other API-key commands:

    --base-url → DASHSCOPE_BASE_URL → the selected profile's base_url → https://dashscope.aliyuncs.com

    There is no separate default for this command. The host in your --verbose log is the base URL this invocation actually resolved. A profile base_url is not used when DASHSCOPE_BASE_URL is set, because the environment variable has higher priority. Passing --base-url overrides both, which is why that form of the command succeeds.

    Please check the resolved value:

    echo "$DASHSCOPE_BASE_URL"
    bl config show
    bl auth status

    If DASHSCOPE_BASE_URL is set, unset it or point it at the endpoint you want this command to call. Otherwise, confirm that the active profile's base_url is the workspace endpoint you expect.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions