OpenClaw Telegram 集成成功但不回复:Webhook / 409 / 权限完整排查(2026)
你看到的症状通常是这几类:
- 机器人在 Telegram 里显示“在线”,但你发消息它不回
- 偶发可用,过一会儿又没反应
- 日志里出现
409 Conflict、getUpdates、webhook相关报错
下面给你一套从 0 到 1 的排查顺序。按顺序执行,通常 10–20 分钟能定位问题。
0) 先确认:你现在是 webhook 模式,还是 polling 模式?
不要混用。最常见故障就是:一个实例在 webhook,另一个实例还在 polling(或反过来)。
先跑:
openclaw status
openclaw gateway status
openclaw logs --follow
如果是 systemd 管理:
openclaw gateway status
journalctl --user -u openclaw-gateway --no-pager -n 100
1) 先排 409 Conflict(最高频)
典型报错
409 Conflict: terminated by other getUpdates requestcan't use getUpdates while webhook is active
根因
同一个 Telegram Bot Token 被多个进程同时消费更新(最常见是旧进程没关、另一台机器还在跑、或测试脚本也在拉 updates)。
处理步骤
# 1) 停掉当前节点上的 OpenClaw
openclaw gateway stop
# 2) 查残留进程(按需)
ps aux | grep -E "openclaw|node" | grep -v grep
# 3) 仅保留一个实例后再启动
openclaw gateway start
openclaw gateway status
如果你在多机部署,确保只有一个生产实例使用这个 token。
2) 检查 Telegram Bot Token / 环境变量是否被服务进程读到
你在 shell 里能跑,不代表 systemd 服务能读到同样的环境变量。
# 查看服务日志是否有 token/认证相关报错
journalctl --user -u openclaw-gateway --no-pager -n 100
# 常见做法:放到 ~/.openclaw/.env
cat ~/.openclaw/.env
如果缺失,补上后重启:
# 示例,按你的实际 key 填写
cat >> ~/.openclaw/.env <<'EOF'
TELEGRAM_BOT_TOKEN=123456:xxxxxx
EOF
openclaw gateway restart
openclaw gateway status
3) 检查 webhook 连通性(公网部署重点)
如果用 webhook,Telegram 服务器必须能访问你的 OpenClaw webhook 地址。
必查项
- 域名可解析
- 443 端口可达
- 反向代理(Nginx/Caddy/Cloudflare Tunnel)没有把请求拦掉
- 证书有效(HTTPS)
快速自检
# 本地检查 gateway 运行状态
openclaw gateway status --deep
# 检查本机监听(端口号按你配置)
ss -tlnp | grep -E "18789|443|80"
# 反代日志(Nginx 示例)
sudo tail -n 100 /var/log/nginx/access.log
sudo tail -n 100 /var/log/nginx/error.log
如果你不想折腾本地网络穿透和家庭宽带稳定性,直接上 VPS 最省时间(2 vCPU / 2GB 就够):
- 腾讯云轻量应用服务器:https://curl.qcloud.com/1PS2iJEg
- Vultr:https://www.vultr.com/?ref=7566454
- DigitalOcean:https://m.do.co/c/0090e7c2aec0
4) 群聊里不回复:重点看 Bot 权限与隐私模式
很多人私聊测试正常,一拉群就“失灵”。
先核对
- Bot 是否在群内
- Bot 是否有读取消息权限
- 是否开启了 Telegram 的隐私模式(Privacy Mode)导致只能看到命令消息
- 你是否 @ 了 bot 或发送了明确触发词
实操建议
- 在 BotFather 检查 bot 设置(隐私模式按业务需要开/关)
- 给 bot 最低必要权限,避免完全管理员权限
- 先在小测试群验证,再上生产群
5) 消息到了但仍无回复:看模型与上游 API
OpenClaw 收到消息后,还依赖模型提供商返回内容。上游失败会表现为“像是 Telegram 坏了”。
openclaw status
openclaw logs --follow
重点看:
- 模型 key 是否有效
- 余额/额度是否耗尽
- 请求是否超时或被代理拦截
- fallback 模型是否配置
如果是网络不稳定地区,建议配置 fallback,避免单模型故障导致完全静默。
6) 一键修复顺序(实战可直接照抄)
# A. 停服务
openclaw gateway stop
# B. 清理冲突实例(仅保留一个)
ps aux | grep -E "openclaw|node" | grep -v grep
# C. 校验配置与环境变量
openclaw status
cat ~/.openclaw/.env
# D. 启动并观察
openclaw gateway start
openclaw gateway status --deep
openclaw logs --follow
如果仍失败,再补:
openclaw doctor --deep
openclaw doctor --repair --force
openclaw gateway restart
FAQ
Q1)应该选 polling 还是 webhook?
单机部署优先 polling,配置更简单、稳定性更高。只有在你明确需要公网回调且 HTTPS/反代稳定时,再考虑 webhook。
Q2)为什么私聊正常,群里不回复?
高频原因是 Telegram 隐私模式或群策略白名单未放行。重点复查 BotFather 隐私设置、群权限,以及 channels.telegram.groupPolicy/groupAllowFrom。
Q3)token/webhook 都修好了还是不回复怎么办?
马上看模型层日志(openclaw logs --follow)。上游 key 无效、额度用尽、请求超时,都会表现成“Telegram 不回”。
结论:90% 的 Telegram“不回复”是这三类
- 重复实例冲突(409)
- Webhook 公网连通性问题
- 服务环境变量和实际运行环境不一致
先把这三项收敛,再看模型侧日志,定位速度会非常快。
延伸阅读
- OpenClaw Telegram 故障排查全指南
- OpenClaw Gateway 启动失败 / 浏览器 Relay 连不上:完整排查指南(2026)
- OpenClaw 日志排查指南:从报错到根因定位
- OpenClaw 部署报错排查:Gateway / Telegram / Chrome 一次讲透(2026)