openclaw - 💡(How to fix) Fix Bug: process poll hangs indefinitely on non-existent session ID

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…

process(action="poll", sessionId="<non-existent-id>", timeout=600000) hangs indefinitely instead of returning an error when the session ID does not exist.

Error Message

process(action="poll", sessionId="<non-existent-id>", timeout=600000) hangs indefinitely instead of returning an error when the session ID does not exist. process poll should return immediately with an error (e.g., "No session found for <id>") when the session ID is not in the active sessions list — consistent with how process log already behaves.

Root Cause

process(action="poll", sessionId="<non-existent-id>", timeout=600000) hangs indefinitely instead of returning an error when the session ID does not exist.

Fix Action

Workaround

Use process(action="list") before each poll to check if the session is still active.

RAW_BUFFERClick to expand / collapse

Bug Report

Description

process(action="poll", sessionId="<non-existent-id>", timeout=600000) hangs indefinitely instead of returning an error when the session ID does not exist.

Expected Behavior

process poll should return immediately with an error (e.g., "No session found for <id>") when the session ID is not in the active sessions list — consistent with how process log already behaves.

Actual Behavior

  • process(action="log", sessionId="<non-existent-id>") → returns immediately: "No session found for <id>"
  • process(action="poll", sessionId="<non-existent-id>", timeout=600000)hangs for the full timeout duration

Steps to Reproduce

  1. Start an exec/PTY session (e.g., via mc --code)
  2. Wait for the session to naturally exit
  3. Call process(action="poll", sessionId="<that-session-id>", timeout=600000)
  4. Observe: the call hangs for 600 seconds instead of returning No session found

Impact

Sub-agents using mc --code (PTY sessions) can get stuck in an infinite poll loop after the coding session exits mid-task. The agent has no way to detect the session is gone and cannot make progress.

Workaround

Use process(action="list") before each poll to check if the session is still active.

Environment

  • OpenClaw version: OpenClaw 2026.3.24 (cff6dc9)
  • OS: macOS Darwin 24.4.0 (arm64)

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