openclaw - 💡(How to fix) Fix [Bug]: OpenProse isolated cron run can stop after first child sessions_yield boundary while cron is marked finished/ok [1 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#53647Fetched 2026-04-08 01:25:22
View on GitHub
Comments
1
Participants
2
Timeline
1
Reactions
0
Timeline (top)
commented ×1
RAW_BUFFERClick to expand / collapse

Title: [Bug]: OpenProse isolated cron run can stop after first child sessions_yield boundary while cron is marked finished/ok

Bug type Behavior bug (incorrect output/state without crash)

Summary In an isolated cron agentTurn running an OpenProse workflow, the parent OpenProse VM can yield while waiting for a child subagent; the child later writes the expected binding successfully, but the parent does not resume and cron still records the run as finished with status: ok.

Steps to reproduce

  1. Run OpenClaw stable 2026.3.23-2 on Linux using npm global install.
  2. Create an isolated cron job whose payload runs a local OpenProse workflow (.prose/a-share-brief.prose).
  3. Ensure the workflow begins with a session step that spawns a child subagent and expects that child to write a binding file (for example bindings/news_status.md).
  4. Trigger the cron job manually.
  5. Observe that the child writes the expected binding and artifact successfully, but the parent workflow does not continue to downstream steps.
  6. Check cron run history and .prose/runs/<run-id>/; cron is recorded as finished / ok / not-delivered while the workflow directory only contains the first-step outputs.

Expected behavior The parent OpenProse VM should resume after the child completes and continue executing downstream steps. A cron run should only be marked successful once the OpenProse workflow has actually reached its final output (for example final message/output binding exists).

Actual behavior The parent yields waiting for the child, the child completes and writes the expected binding/artifact, but the parent does not resume. Cron still records the run as finished with status: ok, while deliveryStatus is not-delivered and the workflow stops after the first step.

OpenClaw version 2026.3.23-2

Operating system Ubuntu 24.04 / Linux VPS

Install method npm global

Model openai-codex/gpt-5.4

Provider / routing chain openclaw -> openai-codex/gpt-5.4

Additional provider/model setup details Single effective model configured during this test. No alternate model routing was involved in the failing run.

Logs, screenshots, and evidence

  • Observed cron finished entry for the problematic run:
    • status: ok
    • delivered: false
    • deliveryStatus: not-delivered
    • sessionId: 6ff9276f-0c33-4a02-aa77-f1458752b9fa
  • Observed .prose run directory:
    • /root/.openclaw/workspace/.prose/runs/20260324-185200-6f1b2c
  • Observed outputs present:
    • bindings/news_status.md
    • artifacts/603369/news_7d.json
  • Observed outputs missing:
    • sentiment_status.md
    • flow_status.md
    • tape_status.md
    • research_gate.md
    • brief_status.md
    • feishu_message.md
  • Parent session transcript:
    • /root/.openclaw/agents/main/sessions/6ff9276f-0c33-4a02-aa77-f1458752b9fa.jsonl
  • Child session transcript:
    • /root/.openclaw/agents/main/sessions/5d2ab2cb-7425-4d0b-8564-dbbf7a261f69.jsonl
  • In this run, the child successfully wrote the binding/artifact for the first step; the workflow interruption happened after that boundary.

Impact and severity Affected: isolated cron jobs that execute OpenProse workflows with spawned child sessions Severity: High (blocks full workflow completion and prevents delivery) Frequency: Reproduced in the observed run described above Consequence: cron may report success for an incomplete workflow, leaving downstream steps unexecuted and no final message delivered

Additional information This does not appear to be primarily a model-quality issue. In the observed run, the child completed its assigned work and wrote the expected binding/artifact. The failure appears at the integration boundary between OpenProse VM child waiting/resume behavior and OpenClaw isolated cron agentTurn lifecycle/completion handling.

extent analysis

Fix Plan

To address the issue of OpenProse isolated cron runs stopping after the first child sessions_yield boundary, we need to modify the OpenProse VM to properly resume after a child subagent completes. Here are the steps:

  • Modify the session step in the OpenProse workflow to include a wait_for_child flag, which will allow the parent VM to wait for the child to complete before resuming.
  • Update the OpenClaw isolated cron agentTurn lifecycle to check for the presence of a wait_for_child flag in the workflow and handle it accordingly.
  • Add a retry mechanism to the OpenClaw isolated cron agentTurn to retry the workflow if it fails due to a child session not completing.

Example code changes:

# OpenProse workflow modification
session:
  ...
  wait_for_child: true

# OpenClaw isolated cron agentTurn modification
def agent_turn(workflow):
  ...
  if workflow.get('wait_for_child'):
    # Wait for child to complete
    child_session_id = workflow.get('child_session_id')
    child_session_status = get_session_status(child_session_id)
    while child_session_status != 'completed':
      # Retry mechanism
      if retry_count >= MAX_RETRIES:
        raise Exception('Child session did not complete')
      time.sleep(RETRY_INTERVAL)
      child_session_status = get_session_status(child_session_id)
  ...

Verification

To verify that the fix worked, run the isolated cron job again and check that the workflow completes successfully and the final message is delivered. Also, check the cron run history and .prose/runs/<run-id>/ directory to ensure that the workflow directory contains all the expected outputs.

Extra Tips

  • Make sure to update the OpenClaw isolated cron agentTurn to handle the wait_for_child flag correctly and implement the retry mechanism.
  • Test the fix thoroughly to ensure that it works for different scenarios and edge cases.
  • Consider adding logging and monitoring to track the workflow execution and child session status to help with debugging and troubleshooting.

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