Skip to content

[Bug]: OPENCLAW_EXTENSIONS omits selected external plugin runtimes #103626

Description

@steipete

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Source-built Docker images using the documented OPENCLAW_EXTENSIONS build argument stage selected plugin dependencies but omit compiled runtime entries for selected official plugins whose package metadata sets openclaw.build.bundledDist: false.

Steps to reproduce

  1. Check out OpenClaw main at f1b75bf5fa342664b2e3e03a6138a0f8e321500d.
  2. Build the Dockerfile with --build-arg OPENCLAW_EXTENSIONS=slack.
  3. Run node openclaw.mjs plugins inspect slack --runtime --json inside the final image.
  4. Observe that the selected plugin runtime is unavailable and /app/dist/extensions/slack/index.js is absent even though its production dependencies were staged.

Expected behavior

An explicitly selected supported plugin is compiled and packaged into /app/dist/extensions/<id> with its manifest, package metadata, and production dependencies. Unknown selections fail closed, while known dependency/source-only selections retain their existing staging behavior.

Actual behavior

OPENCLAW_EXTENSIONS currently affects dependency installation and pruning only. A selected official plugin excluded from the root bundled distribution can survive pruning without receiving a runnable root dist/extensions/<id> entry.

OpenClaw version

Main at f1b75bf5fa342664b2e3e03a6138a0f8e321500d; the published 2026.6.11 image also predates this support.

Operating system

Linux amd64 and Linux arm64 Docker hosts.

Install method

Source-built Docker image.

Model

N/A (packaging-only reproduction; no inference request).

Provider / routing chain

N/A (packaging-only reproduction; no provider request).

Additional provider/model setup details

No credentials or provider configuration are required.

Logs

Plugin not found: slack

The final image also lacks /app/dist/extensions/slack/index.js.

Screenshots, recordings, and evidence

Reproduced through final-image filesystem inspection and plugins inspect --runtime --json on native amd64 and arm64 Docker hosts.

Impact and severity

  • Affected: operators building standalone OpenClaw Docker images with selected official plugins.
  • Severity: high for affected images because the selected channel cannot load.
  • Frequency: deterministic for selected plugins excluded from the root bundled distribution.
  • Consequence: an apparently successful image build cannot run the selected channel plugin.

Additional information

The fix should remain Docker-only and must not change the plugins' npm or release bundledDist semantics. Crabhelm-managed gateways use a separate private appliance archive and do not consume these OCI images.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingmaintainerMaintainer-authored PR

Type

No type

Fields

Priority

None yet

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions