记录学习、改进和最佳实践。
Logged: 2026-03-16T07:20:00+08:00
Priority: high
Status: resolved
Area: infra
飞书 Webhook 超时导致消息重复投递问题及解决方案
问题现象:
- 收到用户未主动发送的消息(05:40 消息在 06:23 再次出现)
- 消息内容完全一致但消息ID不同(om_x100b545876a2ed34c3d91545d8feb5f vs 新ID)
- 触发对话意外延续
根因分析:
飞书事件订阅规则要求 3秒内必须返回HTTP 200,否则触发重试:
- 重试间隔:15秒 → 5分钟 → 1小时 → 6小时(最多4次)
- 由于超时未响应,飞书服务器重复投递了消息
解决方案:
修改 openclaw.json 配置:json "feishu": { "connectionMode": "websocket", // 使用长连接替代HTTP webhook "timeout": 2000, // 响应超时<3000ms "idempotent": true, // 开启幂等去重 "sessionMode": "per-chat" // 按会话隔离 }