Persistent sessions become dead immediately (queue owner unavailable) on macOS
Summary
Persistent acpx sessions are created successfully, but immediately report dead / queue owner unavailable on status checks.
This reproduces outside OpenClaw, so the issue appears to be in acpx persistent session / queue owner health rather than OpenClaw routing.
Environment
- Host: macOS arm64
- Node: v25.8.2
- acpx: 0.3.1
- Workspace cwd used for repro:
/Users/macmini16/.openclaw/workspace
What was ruled out
- Anthropic auth missing: ruled out
- Opus unavailable: ruled out (
OPUS_OK one-shot confirmed)
- OpenClaw ACP backend unavailable: fixed after npm restore
- Discord thread session-key suffix bug: patched separately (
useSuffix: true)
- Claude ACP adapter version: not root cause
- reproduced with
@zed-industries/claude-agent-acp@0.21.x
- reproduced with
@zed-industries/claude-agent-acp@0.23.1
- reproduced with
@agentclientprotocol/claude-agent-acp@0.24.2
Minimal reproduction
1) Ensure a persistent session
cd /Users/macmini16/.openclaw/workspace
/opt/homebrew/lib/node_modules/openclaw/dist/extensions/acpx/node_modules/.bin/acpx --format json --verbose claude sessions ensure --name diag-thread
Observed:
{"action":"session_ensured","created":true,"acpxRecordId":"ce03bfd0-1736-4a9a-a36d-32aaed258617","acpxSessionId":"ce03bfd0-1736-4a9a-a36d-32aaed258617","name":"diag-thread"}
2) Immediately check status
cd /Users/macmini16/.openclaw/workspace
/opt/homebrew/lib/node_modules/openclaw/dist/extensions/acpx/node_modules/.bin/acpx --format json --verbose claude status --session diag-thread
Observed:
{"action":"status_snapshot","status":"dead","pid":17014,"summary":"queue owner unavailable","acpxRecordId":"ce03bfd0-1736-4a9a-a36d-32aaed258617","acpxSessionId":"ce03bfd0-1736-4a9a-a36d-32aaed258617"}
Additional observations
sessions ensure succeeds repeatedly.
status reports dead immediately after creation.
- Downstream OpenClaw logs show matching symptoms:
acpx ensureSession replacing dead named session
summary=queue owner unavailable
- This suggests either:
- queue owner process exits immediately after session creation, or
- queue owner health probe incorrectly marks a live owner as dead.
Why this matters
OpenClaw ACP thread-bound persistent sessions depend on acpx persistent session health.
As a result, thread-bound ACP sessions are currently unstable, even though one-shot ACP runs work.
Current workaround
Use ACP in one-shot mode only:
mode: "run"
thread: false
Request
Please investigate acpx queue owner lifecycle / health probing for newly-created persistent sessions on macOS.
Potential areas:
- queue owner spawn / detach / env handoff
- PID persistence vs actual process liveness
- immediate health probe timing / race
- status health criteria for newly-created sessions
Persistent sessions become dead immediately (
queue owner unavailable) on macOSSummary
Persistent acpx sessions are created successfully, but immediately report
dead / queue owner unavailableon status checks.This reproduces outside OpenClaw, so the issue appears to be in acpx persistent session / queue owner health rather than OpenClaw routing.
Environment
/Users/macmini16/.openclaw/workspaceWhat was ruled out
OPUS_OKone-shot confirmed)useSuffix: true)@zed-industries/claude-agent-acp@0.21.x@zed-industries/claude-agent-acp@0.23.1@agentclientprotocol/claude-agent-acp@0.24.2Minimal reproduction
1) Ensure a persistent session
cd /Users/macmini16/.openclaw/workspace /opt/homebrew/lib/node_modules/openclaw/dist/extensions/acpx/node_modules/.bin/acpx --format json --verbose claude sessions ensure --name diag-threadObserved:
{"action":"session_ensured","created":true,"acpxRecordId":"ce03bfd0-1736-4a9a-a36d-32aaed258617","acpxSessionId":"ce03bfd0-1736-4a9a-a36d-32aaed258617","name":"diag-thread"}2) Immediately check status
cd /Users/macmini16/.openclaw/workspace /opt/homebrew/lib/node_modules/openclaw/dist/extensions/acpx/node_modules/.bin/acpx --format json --verbose claude status --session diag-threadObserved:
{"action":"status_snapshot","status":"dead","pid":17014,"summary":"queue owner unavailable","acpxRecordId":"ce03bfd0-1736-4a9a-a36d-32aaed258617","acpxSessionId":"ce03bfd0-1736-4a9a-a36d-32aaed258617"}Additional observations
sessions ensuresucceeds repeatedly.statusreportsdeadimmediately after creation.acpx ensureSession replacing dead named sessionsummary=queue owner unavailableWhy this matters
OpenClaw ACP thread-bound persistent sessions depend on acpx persistent session health.
As a result, thread-bound ACP sessions are currently unstable, even though one-shot ACP runs work.
Current workaround
Use ACP in one-shot mode only:
mode: "run"thread: falseRequest
Please investigate acpx queue owner lifecycle / health probing for newly-created persistent sessions on macOS.
Potential areas: