首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >opencode-telegram-bot 无响应?可能是被 Telegram 限流了

opencode-telegram-bot 无响应?可能是被 Telegram 限流了

作者头像
乱世不浮生
发布2026-06-18 09:13:39
发布2026-06-18 09:13:39
30
举报

opencode-telegram-bot 把 opencode 接入 Telegram 是个很方便的方案(详见 上一篇:用 Telegram 远程操控本地 OpenCode:opencode-telegram-bot 实战指南,但最近踩了个坑——bot 突然完全无响应,进程明明在跑,消息就是没有回应。

问题现象

Bot 无响应的表现有两种:

  1. 发消息没有任何回应,完全静默
  2. Bot 返回 "🔴 已停止事件流,正在发送中止信号…等待代理停止。",然后再无响应

第二种情况容易误导人,以为是 opencode 进程本身出了问题,实际上根因是一样的。

一切看起来都正常:

代码语言:javascript
复制
ps aux | grep -E "opencode|telegram" | grep -v grep

输出显示三个进程都在运行,opencode serve 也在监听 127.0.0.1:4096。但 Telegram 里发消息,毫无反应。

排查过程

第一步:确认端口

代码语言:javascript
复制
lsof -i -P -n | grep opencode

opencode serve 正常监听,没问题。

第二步:查 bot 的网络连接

代码语言:javascript
复制
lsof -i -P -n -p <telegram-bot-pid>

这一步发现了关键线索:bot 进程没有任何活跃的 TCP 连接。进程存在,但根本没有连上 Telegram API——也就是说,bot 虽然活着,但处于 " 失联 " 状态。

第三步:看日志

日志在 ~/Library/Logs/opencode-telegram-bot.log,翻出来一看,全是 429:

代码语言:javascript
复制
[ERROR] [Sessions] Failed to send loading message:
GrammyError: Call to 'sendMessage' failed! (429: Too Many Requests: retry after 26965)

26965 秒,约 7.5 小时。

根本原因

前一天切换 session 时,bot 短时间内发送了大量消息,触发了 Telegram 的频率限制。被封禁后,bot 尝试重连都会失败,最终陷入静默状态。

事件时间线大概是这样:

时间

事件

16:18

切换 session,大量消息触发 429,retry after 26965 秒

16:23

Compact 操作失败

23:39

仍被限流(retry after 455 秒),bot 崩溃

次日 07:41

Bot 重启,但网络请求依然失败

08:24

排查时确认 bot 静默,无任何新日志

解决方法

等限流期过了,重启 bot 就好:

代码语言:javascript
复制
# 干掉当前进程
kill <bot-pid> <npm-pid>

# 重新启动
npm exec @grinev/opencode-telegram-bot start

预防建议

  • 避免频繁切换 session,每次切换都可能触发多条消息并发发送
  • bot 无响应时,先查日志,看有没有 429 错误,别急着重装或换配置
  • 日志位置:~/Library/Logs/opencode-telegram-bot.log
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乱世不浮生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题现象
  • 排查过程
    • 第一步:确认端口
    • 第二步:查 bot 的网络连接
    • 第三步:看日志
  • 根本原因
  • 解决方法
  • 预防建议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档