openclaw - ✅(Solved) Fix [Bug]: openclaw status fails with "PlatformAdapter not registered" from bundled qqbot extension on CLI context [1 pull requests, 1 comments, 2 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#72465Fetched 2026-04-27 05:29:59
View on GitHub
Comments
1
Participants
2
Timeline
4
Reactions
0
Author
Participants
Timeline (top)
labeled ×2commented ×1cross-referenced ×1

Environment

OpenClaw version: 2026.4.24 (cbcfdf6) OS: Windows 11 (10.0.26200.8246) Node.js: installed via npm global Installation: npm install -g openclaw

Description Running openclaw status fails immediately with PlatformAdapter not registered. The error originates from the bundled qqbot extension located at dist/extensions/qqbot inside the core OpenClaw package — not from any user-installed plugin. The qqbot channel is not configured in openclaw.json and was never intentionally set up.

Steps to reproduce

Fresh install of OpenClaw: npm install -g openclaw Run setup: openclaw doctor Run: openclaw status Error occurs immediately

What was tried To rule out external plugin interference, the following steps were taken before identifying the root cause:

Uninstalled and reinstalled openclaw-qqbot external plugin — error persisted Full uninstall of OpenClaw and openclaw-qqbot via npm, deletion of ~/.openclaw directory, fresh reinstall — error persisted Manually deleted ~/.openclaw/plugin-runtime-deps/openclaw-unknown-b631a5d7216c — directory is recreated automatically on next run Confirmed openclaw.json has no reference to qqbot channel or plugin Ran openclaw config set channels.qqbot.enabled false — error persisted Confirmed the qqbot code being loaded comes from the bundled path: C:\Users\alene\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\qqbot

Root cause (suspected) The bundled qqbot extension is being picked up by the CLI's channel inspection pipeline during openclaw status, even though the channel is not configured. The PlatformAdapter is only registered during the Gateway bootstrap lifecycle, not during CLI execution. When the CLI calls resolveQQBotAccount → getPlatformAdapter, the registry is empty and throws. This appears to be the same class of issue described in #63681 (missing provider registration in CLI context vs Gateway context), but affecting the bundled qqbot channel adapter specifically.

Stack trace [openclaw] Failed to start CLI: Error: PlatformAdapter not registered. Call registerPlatformAdapter() during bootstrap. at getPlatformAdapter (file:///C:/Users/alene/.openclaw/plugin-runtime-deps/openclaw-unknown-b631a5d7216c/dist/extensions/qqbot/adapter-DfD2SNGz.js:27:23) at resolveQQBotAccount (file:///C:/Users/alene/.openclaw/plugin-runtime-deps/openclaw-unknown-b631a5d7216c/dist/extensions/qqbot/config--Jdei9fe.js:186:18) at Object.resolveAccount (C:/Users/alene/.openclaw/plugin-runtime-deps/openclaw-unknown-b631a5d7216c/dist/extensions/qqbot/config-schema-BWBETfXL.js:82:60) at resolveInspectedChannelAccount (file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/account-inspection-DNYM3Edk.js:55:75) at async buildChannelSummary (file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/channel-summary-D_OT7Khq.js:71:45) at async getStatusSummary (file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/status.summary-C01SEF7j.js:91:47) at async resolveStatusSummaryFromOverview (file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/status.scan-overview-BFaVn9cA.js:372:9) at async Promise.all (index 1) at async executeStatusScanFromOverview (file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/status.scan.fast-json-CKAw6--s.js:39:28) at async file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/status.scan-JI_06N2T.js:47:18

Expected behavior openclaw status should either skip channel inspection for channels not configured in openclaw.json, or the CLI pipeline should register the PlatformAdapter before attempting to resolve channel accounts.

Additional context The plugin-runtime-deps directory contains a folder named openclaw-unknown-b631a5d7216c with the following .openclaw-runtime-deps.json: json{ "specs": [ "@tencent-connect/qqbot-connector@^1.1.0", "mpg123-decoder@^1.0.3", "silk-wasm@^3.7.1", "ws@^8.20.0", "zod@^4.3.6" ] } This directory is recreated automatically on every run, suggesting the bundled qqbot is being initialized regardless of configuration.

Error Message

Running openclaw status fails immediately with PlatformAdapter not registered. The error originates from the bundled qqbot extension located at dist/extensions/qqbot inside the core OpenClaw package — not from any user-installed plugin. The qqbot channel is not configured in openclaw.json and was never intentionally set up. Error occurs immediately Uninstalled and reinstalled openclaw-qqbot external plugin — error persisted Full uninstall of OpenClaw and openclaw-qqbot via npm, deletion of ~/.openclaw directory, fresh reinstall — error persisted Ran openclaw config set channels.qqbot.enabled false — error persisted [openclaw] Failed to start CLI: Error: PlatformAdapter not registered. Call registerPlatformAdapter() during bootstrap. Uninstalled and reinstalled openclaw-qqbot external plugin — error persisted Full uninstall of OpenClaw and openclaw-qqbot via npm, deletion of ~/.openclaw directory, fresh reinstall — error persisted Ran openclaw config set channels.qqbot.enabled false — error persisted

Root Cause

What was tried To rule out external plugin interference, the following steps were taken before identifying the root cause:

Fix Action

Fixed

PR fix notes

PR #72487: fix(qqbot): skip PlatformAdapter lookup in resolveQQBotAccount when adapter not registered (#72465)

Description (problem / solution / changelog)

Fixes #72465.

Summary

`openclaw status` walks every bundled channel through `resolveAccount`, including the bundled qqbot extension, even when the channel is not configured in `openclaw.json`. `resolveQQBotAccount` in `extensions/qqbot/src/bridge/config.ts` calls `getPlatformAdapter()` unconditionally, but the adapter is only registered via `bridge/bootstrap.ts` during Gateway startup — CLI surfaces never import bootstrap, so every status command on a fresh install crashes with:

``` [openclaw] Failed to start CLI: Error: PlatformAdapter not registered. Call registerPlatformAdapter() during bootstrap. ```

The reporter spent considerable time ruling this out as an external plugin issue (uninstalled openclaw-qqbot, deleted ~/.openclaw, fresh reinstall, `config set channels.qqbot.enabled false`) before tracing it to the bundled qqbot adapter being initialized regardless of configuration.

Fix

Guard the `getPlatformAdapter()` call with the existing `hasPlatformAdapter()` predicate (already exported from `extensions/qqbot/src/engine/adapter/index.ts` for exactly this kind of use case). When no adapter is registered, fall through to the existing `clientSecretFile` / `QQBOT_CLIENT_SECRET` env paths, which both work without the adapter — the result is an unconfigured account snapshot (`secretSource: "none"`) suitable for status display.

Also tightens the fallback chain so the env `else if` does not fire when `clientSecretFile` has already produced a `clientSecret`, matching the original control-flow intent now that the config branch is no longer the head of an `if/else if` chain.

Behavior

  • Gateway path (existing): `bridge/bootstrap.ts` side-effect registers the built-in adapter → `hasPlatformAdapter()` returns true → secret resolution runs as before.
  • CLI status path (new): bootstrap not imported → adapter not registered → adapter branch is skipped → falls through to `clientSecretFile` / env or returns an unconfigured account.

Tests

Existing 15/15 `extensions/qqbot/src/config.test.ts` tests pass with the new control flow. No new regression test added because exercising the "no adapter registered" path requires resetting the module-level adapter state, which would conflict with the side-effect registration in `bridge/bootstrap.ts`. The fix is structurally minimal and the adapter guard is self-documenting via the existing `hasPlatformAdapter()` predicate.

Changed files

  • CHANGELOG.md (modified, +1/-0)
  • extensions/qqbot/src/bridge/config.ts (modified, +25/-12)
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Environment

OpenClaw version: 2026.4.24 (cbcfdf6) OS: Windows 11 (10.0.26200.8246) Node.js: installed via npm global Installation: npm install -g openclaw

Description Running openclaw status fails immediately with PlatformAdapter not registered. The error originates from the bundled qqbot extension located at dist/extensions/qqbot inside the core OpenClaw package — not from any user-installed plugin. The qqbot channel is not configured in openclaw.json and was never intentionally set up.

Steps to reproduce

Fresh install of OpenClaw: npm install -g openclaw Run setup: openclaw doctor Run: openclaw status Error occurs immediately

What was tried To rule out external plugin interference, the following steps were taken before identifying the root cause:

Uninstalled and reinstalled openclaw-qqbot external plugin — error persisted Full uninstall of OpenClaw and openclaw-qqbot via npm, deletion of ~/.openclaw directory, fresh reinstall — error persisted Manually deleted ~/.openclaw/plugin-runtime-deps/openclaw-unknown-b631a5d7216c — directory is recreated automatically on next run Confirmed openclaw.json has no reference to qqbot channel or plugin Ran openclaw config set channels.qqbot.enabled false — error persisted Confirmed the qqbot code being loaded comes from the bundled path: C:\Users\alene\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\qqbot

Root cause (suspected) The bundled qqbot extension is being picked up by the CLI's channel inspection pipeline during openclaw status, even though the channel is not configured. The PlatformAdapter is only registered during the Gateway bootstrap lifecycle, not during CLI execution. When the CLI calls resolveQQBotAccount → getPlatformAdapter, the registry is empty and throws. This appears to be the same class of issue described in #63681 (missing provider registration in CLI context vs Gateway context), but affecting the bundled qqbot channel adapter specifically.

Stack trace [openclaw] Failed to start CLI: Error: PlatformAdapter not registered. Call registerPlatformAdapter() during bootstrap. at getPlatformAdapter (file:///C:/Users/alene/.openclaw/plugin-runtime-deps/openclaw-unknown-b631a5d7216c/dist/extensions/qqbot/adapter-DfD2SNGz.js:27:23) at resolveQQBotAccount (file:///C:/Users/alene/.openclaw/plugin-runtime-deps/openclaw-unknown-b631a5d7216c/dist/extensions/qqbot/config--Jdei9fe.js:186:18) at Object.resolveAccount (C:/Users/alene/.openclaw/plugin-runtime-deps/openclaw-unknown-b631a5d7216c/dist/extensions/qqbot/config-schema-BWBETfXL.js:82:60) at resolveInspectedChannelAccount (file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/account-inspection-DNYM3Edk.js:55:75) at async buildChannelSummary (file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/channel-summary-D_OT7Khq.js:71:45) at async getStatusSummary (file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/status.summary-C01SEF7j.js:91:47) at async resolveStatusSummaryFromOverview (file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/status.scan-overview-BFaVn9cA.js:372:9) at async Promise.all (index 1) at async executeStatusScanFromOverview (file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/status.scan.fast-json-CKAw6--s.js:39:28) at async file:///C:/Users/alene/AppData/Roaming/npm/node_modules/openclaw/dist/status.scan-JI_06N2T.js:47:18

Expected behavior openclaw status should either skip channel inspection for channels not configured in openclaw.json, or the CLI pipeline should register the PlatformAdapter before attempting to resolve channel accounts.

Additional context The plugin-runtime-deps directory contains a folder named openclaw-unknown-b631a5d7216c with the following .openclaw-runtime-deps.json: json{ "specs": [ "@tencent-connect/qqbot-connector@^1.1.0", "mpg123-decoder@^1.0.3", "silk-wasm@^3.7.1", "ws@^8.20.0", "zod@^4.3.6" ] } This directory is recreated automatically on every run, suggesting the bundled qqbot is being initialized regardless of configuration.

Steps to reproduce

What was tried To rule out external plugin interference, the following steps were taken before identifying the root cause:

Uninstalled and reinstalled openclaw-qqbot external plugin — error persisted Full uninstall of OpenClaw and openclaw-qqbot via npm, deletion of ~/.openclaw directory, fresh reinstall — error persisted Manually deleted ~/.openclaw/plugin-runtime-deps/openclaw-unknown-b631a5d7216c — directory is recreated automatically on next run Confirmed openclaw.json has no reference to qqbot channel or plugin Ran openclaw config set channels.qqbot.enabled false — error persisted Confirmed the qqbot code being loaded comes from the bundled path: C:\Users\alene\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\qqbot

Expected behavior

NOT_ENOUGH_INFO

Actual behavior

NOT_ENOUGH_INFO

OpenClaw version

OpenClaw version: 2026.4.24 (cbcfdf6)

Operating system

Windows 11 (10.0.26200.8246)

Install method

npm global

Model

anthropic/claude sonnet 4.6

Provider / routing chain

openclaw

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

No response

extent analysis

TL;DR

The issue can likely be fixed by modifying the OpenClaw code to skip channel inspection for unconfigured channels or by registering the PlatformAdapter before resolving channel accounts.

Guidance

  • Review the OpenClaw code to identify where the qqbot channel is being initialized and loaded, even when not configured in openclaw.json.
  • Investigate the resolveQQBotAccount function to understand why it's attempting to get the PlatformAdapter without it being registered.
  • Consider adding a check to skip channel inspection for channels not configured in openclaw.json to prevent this error.
  • Look into registering the PlatformAdapter during the CLI execution, similar to how it's done during the Gateway bootstrap lifecycle.

Example

No code example is provided due to the complexity of the issue and the need for a thorough review of the OpenClaw codebase.

Notes

The issue seems to be related to the bundled qqbot extension being loaded and attempting to resolve the PlatformAdapter without it being registered. The provided stack trace and code paths suggest that the issue is specific to the qqbot channel adapter.

Recommendation

Apply a workaround by modifying the OpenClaw code to skip channel inspection for unconfigured channels or register the PlatformAdapter before resolving channel accounts, as this is a regression issue that worked before and the root cause is suspected to be related to the missing provider registration in the CLI context.

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…

FAQ

Expected behavior

NOT_ENOUGH_INFO

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING