fix(cron): condition requireExplicitMessageTarget on resolved delivery#28017
Merged
Takhoffman merged 1 commit intoopenclaw:mainfrom Feb 28, 2026
Merged
Conversation
When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
Greptile SummaryThis PR fixes a bug where cron jobs without configured delivery targets (or with failed target resolution) would produce "Action send requires a target" errors. The fix changes
Confidence Score: 5/5
Last reviewed commit: cf748e6 |
3 tasks
vincentkoc
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Feb 28, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
vincentkoc
pushed a commit
to rylena/rylen-openclaw
that referenced
this pull request
Feb 28, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
mrosmarin
added a commit
to mrosmarin/openclaw
that referenced
this pull request
Feb 28, 2026
* main: (31 commits) fix(browser): resolve correct targetId in navigate response after renderer swap (openclaw#25326) fix: sed escaping and UID mismatch in Podman Quadlet setup (openclaw#26414) fix(cron): pass heartbeat target=last for main-session cron jobs (openclaw#28508) (openclaw#28583) fix(cron): disable messaging tool when delivery.mode is none (openclaw#21808) (openclaw#21896) fix: clear delivery routing state when creating isolated cron sessions (openclaw#27778) fix(cron): avoid marking queued announce paths as delivered (openclaw#29716) fix(cron): enable completion direct send for text-only announce delivery (openclaw#29151) fix(cron): force main-target system events onto main session (openclaw#28898) fix(cron): condition requireExplicitMessageTarget on resolved delivery (openclaw#28017) feat(cron): add --account flag for multi-account delivery routing (openclaw#26284) fix: schedule nextWakeAtMs for isolated sessionTarget cron jobs (openclaw#19541) fix: sandbox browser docker no-sandbox rollout (openclaw#29879) (thanks @Lukavyi) GitHub: add regression bug issue template and routing (openclaw#29864) thanks @Takhoffman feat(feishu): add chat info/member tool (openclaw#14674) feat(feishu): add markdown tables, positional insert, color_text, and table ops (openclaw#29411) feat(feishu): add parent/root inbound context for quote support (openclaw#18529) fix: land android onboarding and voice reliability updates (openclaw#29796) fix(android-voice): rotate playback token per assistant reply fix(android-voice): retry talk config after transient failures fix(android-voice): cancel in-flight speech when speaker muted ...
newtontech
pushed a commit
to newtontech/openclaw-fork
that referenced
this pull request
Feb 28, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
nsd97
pushed a commit
to nsd97/openclaw
that referenced
this pull request
Feb 28, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
wanjizheng
pushed a commit
to wanjizheng/openclaw
that referenced
this pull request
Mar 1, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
wanjizheng
pushed a commit
to wanjizheng/openclaw
that referenced
this pull request
Mar 1, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
tuyunlei
added a commit
to tuyunlei/openclaw
that referenced
this pull request
Mar 1, 2026
Resolved conflicts:
- CHANGELOG.md: take upstream release notes
- extensions/feishu/src/{channel,reply-dispatcher,send}.ts: take upstream
(community replyInThread impl supersedes ours, PR openclaw#27325)
- src/agents/compaction.ts: merge timing logs with upstream
identifier preservation + buildCompactionSummarizationInstructions
- src/agents/pi-extensions/compaction-safeguard.ts: merge timing logs
with upstream summarizationInstructions param
- src/cron/isolated-agent/run.ts: merge upstream requireExplicitMessageTarget
condition (openclaw#28017) + disableMessageTool none-mode (openclaw#21896) with our
ownerNumbers + senderIsOwner additions
Post-merge fixes:
- Restore DEFAULT_CONTEXT_TOKENS import in attempt.ts (auto-merge dropped it)
- Adjust memory flush test to match our cache-stable systemPrompt design
(flush instructions in user prompt, not extraSystemPrompt)
zooqueen
added a commit
to hanzoai/bot
that referenced
this pull request
Mar 1, 2026
openclaw#28017) Cherry-pick from upstream openclaw/openclaw 2851926. When delivery target resolution fails, the agent is no longer blocked by an explicit target requirement it cannot satisfy. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ansh
pushed a commit
to vibecode/openclaw
that referenced
this pull request
Mar 2, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
steipete
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Mar 2, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
safzanpirani
pushed a commit
to safzanpirani/clawdbot
that referenced
this pull request
Mar 2, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
steipete
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Mar 2, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
robertchang-ga
pushed a commit
to robertchang-ga/openclaw
that referenced
this pull request
Mar 2, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
execute008
pushed a commit
to execute008/openclaw
that referenced
this pull request
Mar 2, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
dorgonman
pushed a commit
to kanohorizonia/openclaw
that referenced
this pull request
Mar 3, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
sachinkundu
pushed a commit
to sachinkundu/openclaw
that referenced
this pull request
Mar 6, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
zooqueen
added a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
openclaw#28017) Cherry-pick from upstream openclaw/openclaw 2851926. When delivery target resolution fails, the agent is no longer blocked by an explicit target requirement it cannot satisfy.
zooqueen
pushed a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898
Mateljan1
pushed a commit
to Mateljan1/openclaw
that referenced
this pull request
Mar 7, 2026
openclaw#28017) When a cron job's delivery target resolution fails (resolvedDelivery.ok is false), the agent was still started with requireExplicitMessageTarget: true. This caused "Action send requires a target" errors because the agent's message tool demanded a target that was never resolved. Condition the flag on both deliveryRequested AND resolvedDelivery.ok so the agent can still use messaging tools freely when no valid delivery target exists. Fixes openclaw#27898 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
requireExplicitMessageTargetwas unconditionally set totruefor all cron isolated agent runsdeliveryRequested && resolvedDelivery.okso the agent isn't blocked by a target that was never resolvedRoot Cause
In
src/cron/isolated-agent/run.ts:469, therequireExplicitMessageTargetflag was hardcoded totrue. WhenresolveDeliveryTarget()returns{ ok: false }(e.g. missing session history, no configured channel), the embedded PI agent still enforced the explicit target requirement on its message tool, producing the "Action send requires a target" error.Fix
Condition the flag on both
deliveryRequested(delivery was actually requested in the cron job payload) ANDresolvedDelivery.ok(the target was successfully resolved). When either condition is false, the agent can use messaging tools without the explicit target constraint.Test plan
disableMessageToolis still correctly set based ondeliveryRequestedFixes #27898
🤖 Generated with Claude Code