Environment
OpenClaw 2026.4.24 (cbcfdf6)
Node.js v22.22.2
Debian 12 (bookworm), Linux 6.18.5 x86_64
Deployment: Railway container
Description
Running openclaw models list --all --json hangs indefinitely with no output and no error. The process must be SIGKILL'd. The same hang occurs with --all alone (without --json) and with no flags at all. Reproducible on two separate instances (MacBook M4 local + Railway container).
Steps to Reproduce
Run openclaw models list --all --json
Wait β no output is produced
Process never exits; must be killed with SIGKILL
Observed Behavior
openclaw models list --all outputs a byteplus plugin load error before hanging:[plugins] byteplus failed to load from /app/node_modules/openclaw/dist/extensions/byteplus/index.js: Error: Cannot find module '/data/.openclaw/plugin-runtime-deps/openclaw-2026.4.24-c23859786bf7/dist/extensions/byteplus/index.js'
byteplus is not in the plugins.allow list β it appears to be loaded regardless when --all scans all providers
The plugin-runtime-deps directory exists with ~60+ extension subdirs, but byteplus's nested require path fails
All three variants (--all --json, --all, and bare models list) hang, suggesting the issue may be broader than just byteplus
Expected Behavior
Command should list available models (with or without --all/--json flags) and exit cleanly. Plugin load failures for non-enabled providers should be non-fatal warnings, not blockers.
Additional Context
First observed 2026-04-27 on a separate local instance, which subsequently crashed (AlphaClaw restart β SIGKILL loop)
Plugin config only allows: slack, usage-tracker, diagnostics-otel, openrouter, anthropic, openai, memory-core, zai
The --all flag appears to force-load all provider extensions regardless of the allow list, and at least one (byteplus) has a broken dependency chain
Possible Root Cause
--all iterates over every built-in provider extension to enumerate models. The byteplus extension has an unresolvable require path in plugin-runtime-deps, and the error handling may not properly continue past it β causing the command to hang instead of skipping the failed provider.