Skip to content

[Bug]: HEARTBEAT gets stuck #84672

Description

@predkambrij

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Heartbeat will run one time, then silently stop running.

Steps to reproduce

  1. start v2026.5.18 with the following config:
    "agents": {
    "defaults": {
    "workspace": "/home/node/.openclaw/workspace",
    "models": {
    "zai/glm-5.1": {
    "alias": "GLM"
    },
    "zai/glm-4.7": {
    }
    },
    "model": {
    "primary": "zai/glm-5.1"
    },
    "heartbeat": {
    "every": "1h",
    "target": "none",
    "model": "zai/glm-4.7",
    "prompt": "Read HEARTBEAT.md (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.",
    "isolatedSession": false
    }
    }
    },

The key part is "isolatedSession": false "target": "none". Wait until Heartbeat gets executed couple times. This will show durationMs low enough that makes it obvious that LLM wasn't called.
openclaw system heartbeat last

OpenClaw 2026.5.18 (unknown) — I've seen your commit messages. We'll work on that together.



{
"ts": 1779300801033,
"status": "skipped",
"reason": "target-none",
"preview": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.",
"durationMs": 19,
"hasMedia": false
}
git diff --no-index -w sessions.json sessions.json_failed
...

  • "estimatedCostUsd": 0.01847444,
  • "endedAt": 1779275651268,
  • "runtimeMs": 46130,
  • "pendingFinalDelivery": true,
  • "pendingFinalDeliveryText": "⚠️ Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.",
  • "pendingFinalDeliveryCreatedAt": 1779275651467,
  • "pendingFinalDeliveryLastAttemptAt": 1779286401028,
  • "pendingFinalDeliveryAttemptCount": 3,
  • "pendingFinalDeliveryLastError": null
    }

Configuration like that worked in April, though only with GLM, not with codex for example.

Expected behavior

Heartbeats should run, even if previous run got stuck, or should make it more obvious what should I verify that it will work.

Actual behavior

heartbeats after some time stops to call llm altogether

OpenClaw version

2026.5.18

Operating system

docker-compose.yml build (./scripts/docker/setup.sh)

Install method

docker

Model

zai/glm-5.1

Provider / routing chain

glm coding plan

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority user-facing bug, regression, or broken workflow.bugSomething isn't workingclawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.regressionBehavior that previously worked and now fails

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions