#agents.defaults.heartbeat.every config not being applied - defaults to 60s

1 messages ยท Page 1 of 1 (latest)

prime idol
#

Bug: agents.defaults.heartbeat.every config not being applied - defaults to 60s

Environment:

  • ClawdBot version: 2026.1.12-2
  • OS: Ubuntu Linux 6.8.0-90-generic
  • Node: 22.21.0

Expected behavior:
Per the docs at /gateway/heartbeat, setting agents.defaults.heartbeat.every should control the heartbeat interval. Default should be 30m.

Actual behavior:
Heartbeat interval is always 60s regardless of config. The clawdbot status command shows Heartbeat โ”‚ 60s even with explicit config.

Config (~/.clawdbot/clawdbot.json):
{
"agents": {
"defaults": {
"model": {
"primary": "openrouter/google/gemini-2.5-flash-lite"
},
"heartbeat": {
"every": "15m",
"target": "last"
}
}
}
}

Verification:

  • Other config values ARE being read (model shows correctly as google/gemini-2.5-flash-lite)
  • Only heartbeat.every appears to be ignored
  • Tried full service restart - no change
  • Config file ownership/permissions are correct

Status output:
โ”‚ Heartbeat โ”‚ 60s โ”‚
โ”‚ Sessions โ”‚ 1 active ยท default google/gemini-2.5-flash-lite (1049k ctx)

Impact:
60s heartbeat = 60 API calls/hour = significant token burn vs intended 4 calls/hour at 15m interval.

grizzled remnantBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> โœ… Mark Solution

devout pastureBOT
# prime idol --- Bug: agents.defaults.heartbeat.every config not being applied - defaults t...

Hey! I tracked down the bug. ๐Ÿฆ

The Problem:
The clawdbot status command was showing the WebSocket heartbeat (60s default) instead of the Agent heartbeat interval you configured. It was reading from web.heartbeatSeconds (defaults to 60s) instead of agents.defaults.heartbeat.every (which defaults to 30m).

The good news: The actual heartbeat cron job was already using your config correctly (15m). Only the status display was wrong!

I just fixed it:

  • Modified src/commands/status.ts to read from agents.defaults.heartbeat.every for the status display
  • It now correctly shows your configured interval (e.g., "900s" for 15m) instead of the hardcoded 60s

Before the fix:

โ”‚ Heartbeat  โ”‚ 60s  โ”‚

After the fix:

#
โ”‚ Heartbeat  โ”‚ 900s  โ”‚

The fix will be in the next release (2026.1.13+). You can verify the cron job is working correctly now by checking logs:

clawdbot logs --follow | grep heartbeat

Let me know if that resolves the display issue! ๐ŸŽ‰

prime idol
#

@pine flicker thats cool