Skip to content

[Bug]: Heartbeat subsystem ignores HEARTBEAT.md configuration, defaults to HEARTBEAT_OK instead of service-specific status reports #39185

@Nemesis851

Description

@Nemesis851

Bug type

Behavior bug (incorrect output/state without crash)

Summary

Description,
The heartbeat subsystem starts successfully but fails to generate the required service-specific reports as defined in HEARTBEAT.md. Instead of following the configured report format, it defaults to sending HEARTBEAT_OK, which violates the specified requirements.

Steps to reproduce

Steps to Reproduce,
Configure HEARTBEAT.md with the correct format (as verified in workspace).,
Restart OpenClaw gateway.,
Check gateway logs for heartbeat activity.,
Observe that heartbeat reports are not generated as per HEARTBEAT.md; only HEARTBEAT_OK is sent.

Expected behavior

Expected Behavior,
Heartbeat reports should strictly follow the format defined in HEARTBEAT.md:,
[2:00 PM]Saturday, March 7, 2026 2:00 PM
APP
Claw_18D8 -- MacMini_2012_Sonoma:
Connection to [service] status: [emoji] [details]

  • ☑️ solid: Service is healthy and consistent (no issues detected)
  • 🤕 restored: Service was down for [duration] but now recovered
  • 😱 lost: Current check failed; last successful check [duration] ago

Reports should be sent to Discord channel as specified.

Actual behavior

Actual Behavior,
Heartbeat subsystem logs show "heartbeat: started" but no actual report content.,
System defaults to sending HEARTBEAT_OK instead of service-specific status messages.,
No error logs indicating why report generation fails (silent failure).

OpenClaw version

OpenClaw Version: 2026.3.2 (85377a2),

Operating system

OS: macOS (Darwin 23.6.0 x64)

Install method

Node.js Version: v25.6.1 Gateway Runtime: direct

Logs, screenshots, and evidence

Logs,
File: /tmp/openclaw/openclaw-2026-03-07.log
:thumbsup:
Click to react
:point_up:
Click to react
:rofl:
Click to react
Add Reaction
Reply
Forward
More
[2:00 PM]Saturday, March 7, 2026 2:00 PM 
APP
 Claw_18D8 -- MacMini_2012_Sonoma:

11:10:18 AM info gateway/heartbeat {"0":"{\"subsystem\":\"gateway/heartbeat\"}","1":{"intervalMs":7500000},"2":"heartbeat: started","_meta":{"runtime":"node","runtimeVersion":"25.6.1","hostname":"unknown","name":"{\"subsystem\":\"gateway/heartbeat\"}","parentNames":["openclaw"],"date":"2026-03-07T18:10:18.479Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/local/lib/node_modules/openclaw/dist/subsystem-BfkFJ4uQ.js:426:51","fileName":"subsystem-BfkFJ4uQ.js","fileNameWithLine":"subsystem-BfkFJ4uQ.js:426","fileColumn":"51","fileLine":"426","filePath":"usr/local/lib/node_modules/openclaw/dist/subsystem-BfkFJ4uQ.js","filePathWithLine":"usr/local/lib/node_modules/openclaw/dist/subsystem-BfkFJ4uQ.js:426","method":"logToFile"}},"time":"2026-03-07T11:10:18.482-07:00"}
1:28:35 PM info gateway/heartbeat {"0":"{\"subsystem\":\"gateway/heartbeat\"}","1":{"intervalMs":7500000},"2":"heartbeat: started","_meta":{"runtime":"node","runtimeVersion":"25.6.1","hostname":"unknown","name":"{\"subsystem\":\"gateway/heartbeat\"}","parentNames":["openclaw"],"date":"2026-03-07T20:28:35.083Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/local/lib/node_modules/openclaw/dist/subsystem-BfkFJ4uQ.js:426:51","fileName":"subsystem-BfkFJ4uQ.js","fileNameWithLine":"subsystem-BfkFJ4uQ.js:426","fileColumn":"51","fileLine":"426","filePath":"usr/local/lib/node_modules/openclaw/dist/subsystem-BfkFJ4uQ.js","filePathWithLine":"usr/local/lib/node_modules/openclaw/dist/subsystem-BfkFJ4uQ.js:426","method":"logToFile"}},"time":"2026-03-07T13:28:35.086-07:00"}

Impact and severity

Impact,
Critical: Heartbeat monitoring is broken, leading to undetected service failures and lack of actionable reports. This affects all users relying on heartbeat reports for system health checks.

Additional information

Additional Notes,
HEARTBEAT.md file contents (verified correct):


  
For each service checked, report format: "Connection to [service] status: [emoji] [details]" where:
☑️  solid: Service is healthy and consistent (no issues detected)
 🤕 restored: Service was down for [duration] but now recovered,
 😱 lost: Current check failed; last successful check [duration] ago,
,
The HEARTBEAT report will be sent to the Discord channel,
If a model has a maximum quota or token limit, provide that information also, per model,
List the current token usage for each model,
  • Perform this HEARTBEAT.md every 2 hours 3 minutes

No error logs are generated when the heartbeat report fails to produce the correct format, indicating a silent failure in the report generation logic.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingbug:behaviorIncorrect behavior without a crashstaleMarked as stale due to inactivity

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions