agentscope-ai / agentscope-ai/AgentTeams
Manager Matrix Sync 静默断开 — Suppressed AbortError 后无重连
- Lingua principale
- Go
- Stelle
- 5.6k
- Fork
- 692
- Merge medio
- 5g 4h
- PR unite (30g)
- 23
Descrizione
## 问题概述
**现象:** Manager运行约10小时后,Matrix sync静默停止。Heartbeat继续运行,但无法接收外部Matrix消息。重启容器后恢复。
**关键特征:**
- Heartbeat(每30分钟内部定时器)仍然正常运行
- Agent可以执行tool调用(包括tool=message发消息)
- 但所有来自Matrix的外部消息不再被接收
- 日志中没有明确的错误,sync是静默停止的
---
## 完整时间线(UTC时间,北京时间 = UTC+8)
| UTC时间 | 北京时间 | 事件 |
|---------|---------|------|
| 2026-06-10 09:48 | 17:48 | Manager容器启动 |
| 09:48 - 15:48 | 17:48 - 23:48 | 正常运行6小时 |
| 15:48 | 23:48 | mc mirror同步openclaw.json时文件被截断,config reload开始失败 |
| 15:48 - 17:23 | 23:48 - 01:23 | config reload每分钟失败(约90次),错误:JSON5 parse failed |
| 17:23 | 01:23 | openclaw.json恢复正常,config reload停止报错 |
| 17:23 - 20:00 | 01:23 - 04:00 | 正常运行2.5小时 |
| **20:00:01** | **04:00:01** | **最后一条Matrix消息被处理** |
| **20:00:17** | **04:00:17** | **[openclaw] Suppressed AbortError: This operation was aborted** |
| 20:00:32 | 04:00:32 | 最后一次Matrix事件处理完成 |
| 20:00 - 次日05:37 | 04:00 - 13:37 | Matrix sync停止,但heartbeat继续运行 |
| 次日05:37 | 13:37 | 手动重启容器 |
| 次日05:39 | 13:39 | Matrix消息恢复 |
---
## 诊断过程
### 排除的假设
| 假设 | 证据 | 结论 |
|------|------|------|
| Tuwunel挂了 | 手动发消息成功 | 排除 |
| accessToken失效 | 手动发消息成功 | 排除 |
| 进程挂了 | heartbeat仍在运行 | 排除 |
| Config reload失败导致 | 失败在17:23停止,sync在20:00才断 | 不直接相关 |
| delivery-queue堆积 | 日志中没有delivery-queue错误 | 排除 |
| 房间ID大小写问题 | 这是Worker的问题,不是Manager的 | 排除 |
### 最可能的根因
**Matrix SDK的/sync长连接断开后,OpenClaw没有自动重连。**
证据链:
1. UTC 20:00:17 出现 `Suppressed AbortError` — 某个操作被abort
2. 此后所有Matrix消息接收停止
3. 但发消息(通过HTTP API直接调用)仍然成功
4. Heartbeat(内部定时器)仍然正常
这说明:
- Matrix服务器(Tuwunel)正常
- Manager的accessToken有效
- OpenClaw进程活着
- 但OpenClaw的Matrix SDK的sync连接断了,没有恢复
### 关于 Suppressed AbortError
`Suppressed AbortError` 是OpenClaw的错误处理机制 — 当某个操作被abort时,不抛出异常,而是静默处理。这个行为本身是修复后的正确行为(之前不suppress会导致gateway crash)。
**但问题在于:abort之后没有重连sync连接。** 这可能是OpenClaw Matrix SDK的一个缺陷。
---
## 环境信息
- **HiClaw版本:** v1.1.2
- **OpenClaw版本:** 2026.4.14
- **Matrix服务器:** Tuwunel(Conduit分支)
- **运行环境:** Docker容器(WSL2)
---
## 建议
1. 确认Matrix sync断开的具体原因
2. AbortError后是否有重连逻辑?如果没有,是否需要添加?
3. 是否需要增加health check接口检测sync状态?
---
## 相关Issue
- QwenPaw #3646 — Matrix channel inbound silently stops delivering events to LLM
- OpenClaw #1997 — Gateway crashes on config reload due to unhandled AbortError
---
*报告生成时间:2026-06-11 13:48 北京时间*
*诊断工具:Claude Code + Manager Agent*
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.