Skip to content

msteams plugin: duplicate provider start causes EADDRINUSE crash loop (bundled extension + standalone install conflict) #25790

@eseasolutions

Description

@eseasolutions

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:

  1. The bundled extension at /path/to/openclaw/extensions/msteams/ (TypeScript source)
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions