乐于分享
好东西不私藏

OpenClaw Matrix 插件升级踩坑记录

OpenClaw Matrix 插件升级踩坑记录

最近在升级 OpenClaw 的 Matrix 插件时,遇到了一个让人抓狂的问题


❌ openclaw doctor 命令直接卡死

❌ Gateway 启动后端口死活不监听

❌ 日志里没有任何错误信息

折腾了大半天,终于找到了原因:二进制文件损坏!

把解决过程记录下来,希望能帮到遇到同样问题的朋友。


01

问题背景

OpenClaw 从 2026.3.x 版本开始,Matrix 频道换了全新的插件架构:

📌 旧版:内置实现,使用 @vector-im/matrix-bot-sdk

📌 新版:独立插件 @openclaw/matrix,使用官方 matrix-js-sdk

新插件支持私信、群组、线程、媒体、反应、投票、位置分享,以及 E2EE 端到端加密,功能丰富多了。


02

事情的起点:一个 GitHub Issue

之前我在 OpenClaw 的 GitHub 上提了一个 Issue,反馈 Matrix 扩展在升级后依赖解析失败:

[plugins] matrix failed to loadErrorCannot find module '@vector-im/matrix-bot-sdk'

每次升级都要手动安装依赖才能解决,很烦。

没想到官方最近回复了:

OpenClaw now uses a new Matrix plugin built on the official matrix-js-sdk. The older Matrix implementation is no longer supported.

原来官方已经发布了全新的 Matrix 插件,基于官方 SDK 重写,旧的实现不再维护了。

Issue 被关闭后,我兴冲冲地去升级,以为问题就此解决。

结果… 新的坑出现了 😅


03

诡异的问题现象

升级新版插件后,出现了一堆诡异现象:

🔍 openclaw doctor 命令直接卡住,没有任何输出

🔍 Gateway 进程在运行,但端口 18789 就是不监听

🔍 日志里看不到任何错误信息

🔍 CPU 占用异常,进程像是陷入了死循环


04

诊断过程

在 Matrix 插件目录下尝试手动加载加密模块:

cd /你的node路径/lib/node_modules/openclaw/extensions/matrix/node_modules/@matrix-org/matrix-sdk-crypto-nodejsnode -"require('./index.js'); console.log('OK')"

结果直接报错:

Bus error (core dumped)

这就是传说中的「总线错误」!

继续检查文件完整性:

file matrix-sdk-crypto.linux-x64-gnu.node

损坏的文件显示:

ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, missing section headers at 22026872

注意看 missing section headers,文件明显损坏或不完整了。


05

解决方案

第一步:停止所有进程

pkill -9 -f openclaw

第二步:进入插件目录

cd /你的node路径/lib/node_modules/openclaw/extensions/matrix/node_modules/@matrix-org/matrix-sdk-crypto-nodejs

(根据你的 Node.js 安装路径调整)

第三步:删除损坏的文件

rm -f matrix-sdk-crypto.linux-x64-gnu.node

第四步:下载正确的二进制文件

这是最关键的一步,文件约 21MB:

wget -O matrix-sdk-crypto.linux-x64-gnu.node \  https://github.com/matrix-org/matrix-rust-sdk-crypto-nodejs/releases/download/v0.4.0/matrix-sdk-crypto.linux-x64-gnu.node

⚠️ GitHub 在国内访问可能较慢,建议使用代理或手动下载后上传

第五步:验证文件完整性

file matrix-sdk-crypto.linux-x64-gnu.node

✅ 正确的输出应该包含 BuildID[sha1]= 和 not stripped

第六步:测试模块加载

node -e "require('./index.js'); console.log('OK')"

如果输出 OK,恭喜你,问题解决了!

第七步:启动 Gateway

openclaw gateway

如果遇到「gateway already running」错误:

openclaw gateway stopsleep 3openclaw gateway

06

验证成功

启动成功后,你应该看到类似输出:

🦞 OpenClaw 2026.3.13 (61d171a)13:28:06 [gateway] listening on ws://127.0.0.1:1878913:28:08 [matrix] [default] starting provider

然后就可以在 Matrix 客户端(如 Element)给机器人发消息测试了!


07

为什么会出现这个问题?

可能的原因:

🌐 网络中断:npm 安装时下载二进制文件不完整

⏱️ 超时截断:下载超时,文件被截断但没有报错

💾 磁盘问题:虽然不太可能,但也不能排除

新版插件把加密模块独立出来,需要从 GitHub 下载约 21MB 的原生二进制文件,这个过程比较脆弱。


08

一些实用建议

📌 查看日志

# 前台运行openclaw gateway# 或查看日志文件tail -f /tmp/openclaw/openclaw-*.log

📌 禁用加密(临时方案)

如果暂时不需要 E2EE,可以在配置中禁用:

{  "channels": {    "matrix": {      "encryption": false    }  }}

📌 支持的平台

• Linux x64 (gnu/musl)• Linux ARM64• macOS x64/ARM64• Windows x64


09

总结

这次踩坑让我意识到两件事:

1️⃣ 开源项目的响应速度可以很快——我提的 Issue 很快就得到了官方回复,问题在新版本中确实得到了解决

2️⃣ 遇到「卡死」问题,不要只盯着配置看——要检查依赖的二进制文件是否完整,用 file 命令检查一下往往能发现问题

新的 Matrix 插件架构更加现代化,使用官方 SDK 意味着更好的兼容性和维护性。虽然升级过程有点曲折,但解决后一切运行得很顺畅。

感谢 OpenClaw 团队的快速响应!🦞


如果这篇文章帮到了你,欢迎点赞、在看、转发!

有问题欢迎在评论区交流~


相关链接

• OpenClaw 官方文档:https://docs.openclaw.ai

• Matrix 插件迁移指南:https://docs.openclaw.ai/install/migrating-matrix

•GitHub Issue:https://github.com/openclaw/openclaw/issues/31169

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » OpenClaw Matrix 插件升级踩坑记录

猜你喜欢

  • 暂无文章