Summary
Telegram bot provider starts successfully but does not poll for updates. Incoming messages are never received by OpenClaw, despite the bot being fully configured and able to send messages.
Environment
OpenClaw Version: 2026.2.9
OS: Linux 6.8.0-100-generic (x64)
Node: v22.22.0
Installation: npm global
Telegram Plugin: bundled version
Configuration
{
"channels": {
"telegram": {
"enabled": true,
"dmPolicy": "allowlist",
"botToken": "8582305158:AAE...",
"allowFrom": ["8543807328", "8582305158"],
"groupPolicy": "allowlist",
"streamMode": "partial",
"actions": {
"reactions": true,
"sendMessage": true,
"deleteMessage": true,
"sticker": true
}
}
}
}
Observed Behavior
Bot starts successfully:
[gateway/channels/telegram] [default] starting provider (@waltraud_kralle_bot)
[telegram/network] telegram: autoSelectFamily=false (default-node22)
But polling never starts:
No getUpdates or poll in logs
No received update or processing message entries
Zero telegram messages processed (all activity shows messageChannel=webchat)
Telegram API confirms bot is functional:
curl "https://api.telegram.org/bot/getMe"
→ { "ok": true, "result": { "username": "waltraud_kralle_bot", ... } }
curl "https://api.telegram.org/bot/sendMessage" -d "chat_id=..." -d "text=test"
→ Successfully delivers message
But getUpdates returns empty:
curl "https://api.telegram.org/bot/getUpdates"
→ { "ok": true, "result": [] }
Messages sent TO the bot never arrive despite showing delivered (double checkmarks) on Telegram client
Log Evidence
Grepped entire log for polling activity:
grep -i "poll|getupdate|received.*update" /tmp/openclaw/openclaw-2026-02-13.log
→ 0 results
All agent runs show only webchat as source:
"embedded run start: ... messageChannel=webchat"
No messageChannel=telegram entries exist in logs.
Expected Behavior
According to Telegram docs:
"Long polling is the default mode"
Expected to see:
Polling loop started
Regular getUpdates API calls
Incoming message events logged
Messages processed with messageChannel=telegram
Steps to Reproduce
Create bot via @Botfather
Configure OpenClaw with bot token
Set dmPolicy: "allowlist" with valid user IDs
Start gateway: openclaw gateway start
Observe logs: tail -f /tmp/openclaw/openclaw-*.log
Send message to bot on Telegram
Result: Message never arrives, no polling activity in logs
Attempted Fixes
✅ Verified bot token is valid (API calls work)
✅ Tested multiple bots / tokens
✅ Switched between dmPolicy: "open" and "allowlist"
✅ Multiple gateway restarts (kill -HUP and full restarts)
✅ Verified no duplicate gateway processes running
✅ Deleted webhook (deleteWebhook returns "already deleted")
✅ Checked firewall (outbound HTTPS is allowed, polling doesn't need inbound)
Additional Context
openclaw status shows: Telegram │ ON │ OK │ token config ... accounts 1/1
No config validation errors in logs
Webchat channel works perfectly
Bot can successfully send messages via manual API curl tests
Problem appears to be specifically with the polling loop initialization
Related Issues
Searched for similar reports - found issues about photo delivery (#15078) and feature requests (#15077) but no reports of polling failing to start entirely.
Hypothesis
The Telegram provider initializes successfully but the polling loop (using grammY runner) never actually starts, possibly due to:
Missing internal config flag or trigger
Silent failure in grammY runner initialization
Race condition during provider startup
Bug in 2026.2.9 telegram channel code
Request
Could someone confirm if this is a known issue or if there's a hidden config requirement for enabling polling? Happy to provide additional debug logs if needed.
Summary
Telegram bot provider starts successfully but does not poll for updates. Incoming messages are never received by OpenClaw, despite the bot being fully configured and able to send messages.
Environment
OpenClaw Version: 2026.2.9
OS: Linux 6.8.0-100-generic (x64)
Node: v22.22.0
Installation: npm global
Telegram Plugin: bundled version
Configuration
{
"channels": {
"telegram": {
"enabled": true,
"dmPolicy": "allowlist",
"botToken": "8582305158:AAE...",
"allowFrom": ["8543807328", "8582305158"],
"groupPolicy": "allowlist",
"streamMode": "partial",
"actions": {
"reactions": true,
"sendMessage": true,
"deleteMessage": true,
"sticker": true
}
}
}
}
Observed Behavior
Bot starts successfully:
[gateway/channels/telegram] [default] starting provider (@waltraud_kralle_bot)
[telegram/network] telegram: autoSelectFamily=false (default-node22)
But polling never starts:
No getUpdates or poll in logs
No received update or processing message entries
Zero telegram messages processed (all activity shows messageChannel=webchat)
Telegram API confirms bot is functional:
curl "https://api.telegram.org/bot/getMe"
→ { "ok": true, "result": { "username": "waltraud_kralle_bot", ... } }
curl "https://api.telegram.org/bot/sendMessage" -d "chat_id=..." -d "text=test"
→ Successfully delivers message
But getUpdates returns empty:
curl "https://api.telegram.org/bot/getUpdates"
→ { "ok": true, "result": [] }
Messages sent TO the bot never arrive despite showing delivered (double checkmarks) on Telegram client
Log Evidence
Grepped entire log for polling activity:
grep -i "poll|getupdate|received.*update" /tmp/openclaw/openclaw-2026-02-13.log
→ 0 results
All agent runs show only webchat as source:
"embedded run start: ... messageChannel=webchat"
No messageChannel=telegram entries exist in logs.
Expected Behavior
According to Telegram docs:
"Long polling is the default mode"
Expected to see:
Polling loop started
Regular getUpdates API calls
Incoming message events logged
Messages processed with messageChannel=telegram
Steps to Reproduce
Create bot via @Botfather
Configure OpenClaw with bot token
Set dmPolicy: "allowlist" with valid user IDs
Start gateway: openclaw gateway start
Observe logs: tail -f /tmp/openclaw/openclaw-*.log
Send message to bot on Telegram
Result: Message never arrives, no polling activity in logs
Attempted Fixes
✅ Verified bot token is valid (API calls work)
✅ Tested multiple bots / tokens
✅ Switched between dmPolicy: "open" and "allowlist"
✅ Multiple gateway restarts (kill -HUP and full restarts)
✅ Verified no duplicate gateway processes running
✅ Deleted webhook (deleteWebhook returns "already deleted")
✅ Checked firewall (outbound HTTPS is allowed, polling doesn't need inbound)
Additional Context
openclaw status shows: Telegram │ ON │ OK │ token config ... accounts 1/1
No config validation errors in logs
Webchat channel works perfectly
Bot can successfully send messages via manual API curl tests
Problem appears to be specifically with the polling loop initialization
Related Issues
Searched for similar reports - found issues about photo delivery (#15078) and feature requests (#15077) but no reports of polling failing to start entirely.
Hypothesis
The Telegram provider initializes successfully but the polling loop (using grammY runner) never actually starts, possibly due to:
Missing internal config flag or trigger
Silent failure in grammY runner initialization
Race condition during provider startup
Bug in 2026.2.9 telegram channel code
Request
Could someone confirm if this is a known issue or if there's a hidden config requirement for enabling polling? Happy to provide additional debug logs if needed.