openclaw - ✅(Solved) Fix [Bug]: openclaw-weixin channel plugin missing channelConfigs metadata causes duplicate startup warnings [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#76095Fetched 2026-05-03 04:42:30
View on GitHub
Comments
1
Participants
2
Timeline
9
Reactions
2
Timeline (top)
referenced ×3commented ×1cross-referenced ×1labeled ×1

Every gateway restart shows two identical warnings about openclaw-weixin missing channelConfigs metadata, even when the plugin is disabled.

Root Cause

Every gateway restart shows two identical warnings about openclaw-weixin missing channelConfigs metadata, even when the plugin is disabled.

Fix Action

Fixed

PR fix notes

PR #76110: fix(plugins): suppress duplicate and disabled-plugin channelConfigs warnings

Description (problem / solution / changelog)

Fixes #76095

Problem

Two regressions in the channelConfigs missing-descriptor diagnostic:

  1. Warning fires even when the plugin is explicitly disabledpushNonBundledChannelConfigDescriptorDiagnostic runs during manifest registry construction, before the enabled state is consulted. If plugins.entries.<id>.enabled = false, the warning is noise.

  2. Warning fires twice for same-path duplicates — when two candidates resolve to the same physical directory (e.g. bundled + global pointing to the same install), the first occurrence is pushed at the main path (new plugin added to registry), and then pushed again in the samePlugin higher-precedence replacement path. Same manifest → identical diagnostic, emitted twice.

Fix

  • pushNonBundledChannelConfigDescriptorDiagnostic now accepts normalized?: NormalizedPluginsConfig and returns early when normalized.entries[id]?.enabled === false.
  • Removed the redundant pushManifestCompatibilityDiagnostics call in the samePlugin path — diagnostics were already emitted for the first occurrence.
  • normalized is threaded through pushManifestCompatibilityDiagnostics at all call sites.

Tests

Two new tests in manifest-registry.test.ts:

  • suppresses channelConfigs warning for explicitly disabled plugins
  • emits channelConfigs warning exactly once for a same-path duplicate

48/48 plugin registry tests pass. oxlint clean.

🤖 Generated with Claude Code

Changed files

  • CHANGELOG.md (modified, +1/-0)
  • src/plugins/manifest-registry-installed.test.ts (modified, +51/-0)
  • src/plugins/manifest-registry-installed.ts (modified, +17/-6)
  • src/plugins/manifest-registry.test.ts (modified, +49/-0)
  • src/plugins/manifest-registry.ts (modified, +30/-8)

Code Example

Config warnings:
- plugins.entries.openclaw-weixin: plugin openclaw-weixin: channel plugin manifest declares openclaw-weixin without channelConfigs metadata; add openclaw.plugin.json#channelConfigs so config schema and setup surfaces work before runtime loads
- plugins.entries.openclaw-weixin: plugin openclaw-weixin: channel plugin manifest declares openclaw-weixin without channelConfigs metadata; add openclaw.plugin.json#channelConfigs so config schema and setup surfaces work before runtime loads
RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Every gateway restart shows two identical warnings about openclaw-weixin missing channelConfigs metadata, even when the plugin is disabled.

Steps to reproduce

  1. Install OpenClaw 2026.4.29
  2. Set plugins.entries.openclaw-weixin.enabled = false in openclaw.json
  3. Remove openclaw-weixin from plugins.allow in openclaw.json
  4. Run: openclaw gateway restart
  5. Observe startup output

Expected behavior

No warnings about openclaw-weixin should appear when the plugin is disabled and removed from plugins.allow.

If the warning is necessary, it should appear only once, not twice.

Actual behavior

Two identical warnings appear on every gateway restart regardless of plugin enabled state:

plugin openclaw-weixin: channel plugin manifest declares openclaw-weixin without channelConfigs metadata; add openclaw.plugin.json#channelConfigs so config schema and setup surfaces work before runtime loads

OpenClaw version

2026.4.29 (be8c246)

Operating system

macOS 26.3.1 (arm64)

Install method

npm global

Model

minimax/MiniMax-M2.7

Provider / routing chain

openclaw -> minimax/MiniMax-M2.7 (direct API, no gateway proxy)

Additional provider/model setup details

Using MiniMax-M2.7 via api.minimaxi.com with Anthropic-compatible endpoint. openclaw-weixin plugin is disabled in plugins.entries and removed from plugins.allow.

Logs, screenshots, and evidence

Config warnings:
- plugins.entries.openclaw-weixin: plugin openclaw-weixin: channel plugin manifest declares openclaw-weixin without channelConfigs metadata; add openclaw.plugin.json#channelConfigs so config schema and setup surfaces work before runtime loads
- plugins.entries.openclaw-weixin: plugin openclaw-weixin: channel plugin manifest declares openclaw-weixin without channelConfigs metadata; add openclaw.plugin.json#channelConfigs so config schema and setup surfaces work before runtime loads

Impact and severity

Low severity - cosmetic issue only. The duplicate warnings appear on every gateway restart but do not affect functionality. The plugin is disabled and all features work normally. However, the noise makes it harder to spot real configuration issues in startup output.

Additional information

The warning persists even after:

  • Setting plugins.entries.openclaw-weixin.enabled = false
  • Removing openclaw-weixin from plugins.allow
  • Removing openclaw-weixin from plugins.entries entirely

The warning appears to be triggered at config validation time before the plugin enabled state is checked, suggesting the channelConfigs metadata check runs unconditionally on all registered channel plugins.

Node: v24.15.0

extent analysis

TL;DR

The issue can be mitigated by modifying the plugin registration or config validation logic to account for disabled plugins.

Guidance

  • Review the OpenClaw plugin registration process to ensure that disabled plugins are not subjected to config validation.
  • Investigate the possibility of adding a conditional check for plugin enabled state before performing channelConfigs metadata validation.
  • Consider modifying the openclaw.plugin.json file for the openclaw-weixin plugin to include a placeholder or default channelConfigs entry to satisfy the validation check.
  • Verify that the warning is indeed cosmetic and does not affect the functionality of the gateway or other plugins.

Example

No code snippet is provided as the issue is related to the OpenClaw plugin architecture and configuration.

Notes

The issue appears to be related to the OpenClaw plugin validation logic, which runs unconditionally on all registered channel plugins, including disabled ones. The solution may require modifications to the OpenClaw core code or the plugin registration process.

Recommendation

Apply workaround: Modify the plugin registration or config validation logic to account for disabled plugins, as the issue is cosmetic and does not affect functionality.

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

No warnings about openclaw-weixin should appear when the plugin is disabled and removed from plugins.allow.

If the warning is necessary, it should appear only once, not twice.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING