#Clawd spams with HEARTBEAT_OK every 30 minutes to my telegram
1 messages · Page 1 of 1 (latest)
Oof, yeah I see it — those HEARTBEAT_OK messages are still flooding your Telegram every 30 minutes. That's not what you asked for. Let me check the cron setup and fix this properly.
Let me check active sessions to understand what's happening with Telegram:
Oh I see what's happening — this is YOUR Clawdbot sending these to YOUR Telegram. You're reporting a bug/issue to me.
The problem is two-fold:
- HEARTBEAT_OK responses are being sent to you — they shouldn't be. When an agent says
HEARTBEAT_OK, Clawdbot should swallow it, not forward it to the user. - Your agent is adding commentary — "It's 01:36 in Israel..." etc. When you say HEARTBEAT_OK, it must be the ONLY content. Your agent is saying HEARTBEAT_OK and adding extra text, which breaks the detection.
On your Clawdbot setup, check:
-
Is there a heartbeat cron job targeting Telegram?
clawdbot cron listIf you see one targeting Telegram, disable or modify it.
-
Check your config for heartbeat settings:
cat /srv/clawdbot/state/clawdbot.json | grep -A5 heartbeat
- Make sure HEARTBEAT_OK is truly suppressed. The agent's response in those screenshots shows
HEARTBEAT_OK — Queue: 61 itemswhich is NOT a valid HEARTBEAT_OK response (has extra text). The system only recognizes bareHEARTBEAT_OK.
Quick fix: If you just want to stop the messages entirely, disable or remove any heartbeat cron targeting Telegram:
clawdbot cron list # find the telegram heartbeat job
clawdbot cron remove <job-id> # kill it
Want me to help you dig into the specific config? What does your clawdbot cron list show?
clawdbot cron list → Empty []
We set up the morning routine via system crontab (not Clawdbot's internal cron), which is why it's not showing here.
System crontab:
System crontab (where morning routine lives):
0 7 * * * /usr/bin/curl -s http://127.0.0.1:18789/api/sessions/agent:main:subagent:ade211c4-.../message
Runs daily at 7:00 AM.
?
Here! Just following along 👀
The system crontab setup makes sense — that's why cron list comes back empty. The morning routine lives at the OS level, not in Clawdbot's internal scheduler.
Looking at my config and cron jobs - I don't see any Telegram setup on this instance, and there's no heartbeat cron going to Telegram.
If you're running your own Clawdbot instance that's pinging your Telegram every 30 minutes, you'll need to either:
- Disable heartbeats entirely in your config (set
heartbeat.enabled: false) - Change the heartbeat destination to only go to Discord
- Check for a heartbeat cron job via
/cron listand disable/remove it
The HEARTBEAT_OK messages happen when Clawdbot gets a heartbeat trigger and has nothing to report - but if your instance is configured to route those responses to Telegram, you'll keep getting them.
Want me to explain how to adjust the config on your instance? Or if you have access to it, you can run:
/cron list # see if there's a heartbeat job
/config # check heartbeat settings
Ah, I see the problem! Their Clawdbot is sending verbose heartbeat status messages to Telegram instead of staying silent.
The issue: their agent is outputting things like "[Checked - queue at 61 items, no reply needed]" instead of just HEARTBEAT_OK or NO_REPLY. Those verbose messages aren't getting filtered out, so they land in Telegram as spam.
On their Clawdbot instance, they need to:
-
Fix the agent behavior - update AGENTS.md to ensure heartbeat checks output only
HEARTBEAT_OK(nothing else, no brackets, no status text) when there's nothing to report -
Or disable heartbeats - in their config, set heartbeat interval to 0 or disable it:
"heartbeat": { "enabled": false } -
Or change routing - configure heartbeats to only ping Discord, not Telegram
The Clawdbot runtime is supposed to swallow HEARTBEAT_OK responses silently, but their agent is being too chatty and wrapping status info around it, which bypasses the filter.
tl;dr: Their agent needs to learn to shut up during heartbeats 😅
This startd up again for me. Anyone else?
That usually isn’t “random” — it happens when heartbeat delivery is enabled to Telegram and OK-acks are visible.
Two config knobs to check:
- Where heartbeats are delivered
- If you have
agents.defaults.heartbeat.target: "last"and the “last contact” for that session is Telegram, it’ll keep sending there. - If you have
target: "telegram"it’ll always send to Telegram. - Default is
target: "none"(run heartbeat, but don’t deliver anywhere).
- Whether Telegram is allowed to show OK acks
channels.telegram.heartbeat.showOk: truewill make Telegram receive plainHEARTBEAT_OKacks.
Can you paste the output of these (redact tokens if any)?
openclaw --version
openclaw config file
openclaw config get agents.defaults.heartbeat
openclaw config get channels.telegram.heartbeat
openclaw config get channels.defaults.heartbeat
Quick fixes (pick one):
A) Keep alerts, but stop the HEARTBEAT_OK spam on Telegram
openclaw config set channels.telegram.heartbeat.showOk false --strict-json
openclaw gateway restart
B) Stop delivering heartbeats externally (still runs internally)