OpenClaw Telegram 报错 409 Conflict(terminated by other getUpdates request)怎么修?2026 一次性排查

如果你的日志里出现下面这句,基本可以确认是同一个问题:

409 Conflict: terminated by other getUpdates request

这表示:同一个 Bot Token 同时被两个(或更多)轮询客户端占用
OpenClaw 的 Telegram 集成是长轮询模式,Telegram 只允许一个活跃轮询消费者。

这篇给你一个可直接执行的“止血 → 定位 → 稳定化”流程。


1) 先止血:确保只保留一个 OpenClaw 实例

先看当前状态:

openclaw status
openclaw gateway status
openclaw logs --follow

如果日志持续刷 409,先执行:

openclaw gateway stop

然后检查是否还有残留进程:

ps -ef | grep -i openclaw | grep -v grep

有残留就结束它(替换 PID):

kill <PID>

最后只启动一次:

openclaw gateway start
openclaw gateway status

2) 高概率根因 A:你在两台机器用了同一个 Bot Token

最常见场景:

结论:二选一。一个 Token 只保留一个在线实例

快速定位

在每台机器上分别运行:

openclaw gateway status
openclaw logs | tail -n 50

哪台不需要长期在线,就把它停掉并禁用自启:

openclaw gateway stop
# 若使用 systemd 用户服务
systemctl --user disable --now openclaw 2>/dev/null || true

3) 高概率根因 B:Webhook 残留导致轮询冲突

即使你现在用的是轮询,如果 Bot 曾被别的服务设过 webhook,也会冲突。

先检查:

# 把 TOKEN 换成真实 token
curl "https://api.telegram.org/botTOKEN/getWebhookInfo"

如果返回里 url 非空,清空 webhook:

curl "https://api.telegram.org/botTOKEN/deleteWebhook"

然后重启 OpenClaw:

openclaw gateway restart

4) 高概率根因 C:systemd + 手工启动重复运行

你可能已经安装了 systemd 服务,同时又手动执行了 openclaw gateway start,导致重复实例。

检查用户服务状态:

systemctl --user status openclaw --no-pager

检查是否重复启动:

ps -ef | grep -E "openclaw|gateway" | grep -v grep

建议只保留一种运行方式:

如果改为 systemd 托管:

openclaw gateway install
systemctl --user enable --now openclaw
systemctl --user status openclaw --no-pager

5) Docker 场景:多个副本抢同一个 Token

如果你在 Docker/Compose 或编排平台里部署,检查副本数是不是 >1。

Docker Compose 原则

排查时先强制单实例:

docker compose ps
docker compose up -d --scale openclaw=1

6) 最小自检清单(修完后一定要过)

openclaw status
openclaw gateway status --deep
openclaw channels list
openclaw doctor

预期:


7) 想长期稳定:把 OpenClaw 放到单一 VPS 常驻

如果你经常在笔记本和云服务器来回切换,很容易重复拉起实例。更稳的方式是:

可用环境(2 vCPU / 2GB 基本够用):


8) 一键复制:409 Conflict 快速修复命令包

openclaw gateway stop
ps -ef | grep -i openclaw | grep -v grep
curl "https://api.telegram.org/botTOKEN/getWebhookInfo"
curl "https://api.telegram.org/botTOKEN/deleteWebhook"
openclaw gateway start
openclaw logs --follow

如果仍然冲突,几乎可以确定还有第二个实例在别的机器/容器运行。按“根因 A / C / Docker”继续清理即可。


延伸阅读

这篇文章有帮助吗?

💬 评论