openclaw - ✅(Solved) Fix heartbeat timeoutSeconds field not supported in agents.defaults.heartbeat [1 pull requests, 2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#64437Fetched 2026-04-11 06:14:57
View on GitHub
Comments
2
Participants
2
Timeline
14
Reactions
0
Timeline (top)
referenced ×10commented ×2closed ×1cross-referenced ×1

Error Message

  1. Better error: When an unrecognized key is under heartbeat, suggest the correct location

Fix Action

Fixed

PR fix notes

PR #64491: fix(config): add timeoutSeconds support to agents.defaults.heartbeat

Description (problem / solution / changelog)

Summary

  • Adds timeoutSeconds field to HeartbeatSchema in zod-schema.agent-runtime.ts
  • Adds corresponding type definition in types.agent-defaults.ts
  • Fixes config validation error when users set timeoutSeconds under agents.defaults.heartbeat

Problem

Setting timeoutSeconds under agents.defaults.heartbeat in openclaw.json caused config validation to fail:

agents.defaults.heartbeat: Unrecognized key: "timeoutSeconds"

This field was documented in heartbeat.md but not supported in the schema.

Changes

  • src/config/zod-schema.agent-runtime.ts: Add timeoutSeconds: z.number().int().positive().optional() to HeartbeatSchema
  • src/config/types.agent-defaults.ts: Add timeoutSeconds?: number with JSDoc comment

Fixes #64437

🤖 Generated with Claude Code

Changed files

  • CHANGELOG.md (modified, +2/-0)
  • docs/.generated/config-baseline.sha256 (modified, +3/-3)
  • docs/gateway/configuration-reference.md (modified, +2/-0)
  • docs/gateway/heartbeat.md (modified, +1/-0)
  • extensions/whatsapp/src/auto-reply.test-harness.ts (modified, +32/-1)
  • src/agents/pi-tools-agent-config.test.ts (modified, +28/-0)
  • src/agents/pi-tools.policy.ts (modified, +83/-31)
  • src/config/group-policy.ts (modified, +19/-1)
  • src/config/heartbeat-config-honor.inventory.test.ts (modified, +1/-0)
  • src/config/schema.base.generated.ts (modified, +35/-1)
  • src/config/schema.help.ts (modified, +4/-0)
  • src/config/schema.labels.ts (modified, +4/-0)
  • src/config/types.agent-defaults.ts (modified, +2/-0)
  • src/config/zod-schema.agent-defaults.test.ts (modified, +19/-0)
  • src/config/zod-schema.agent-runtime.ts (modified, +1/-0)
  • src/infra/heartbeat-runner.model-override.test.ts (modified, +58/-0)
  • src/infra/heartbeat-runner.ts (modified, +10/-8)
  • src/plugins/test-helpers/fs-fixtures.ts (modified, +2/-2)
  • test/helpers/config/heartbeat-config-honor.inventory.ts (modified, +15/-0)

Code Example

agents.defaults.heartbeat: Unrecognized key: "timeoutSeconds"

---

{
  "agents": {
    "defaults": {
      "heartbeat": {
        "every": "15m",
        "isolatedSession": true,
        "timeoutSeconds": 120,  // causes validation to fail
        "prompt": "..."
      }
    }
  }
}
RAW_BUFFERClick to expand / collapse

Problem

Setting timeoutSeconds under agents.defaults.heartbeat in openclaw.json causes config validation to fail:

agents.defaults.heartbeat: Unrecognized key: "timeoutSeconds"

Expected

Based on gateway/heartbeat.md documentation, heartbeat runs should support timeoutSeconds as a configurable option under agents.defaults.heartbeat.

Actual

The OpenClaw schema does not recognize timeoutSeconds under agents.defaults.heartbeat. The field only works under cron job payloads (payload.agentTurn.timeoutSeconds).

Documentation vs Reality

  • heartbeat.md includes timeoutSeconds in the config schema example
  • But the actual schema rejects it under agents.defaults.heartbeat
  • Users following the documentation get config invalid errors on restart

Suggested fix (choose one)

  1. Add support: Add timeoutSeconds to the heartbeat config schema
  2. Update docs: Remove timeoutSeconds from heartbeat.md examples and clarify timeout is controlled by cron job payload
  3. Better error: When an unrecognized key is under heartbeat, suggest the correct location

Environment

  • OpenClaw 2026.4.9 (0512059)
  • Windows_NT x64 / Node.js v24.14.0

openclaw.json excerpt

{
  "agents": {
    "defaults": {
      "heartbeat": {
        "every": "15m",
        "isolatedSession": true,
        "timeoutSeconds": 120,  // causes validation to fail
        "prompt": "..."
      }
    }
  }
}

extent analysis

TL;DR

To resolve the config validation failure, consider updating the OpenClaw schema to support timeoutSeconds under agents.defaults.heartbeat or removing timeoutSeconds from the heartbeat config in openclaw.json and controlling timeouts via cron job payloads.

Guidance

  • Verify the OpenClaw version and documentation to ensure timeoutSeconds is not supported in a different configuration path.
  • Check the cron job payload configuration to see if payload.agentTurn.timeoutSeconds can be used as a workaround for setting timeouts.
  • If the documentation is incorrect, update heartbeat.md to reflect the actual supported configuration options.
  • Consider filing a feature request or bug report to add support for timeoutSeconds under agents.defaults.heartbeat if it is a desired configuration option.

Example

No code snippet is provided as the issue is related to configuration and schema validation.

Notes

The suggested fix depends on the specific requirements and constraints of the OpenClaw configuration. Updating the documentation or adding support for timeoutSeconds may have different implications for the system's behavior and functionality.

Recommendation

Apply workaround: Remove timeoutSeconds from the heartbeat config in openclaw.json and control timeouts via cron job payloads, as this is the currently supported configuration option.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING