OpenClaw Telegram 409 Conflict Fix (terminated by other getUpdates request) — 2026 Checklist

If your logs show this error, you’re dealing with a polling ownership conflict:

409 Conflict: terminated by other getUpdates request

Meaning: the same Bot Token is being polled by more than one client at the same time.
OpenClaw Telegram integration uses long polling, and Telegram allows only one active poller per bot token.

This guide gives you a practical flow: contain → find cause → stabilize.


1) Contain first: keep only one OpenClaw instance running

Check current state:

openclaw status
openclaw gateway status
openclaw logs --follow

If 409 errors keep looping, stop Gateway first:

openclaw gateway stop

Then verify no stale processes are still alive:

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

If any are still running, kill the extra PID(s):

kill <PID>

Start once, and only once:

openclaw gateway start
openclaw gateway status

2) Root cause A (most common): same bot token on multiple machines

Typical pattern:

Result: they keep kicking each other out.

Quick verification

Run on each machine:

openclaw gateway status
openclaw logs | tail -n 50

Keep only one long-running node online. Stop and disable the other:

openclaw gateway stop
systemctl --user disable --now openclaw 2>/dev/null || true

3) Root cause B: stale webhook conflicts with polling

Even if you now use polling, an old webhook from another service can still break updates.

Check webhook status:

# replace TOKEN with your real bot token
curl "https://api.telegram.org/botTOKEN/getWebhookInfo"

If url is not empty, delete webhook:

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

Then restart OpenClaw:

openclaw gateway restart

4) Root cause C: systemd + manual start = duplicate runtime

You may have installed OpenClaw as a service, then also started it manually.

Check service status:

systemctl --user status openclaw --no-pager

Check duplicate processes:

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

Use one model only:

If moving to service-managed mode:

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

5) Docker case: multiple replicas fighting for one token

If you deploy with Docker/Compose or orchestrators, verify replica count.

Rules:

Force single replica during troubleshooting:

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

6) Post-fix verification checklist

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

Expected:


7) For long-term stability: run OpenClaw on one always-on VPS

If you switch often between local machine and cloud, duplicate startup is easy to trigger. A cleaner pattern:

Practical baseline: 2 vCPU / 2GB RAM.


8) Copy-ready 409 conflict recovery pack

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

If conflict persists, a second runtime still exists somewhere else (another host/container/service). Clean up by following sections A/C/Docker.


Was this article helpful?

💬 Comments