-
-
Notifications
You must be signed in to change notification settings - Fork 79.1k
[Regression] cron agentTurn payload delivers [object Object] to LLM on 2026.6.1 (regression of #54579) #91228
Copy link
Copy link
Closed
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.r: moltbookAuto-close and lock: Moltbook is off-topic for OpenClaw.Auto-close and lock: Moltbook is off-topic for OpenClaw.
Metadata
Metadata
Assignees
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.r: moltbookAuto-close and lock: Moltbook is off-topic for OpenClaw.Auto-close and lock: Moltbook is off-topic for OpenClaw.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Summary
The bug fixed in #54579 has regressed on 2026.6.1. Every cron job with
payload.kind: "agentTurn"andsessionTarget: "isolated"receives the literal string[object Object]as the agent prompt instead of the configuredpayload.message. The scheduler still reports the run asstatus=ok(the agent didn't crash, it just gave up on garbage input), so this is a silent failure — operators only notice when downstream work stops happening.I went looking for
#54579after a week of nightly cron silence on a workspace that worked fine on 2026.5.20.Environment
2e08f0f, fresh install vianpm i -g openclaw@2026.6.1)claude-max(Anthropic OAuth via local proxy at 127.0.0.1:3456)Reproduction (minimal, deterministic)
Then force-run via
cron run(MCP) oropenclaw cron run <id>.Expected: agent receives
SERIALIZATION_PROBE: reply exactly...and complies.Actual: agent's summary (recorded in
~/.openclaw/cron/runs/<id>.jsonl):The persisted payload in
jobs.jsonis correct —payload.messageis a string.cron getechoes it back as a string. The corruption happens between scheduler dispatch and the prompt-assembly in the isolated agent session.Confirmation
jobs.jsonhaspayload.messageas a stringcron getreturnspayload.messageas a stringruns/<id>.jsonlshows agent received[object Object]claude-max/claude-haiku-4-5andanthropic/claude-haiku-4-5Code pointer (dist, since src is not shipped)
The symptom site is the template literal in
dist/isolated-agent-Cw8sZTVo.js:641:If
input.messageis an object, this produces[object Object].The upstream call sites all appear to pass
job.payload.messagestraight through:dist/server-cron-CJwAiILI.js:1711—message: job.payload.messagedist/server-cron-CJwAiILI.js:3026-3034—runIsolatedAgentJob→runCronIsolatedAgentTurn({ ...message })dist/isolated-agent-Cw8sZTVo.js:986—prepareCronRunContext({ input: params })Since the persisted
payload.messageis a string and the final template literal sees an object, the wrap is happening either (a) in the cron run-dispatch layer that constructs thejobshape from the SQLite-backed store rehydration (cf. #90378's SQLite migration), or (b) in a wrapper added recently aroundpayload.messagethat's not unwrapped at the consumer. I haven't been able to fully isolate this from minified dist alone.History / Related
partialArgsJSON duplication on isolated agentTurn cron) — both touch the agentTurn isolated dispatch path.Workaround
Same shape as #54579's workaround. Moved the affected job (a daily bash-only cost snapshot) to the host system crontab:
For cron jobs that genuinely need an agent turn (e.g. journal, Moltbook digest), no workaround exists yet — they are silently no-op'ing on 2026.6.1.
Severity
Silent failure of all isolated agentTurn cron jobs across the fleet. P0 from an operator perspective. Happy to add more diagnostic logs or test a candidate fix branch.
cc maintainers — flagging because #54579 is closed and this is a regression of that exact fix.