问题描述
在飞书群聊中,当用户回复引用(thread)bot 的消息时,bot 的回复会被静默丢弃,既不会出现在群里,也不会出现在私聊。
复现步骤
- 在飞书群聊中 @bot 并正常交流
- bot 回复了一条消息
- 用户回复引用 bot 的上一条消息(飞书"回复"功能,非话题模式)
- bot 收到 dispatch 并生成了回复
- 但回复消失了 — dispatch complete 显示
replies=0
根因
extensions/feishu/src/send.ts 中 sendReplyOrFallbackDirect() 函数对线程回复做了特殊处理:
当线程回复 API 调用失败时(例如飞书侧限流 230011 "message withdrawn"),代码故意不 fallback 为普通群消息发送,而是直接抛错:
影响范围
- 飞书群聊中所有使用"回复"功能 @bot 的消息
- 不是偶发,是每次线程回复触发 dispatch 后,
reply_in_thread API 调用失败都会导致消息丢失
- 用户侧表现:完全静默,无任何错误提示
修复建议
修改 sendReplyOrFallbackDirect() 的逻辑,在线程回复失败时降级为普通群消息发送(即忽略 replyToMessageId,直接发到群),而不是直接丢消息。
相关文件:
extensions/feishu/src/send.ts — sendReplyOrFallbackDirect() 函数(第140-195行)
extensions/feishu/src/send.reply-fallback.test.ts — 测试用例 "fails thread replies instead of falling back to a top-level send"(第214行)
环境
- OpenClaw 版本: v2026.5.7
- 飞书 channel 配置:
blockStreaming: true, streaming: true
问题描述
在飞书群聊中,当用户回复引用(thread)bot 的消息时,bot 的回复会被静默丢弃,既不会出现在群里,也不会出现在私聊。
复现步骤
replies=0根因
extensions/feishu/src/send.ts中sendReplyOrFallbackDirect()函数对线程回复做了特殊处理:当线程回复 API 调用失败时(例如飞书侧限流
230011"message withdrawn"),代码故意不 fallback 为普通群消息发送,而是直接抛错:影响范围
reply_in_threadAPI 调用失败都会导致消息丢失修复建议
修改
sendReplyOrFallbackDirect()的逻辑,在线程回复失败时降级为普通群消息发送(即忽略replyToMessageId,直接发到群),而不是直接丢消息。相关文件:
extensions/feishu/src/send.ts—sendReplyOrFallbackDirect()函数(第140-195行)extensions/feishu/src/send.reply-fallback.test.ts— 测试用例 "fails thread replies instead of falling back to a top-level send"(第214行)环境
blockStreaming: true,streaming: true