Skip to content

[Bug] v2026.3.11: doctor --fix loops false legacy cron payload kind normalization #43796

Description

@Mdx2025

Summary

openclaw doctor --fix reports legacy cron payload kind normalization repeatedly on v2026.3.11, even when all jobs already have canonical payload.kind values (agentTurn / systemEvent).

Impact

  • False-positive health warning persists.
  • doctor --fix appears to "repair" the same jobs on every run.
  • Creates noise in post-upgrade validation and automation runbooks.

Environment

  • OpenClaw: v2026.3.11
  • Install path: global pnpm package ([email protected])
  • Gateway: local systemd service, loopback bind

Repro

  1. Ensure cron jobs already store canonical values (payload.kind == agentTurn or systemEvent).
  2. Run:
    • openclaw doctor --fix
  3. Run again:
    • openclaw doctor --fix

Actual

Legacy cron normalization warning reappears (same jobs), despite no semantic change needed.

Expected

Once kinds are canonical, doctor --fix should converge and stop reporting legacy kind normalization.

Root-cause analysis (local)

In the compiled update runner, normalizePayloadKind(payload) reports mutation when no effective change is required in some paths.

Local workaround (confirmed)

Patched local compiled files:

  • dist/update-runner-CsfK3SMx.js
  • dist/update-runner-CvNIx6g2.js

After patch:

  • openclaw doctor --fix no longer reports legacy kind normalization.
  • openclaw cron list --json shows canonical payload.kind values.

Notes

Workaround is local and gets overwritten on update/reinstall.
A canonical source fix in release artifacts would be ideal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions