-
-
Notifications
You must be signed in to change notification settings - Fork 69.5k
Matrix plugin fails to load in Docker: keyed-async-queue subpath not resolved #33266
Description
Summary
The Matrix plugin fails to load on the Docker image (ghcr.io/openclaw/openclaw:latest) because send-queue.ts imports KeyedAsyncQueue from a subpath that doesn't exist in the bundled SDK:
[plugins] matrix failed to load from /app/extensions/matrix/index.ts:
Error: Cannot find module '/app/dist/plugin-sdk/index.js/keyed-async-queue'
- /app/extensions/matrix/src/matrix/send-queue.ts
Root Cause
extensions/matrix/src/matrix/send-queue.ts line 1:
import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";In the Docker image, the bundler (Rolldown) compiles plugin-sdk into a single index.js. The /keyed-async-queue subpath doesn't resolve as a separate module — KeyedAsyncQueue is exported from the main plugin-sdk/index.js bundle instead.
Fix
Change the import in send-queue.ts to use the main export:
import { KeyedAsyncQueue } from "openclaw/plugin-sdk";KeyedAsyncQueue is already re-exported from plugin-sdk/index.js (verified via grep on the built bundle).
Environment
- Image:
ghcr.io/openclaw/openclaw:latest(pulled 2026-03-03) - Platform: Docker on Linux x86_64
- Matrix homeserver: Synapse (self-hosted)
Impact
All Matrix users on Docker are affected. The Matrix plugin fails silently — the container starts healthy but cannot send or receive Matrix messages.
Workaround
Mount a patched send-queue.ts over the built-in file:
volumes:
- ./patches/send-queue.ts:/app/extensions/matrix/src/matrix/send-queue.ts:roWhere patches/send-queue.ts has the corrected import path.