openclaw - ✅(Solved) Fix [Bug]: Feishu bundled plugin fails to load: missing register/activate export (plugin uses defineBundledChannelEntry but loader expects register/activate) [1 pull requests, 4 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#62277Fetched 2026-04-08 03:06:49
View on GitHub
Comments
4
Participants
2
Timeline
7
Reactions
0
Timeline (top)
commented ×4labeled ×2cross-referenced ×1

Feishu bundled plugin fails to load with "missing register/activate export" error because the plugin exports only a default export via defineBundledChannelEntry, but the plugin loader expects a register or activate named export.

Error Message

[plugins] feishu missing register/activate export PluginLoadFailureError: plugin load failed: feishu: plugin export missing register/activate

Confirmed via: tail -20 /opt/homebrew/lib/node_modules/openclaw/dist/extensions/feishu/index.js Last line: export { feishu_default as default } No register or activate export found in the compiled output.

Plugin uses defineBundledChannelEntry() format but loader expects register/activate named exports.

Root Cause

Feishu bundled plugin fails to load with "missing register/activate export" error because the plugin exports only a default export via defineBundledChannelEntry, but the plugin loader expects a register or activate named export.

Fix Action

Fixed

PR fix notes

PR #62361: fix(plugins): handle nested default export wrappers in loader

Description (problem / solution / changelog)

Summary

  • make plugin module export resolution unwrap nested default wrappers
  • apply the same unwrapping for setup-channel registration resolution
  • add regression coverage for a plugin exported as default.default

Why

Some bundled/transpiled plugin entrypoints can be wrapped in multiple default layers. The previous loader logic only unwrapped one layer, which could incorrectly surface plugin export missing register/activate.

Fixes #62277

Validation

  • corepack pnpm vitest src/plugins/plugin-graceful-init-failure.test.ts

Changed files

  • src/plugins/loader.test.ts (modified, +55/-0)
  • src/plugins/loader.ts (modified, +77/-12)
  • src/plugins/plugin-graceful-init-failure.test.ts (modified, +94/-0)

Code Example

[plugins] feishu missing register/activate export
PluginLoadFailureError: plugin load failed: feishu: plugin export missing register/activate

Confirmed via: tail -20 /opt/homebrew/lib/node_modules/openclaw/dist/extensions/feishu/index.js
Last line: export { feishu_default as default }
No register or activate export found in the compiled output.

Plugin uses defineBundledChannelEntry() format but loader expects register/activate named exports.
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Feishu bundled plugin fails to load with "missing register/activate export" error because the plugin exports only a default export via defineBundledChannelEntry, but the plugin loader expects a register or activate named export.

Steps to reproduce

  1. Install OpenClaw 2026.4.5 (fresh or upgraded from 2026.4.2)
  2. Enable feishu plugin: openclaw config set plugins.entries.feishu.enabled true
  3. Run any CLI command: openclaw configure
  4. Observe error: [plugins] feishu missing register/activate export
  5. Inspect /opt/homebrew/lib/node_modules/openclaw/dist/extensions/feishu/index.js
  6. Confirm last line is: export { feishu_default as default }
  7. No register or activate export exists in the file

Expected behavior

Feishu plugin loads successfully and openclaw configure shows Feishu channel as available for setup.

Actual behavior

CLI crashes with "PluginLoadFailureError: plugin load failed: feishu: plugin export missing register/activate". Inspection of /opt/homebrew/lib/node_modules/openclaw/dist/extensions/feishu/index.js confirms the file only exports: export { feishu_default as default } — no register or activate export exists.

OpenClaw version

2026.4.5 (3e72c03)

Operating system

macOS 15.4

Install method

npm global

Model

NOT_ENOUGH_INFO

Provider / routing chain

NOT_ENOUGH_INFO

Additional provider/model setup details

No response

Logs, screenshots, and evidence

[plugins] feishu missing register/activate export
PluginLoadFailureError: plugin load failed: feishu: plugin export missing register/activate

Confirmed via: tail -20 /opt/homebrew/lib/node_modules/openclaw/dist/extensions/feishu/index.js
Last line: export { feishu_default as default }
No register or activate export found in the compiled output.

Plugin uses defineBundledChannelEntry() format but loader expects register/activate named exports.

Impact and severity

No response

Additional information

No response

extent analysis

TL;DR

Update the Feishu plugin to export register and activate functions in addition to the default export.

Guidance

  • Verify that the defineBundledChannelEntry function is correctly implemented and exports the required register and activate functions.
  • Check the plugin loader's documentation to ensure it supports the defineBundledChannelEntry format and exports the required functions.
  • Update the Feishu plugin's index.js file to include named exports for register and activate, in addition to the default export.
  • Inspect the compiled output to confirm the presence of the register and activate exports.

Example

// index.js
export { feishu_default as default };
export function register() { /* registration logic */ };
export function activate() { /* activation logic */ };

Notes

The issue seems to be related to the plugin's export format, which is not compatible with the loader's expectations. Updating the plugin to include named exports for register and activate should resolve the issue.

Recommendation

Apply workaround: Update the Feishu plugin to include named exports for register and activate functions, as the current export format is not compatible with the plugin loader's expectations.

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

Feishu plugin loads successfully and openclaw configure shows Feishu channel as available for setup.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING