diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 31b6ea83c..089d8c2dc 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "ec1f72b6c58f05432e6d5578fef4884b6adc2fee", - "syncedAt": "2026-04-25T08:36:37.894Z" + "sha": "3169886a21bbe6eaed595ca0d68ea38f5e22d5f5", + "syncedAt": "2026-04-25T08:40:01.414Z" } diff --git a/docs/channels/telegram.md b/docs/channels/telegram.md index a787e3a82..e0c5611d5 100644 --- a/docs/channels/telegram.md +++ b/docs/channels/telegram.md @@ -257,6 +257,7 @@ curl "https://api.telegram.org/bot/getUpdates" - Group sessions are isolated by group ID. Forum topics append `:topic:` to keep topics isolated. - DM messages can carry `message_thread_id`; OpenClaw routes them with thread-aware session keys and preserves thread ID for replies. - Long polling uses grammY runner with per-chat/per-thread sequencing. Overall runner sink concurrency uses `agents.defaults.maxConcurrent`. +- Long polling is guarded inside each gateway process so only one active poller can use a bot token at a time. If you still see `getUpdates` 409 conflicts, another OpenClaw gateway, script, or external poller is likely using the same token. - Long-polling watchdog restarts trigger after 120 seconds without completed `getUpdates` liveness by default. Increase `channels.telegram.pollingStallThresholdMs` only if your deployment still sees false polling-stall restarts during long-running work. The value is in milliseconds and is allowed from `30000` to `600000`; per-account overrides are supported. - Telegram Bot API has no read-receipt support (`sendReadReceipts` does not apply).