Skip to content

[bug] video generate crashes with "undefined is not an object (evaluating 'Dispatcher.prototype.compose.call')" #263

Closed

Description

@jonytp

Environment

  • CLI: bl 2.3.1 (Bun-compiled single-file exe at %LOCALAPPDATA%\bailian-cli\bin\bl.exe)
  • Skill: bailian-protocol / bailian-gen 2.3.1
  • Node: v22.23.2 (not used by the compiled exe)
  • OS: Windows 11 Home 10.0.26300 (Git Bash)
  • Region: intl (Token Plan profile, base_url https://token-plan.ap-southeast-1.maas.aliyuncs.com)

Reproduce

bl video generate --prompt "A cute orange cartoon cat runs to the right, jumps, then walks and turns around..." \
  --duration 10 --resolution 720P --ratio 16:9 --watermark false --download cat_walk_cycle.mp4 --verbose

--verbose prints:

> POST https://token-plan.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
> Auth: [REDACTED]
> x-dashscope-source-config: {"channel":"bailian-cli","tags":{"t1":"public","t2":"bl","t3":"2.3.1"}}

Error:       undefined is not an object (evaluating 'Dispatcher.prototype.compose.call')

Expected

Async task submitted, polled until SUCCEEDED, video downloaded to cat_walk_cycle.mp4.

Actual

Immediate crash (exit 1) with a JavaScriptCore-style internal error mentioning Dispatcher.prototype.compose.call (undici internals). No HTTP status, no request id, no BailianError.

Already tried

  • bl 2.3.1 == skill 2.3.1 == npm latest 2.3.1 (no version skew)
  • bl auth status healthy (API key present); bl model list (public GET path) works fine
  • Retried with simplified prompt and --verbose — identical crash
  • Same request via plain HTTPS POST works: identical body/headers sent with curl/fetch to the same endpoint returned HTTP 200 with output.task_id (PENDING) — i.e. the API is fine, only bl fails. Successful request ids for log tracing: a99f738b-2712-4c5b-9d02-3612a40b6622 (task 217d2397-…), 915004b5-5b88-4f21-ba7f-e1ded07811c8 (task e2c31ae1-4310-4deb-a53c-79bce17467da, SUCCEEDED)
  • No proxy env vars set
  • Error message matches the known signature of a bundled-undici bug (calling a native method's .call off the prototype fails under JSC)

Notes

  • Frequency: always (2/2 attempts, both with and without --negative-prompt)
  • Invoked via: agent (Claude Code, non-TTY bash)
  • Other POST-based commands (e.g. bl text chat) not tested for this bug

Activity

  1. prcuzz commented on Oct 17, 2026

    @prcuzz

    Additional data point (same crash, wider scope + regression info):

    • Environment: bl 2.3.1 on Windows 10 (19045) x86_64, Git Bash (MINGW64). Installed via standalone binary channel (no Node/npm on this machine). Reached 2.3.1 through the built-in auto-updater from 1.27.0.
    • Scope: not only video generate — EVERY HTTP request crashes, including the cheapest read-only call:
    bl video task get --task-id 00000000-0000-0000-0000-000000000000 --verbose
    # > GET https://<profile endpoint>/api/v1/tasks/00000000-0000-0000-0000-000000000000
    # > Auth: [REDACTED]
    # Error:       undefined is not an object (evaluating 'Dispatcher.prototype.compose.call')
    # exit code 1
    • With --output json the crash emits NO JSON at all (plain Error: line only), which also breaks agent/CI integrations that parse stdout.
    • Regression confirmed on the same machine: the 1.27.0 binary (still present under versions/1.27.0/) performs the identical request and receives a normal HTTP response. The crash began exactly at the 1.27.0 → 2.3.1 auto-update.
    • No proxy env vars set (HTTP_PROXY/HTTPS_PROXY/ALL_PROXY all unset); explicitly unsetting them changes nothing.
    • Corroborates the earlier comment that curl works: raw curl to the same endpoint succeeds from this machine.
    • Local workaround in use: invoke the old binary directly (versions/1.27.0/bl.exe) for all network commands.

    Request IDs observed on the working 1.27.0 path for comparison: e0f450b7-23a2-9bea-93b9-6763b7539b22 (200 OK).


    Attribution: automatically drafted and submitted by the agentic assistant (model: qwen3.8-max) of Qoder CN Desktop v0.4.3 (build 0.4.3.0) on behalf of the account owner, who reviewed and approved the content before submission.

  2. LiHeng2015 commented on Oct 18, 2026

    @LiHeng2015

    补充复现数据:2.3.1 Windows 二进制同样必现,且 2.3.0 二进制与 npm 版 2.3.1 均正常,疑似 2.3.1 二进制打包回归。

    Environment

    • CLI: bl 2.3.1(Windows 二进制 bl-2.3.1-windows-x64.exe,sha256 40a807cf88f9a835528fb64b309e0f37e5a50d61141e78a53dc4fa4a20639a05,与官方 SHA256SUMS 一致)
    • Skill: 2.3.1(版本已对齐);OS: Windows 10.0.19045 x64(Git Bash、非 TTY);Region: cn(cn-beijing,无 HTTP(S)_PROXY)

    Repro

    bl text chat --message "hi" --verbose   # API Key 已登录(bl auth status 正常)

    请求发出后立即崩溃(HTTP dispatch 阶段):

    > POST https://llm-<workspace>.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions
    > Auth: [REDACTED]
    > x-dashscope-source-config: {"channel":"bailian-cli","tags":{"t1":"public","t2":"bl","t3":"2.3.1"}}
    
    Error:       undefined is not an object (evaluating 'Dispatcher.prototype.compose.call')
    Exit code:   1
    
    • --api responses、显式 --base-url https://dashscope.aliyuncs.com 均同样崩溃(与 endpoint / API 形态无关)
    • --dry-run 正常;console 网关命令(如 bl usage free)正常 → 仅「模型调用」执行路径崩溃

    对照实验(同机同配置)

    运行形态 结果
    2.3.1 Windows 二进制 必崩
    2.3.0 Windows 二进制(官方 CDN,sha256 一致) 正常
    npm 版 2.3.1(Node v24.0.0 运行 dist/bailian.mjs) 正常

    频率:always。倾向结论:2.3.1 二进制内嵌 JS 运行时下 Dispatcher.prototype.compose 缺失(打包/回归问题)。

    本条补充数据由 AI Agent 代为整理(Qoder Desktop),账号持有人确认后提交。

  3. zizhuauto commented on Oct 19, 2026

    @zizhuauto

    Additional reproduction: speech synthesis also hits the same CLI-internal error.

    Environment

    • CLI: bl 2.3.2
    • Skill: bailian-protocol / bailian-gen 2.3.2
    • Node: v24.20.0
    • OS: macOS 15.6.1
    • Region: cn-beijing

    Reproduce

    bl speech synthesize --text-file <script> --model cosyvoice-v3-flash \
      --voice longxiaoxia_v3 --language zh --format mp3 --out <output> \
      --verbose --output json

    Actual

    Exit code 1 with:

    Error: undefined is not an object (evaluating 'Dispatcher.prototype.compose.call')
    

    The same error reproduces with a short Chinese text and with qwen-audio-3.0-tts-plus / longanlingxin. bl auth status is healthy. No API key or user script content is included here.

  4. XXPermanentXX commented on Oct 19, 2026

    @XXPermanentXX
    Collaborator

    The binary runtime compatibility issue causing the Dispatcher.prototype.compose.call error has been fixed in v2.3.3.
    Please upgrade with bl update, confirm the version with bl --version, and retry your original video generation or model API command.
    If the issue persists, please share the updated CLI version, installation method, and redacted error output so we can investigate further. Thanks for reporting!

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