After openclaw gateway start, the log shows:
[warn] Duplicate plugin detected: feishu
Plugin 'feishu' is being loaded multiple times. Only the first instance will be used.
Feishu messages send and receive fine — everything works. But the warning appears on every startup.
The same Feishu plugin is being loaded twice:
1. Auto-load: When extensions/openclaw-lark/ exists, OpenClaw scans and loads it automatically
2. Explicit declaration: A feishu plugin entry is manually defined in openclaw.json
Both paths trigger. The scheduler detects the duplicate, uses the first (auto-loaded) instance, ignores the second, and logs a warning.
This typically happens when you manually configured the Feishu plugin first, then installed the openclaw-lark extension without cleaning up the old config.
# Test Feishu plugin
openclawctl test-plugin feishu
# Or send a test message and watch the gateway log
tail -f ~/.openclaw/logs/gateway.log | grep -E "feishu|plugin"
If messages work and you only see [warn] (not [error]), functionality is completely unaffected. This is a warning, not an error.
Find openclaw.json and remove the explicit Feishu plugin entry:
# Backup first
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak
# Inspect current config
cat ~/.openclaw/openclaw.json | jq '.plugins'
Before:
{
"plugins": [
{ "name": "feishu", "appId": "cli_xxx", "appSecret": "xxx" },
{ "name": "other-plugin" }
]
}
After:
{
"plugins": [
{ "name": "other-plugin" }
]
}
Restart the gateway after the change. The warning disappears. Feishu continues working via the openclaw-lark extension.
Leave it alone if:
debug log level, not infoThe warning is harmless. Suppressing it when everything works is a cosmetic fix, not a required one.
After installing a new extension, check for overlap with existing manual config:
# List all loaded plugins
openclawctl list-plugins
# Compare against openclaw.json declarations
cat ~/.openclaw/openclaw.json | jq '.plugins[].name'
If there's overlap, pick one loading method and remove the other.