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 via openclaw 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.
Problem
When the
@openclaw/msteamsplugin is installed viaopenclaw plugins install @openclaw/msteams, two instances of the Teams webhook server attempt to start on port 3978 simultaneously, causing one to crash immediately withEADDRINUSE. This creates an infinite restart loop.Root cause
OpenClaw loads msteams from two sources at the same time:
/path/to/openclaw/extensions/msteams/(TypeScript source)~/.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:Its
package.jsonalso usesworkspace:*indevDependencies, which makes standalonenpm installfail unless devDependencies are removed first.Environment
Workaround
None that fully resolves the issue. Disabling the bundled extension manually and reinstalling the standalone version partially helps, but the plugin remains in
stoppedstate.Expected behavior
openclaw plugins install @openclaw/msteamsshould result in exactly ONE running instance of the webhook server.