---
name: stale-broker-attach-wedge
description: "Diagnostic signature — attach hangs with \"brain IPC read deadline\" while list/dial work = stale daemon broker from an old rev; fix = full daemon restart"
metadata: 
  node_type: memory
  type: project
  originSessionId: 98f26b98-929c-40a8-9375-cc35cb39dc8f
---

`spt rc <id>` / `endpoint run --attach` fails `RC_FAIL:<id>: attach request: brain IPC read deadline elapsed` (after `PUMP_IPC_READER: spawned`), but `endpoint list` works and the endpoint shows live.

**Root signature:** the broker answers earlier ops (`resolve_session`/list-sessions, `net_dial_loopback`) but the 10s setup deadline fires on `request_attach` (`net_open_stream`, rc.rs:846). That op-selective behavior = a **stale daemon broker from a PRE-rebuild spt-core rev** still running; `daemon::ensure_running` REUSES it (never restarts a live daemon), so a freshly-built `spt.exe` CLI talks to an old broker that mis/never-handles the newer attach-open path.

**Fix:** `spt daemon stop` → `spt daemon run` (or let `spt rc` auto-start a fresh one). The dev `target\debug\spt.exe` daemon is killable and does NOT touch live owl agents (separate infra, [[spt-daemon-is-live-infra]]).

**Confirmed** operator 2026-06-23 (first attach since before v0.13.0; restart fixed it instantly).

**Prevention candidate (unbuilt):** broker should detect CLI↔broker version/ABI skew on connect and emit an actionable "daemon is an old rev — restart it" instead of the cryptic 10s deadline. Kin to [[v091-resolve-dotstem]] (REQ-HAZARD-BROKER-SEED-WIRE-SKEW).
