Feishu Plugin Install Fails — npm 404 / Token Expired
Common Feishu Setup Issue
Tracked in openclaw/openclaw#8576. Running openclaw plugins install @openclaw/feishu fails because the scoped package is not published to the npm public registry. This affects all feishu/飞书 users trying the standard install path.
You want to connect OpenClaw to Feishu (飞书). You run openclaw plugins install @openclaw/feishu and get two errors: "npm notice Access token expired or revoked" followed by "npm error 404 Not Found — GET https://registry.npmjs.org/@openclaw%2ffeishu." Neither error tells you the real problem: the package simply isn't on npm.
Next Step
Fix now, then reduce repeat incidents
If this issue keeps coming back, validate your setup in Doctor first, then harden your config.
Jump to Section
What the Error Looks Like
openclaw plugins install @openclaw/feishu
You might also see a secondary error after attempting a workaround: Error: Cannot find module 'zod'. This is a separate dependency issue covered in the Missing Dependencies section below.
Why This Happens
Package not published to npm
The @openclaw/feishu scoped package was never published to the public npm registry. The plugin exists in the OpenClaw source repository but isn't distributed as a standalone npm package. The openclaw plugins install command assumes all plugins are on npm, which is wrong for community/first-party plugins like feishu.
Stale npm auth token amplifies the error
If you previously ran npm login, your local .npmrc has an auth token. When npm tries to fetch a non-existent scoped package, it first tries authenticated access (which fails with "token expired"), then falls back to public access (which fails with 404). Two confusing errors for one simple problem.
Missing peer dependencies after local install
Even if you get past the 404 with a local install, the feishu plugin depends on zod, node-fetch, and other packages that aren't bundled. The local install method doesn't run npm install inside the plugin directory, so these dependencies are missing.
Fix A: Local Install (Recommended)
Download the plugin source and install it locally. This is the officially recommended method for plugins not published to npm.
git clone https://github.com/openclaw/openclaw.git /tmp/openclaw-src cd /tmp/openclaw-src/plugins/feishu
npm install
openclaw plugins install --local /tmp/openclaw-src/plugins/feishu
openclaw gateway restart
Fix B: Build from Source
If you want the full development setup (useful for contributing fixes or running multiple plugins):
git clone https://github.com/openclaw/openclaw.git cd openclaw pnpm install # installs all dependencies including plugin deps pnpm build # builds all plugins openclaw plugins install --local plugins/feishu
Fix C: Clear Stale npm Token
Even though the real issue is the 404, the "token expired" error is annoying and can mask other problems. Clear it to get cleaner error messages:
# Check if you have a token npm whoami 2>&1 # If it shows an error, clear the token npm logout # Or manually remove the auth line from ~/.npmrc # grep -n "authToken" ~/.npmrc
Clearing the token doesn't fix the 404 — the package still isn't on npm. But it removes the confusing "token expired" noise so you can focus on the real solution (local install).
Fix Missing Dependencies (zod, node-fetch, etc.)
After local install, if the feishu channel fails to load with module errors:
# Navigate to where the plugin was installed cd $(openclaw plugins path)/feishu # Install missing dependencies npm install zod node-fetch # Restart gateway to reload plugin openclaw gateway restart
Verify Feishu Channel Works
Expected: @openclaw/feishu shows as installed (green)
Expected: "feishu channel started" or similar — no "Cannot find module" errors
Expected: Feishu channel check passes (green checkmark)
Expected: Send a test message in Feishu to your bot — it should respond within a few seconds
Still Stuck?
If the plugin installs but Feishu messages aren't reaching OpenClaw, check your Feishu bot configuration:
openclaw config get channels.feishu # Should show appId, appSecret, and webhook URL # If any are empty, reconfigure: # openclaw config set channels.feishu.appId "cli_xxxx" # openclaw config set channels.feishu.appSecret "your-secret"
Run the Doctor
Checks plugin installation, channel configuration, and message delivery health.
Related Issues
Other plugin & channel setup problems:
Fix It Faster With Our Tools
Did this guide solve your problem?