-
-
Notifications
You must be signed in to change notification settings - Fork 69.5k
msteams plugin: duplicate provider start causes EADDRINUSE crash loop (bundled extension + standalone install conflict) #25790
Description
Problem
When the @openclaw/msteams plugin is installed via openclaw plugins install @openclaw/msteams, two instances of the Teams webhook server attempt to start on port 3978 simultaneously, causing one to crash immediately with EADDRINUSE. This creates an infinite restart loop.
Root cause
OpenClaw loads msteams from two sources at the same time:
- The bundled extension at
/path/to/openclaw/extensions/msteams/(TypeScript source) - The standalone install at
~/.openclaw/extensions/msteams/(installed viaopenclaw plugins install)
Both attempt to start an Express server on port 3978. The second one always fails with EADDRINUSE.
Additional issue
The bundled extension at node_modules/openclaw/extensions/msteams/ uses TypeScript source files that cannot be loaded by Node.js v22 due to the restriction:
Stripping types is currently unsupported for files under node_modules
Its package.json also uses workspace:* in devDependencies, which makes standalone npm install fail unless devDependencies are removed first.
Environment
- OpenClaw: 2026.2.23
- Node.js: v22.22.0
- OS: Linux 6.12 (Debian)
- Plugin: @openclaw/msteams 2026.2.23
Workaround
None that fully resolves the issue. Disabling the bundled extension manually and reinstalling the standalone version partially helps, but the plugin remains in stopped state.
Expected behavior
openclaw plugins install @openclaw/msteams should result in exactly ONE running instance of the webhook server.