You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As of 2026-08-16 ~18:59Z, no agent in the workspace can be reached by DM. Every message dm send returns recipient_unresolved, while the fleet itself is healthy and the agents are demonstrably still working.
This is filed separately from #1539 because the symptom shape is distinct — there the agent's node_id was missing; here every field looks correct and resolution still fails — and because the blast radius is the whole workspace rather than one agent.
Measured, with controls
Every recipient tried fails, 8 of 8: fleet-spawned agents on two different mini nodes and locally-spawned agents on the laptop, including factory-lead, which had been reachable ~20 minutes earlier.
Control arm — a second sender identity gets the identical result. So this is not one agent's seat or token.
The sender's own credentials are fine: agent-relay agent me returns the record normally.
Inbound still works. Agents continue to deliver messages to the coordinator throughout. It is outbound recipient resolution that fails.
Every node is healthy. All four report online, live: true, heartbeating within 5 seconds, with agents attributed: 9, 21, 17, 2.
The work did not stop. Lanes kept pushing during the outage — a PR head moved at 19:05:18Z and issue comments continued to land. Only coordination is down.
The registry state that accompanies it
Zero of 1679 agent records read active. 1643 offline, 36 unknown.
Grouping every record by lastSeenAt shows repeated bulk stamps — one identical timestamp shared by many agents, which is the signature of a single UPDATE rather than many independent deaths:
agents
identical lastSeen
221
2026-08-16T10:46:42Z
186
2026-08-16T12:29:32Z
77
2026-08-16T10:24:42Z
28
2026-08-16T18:59:15Z
The 18:59:15 stamp coincides with the onset of the outage. The earlier ones show this is recurrent, several times a day, not a one-off.
Why this is worse than it looks
If DM recipient resolution requires an active record, then every bulk stamp is a fleet-wide coordination outage — and nothing appears to restore the records afterwards. During this window a supervisor can watch its agents work and cannot send any of them a single instruction, a correction, or a stop.
That is not hypothetical: it happened during active incident response. Direction had to be delivered by posting GitHub issue comments instead, because that surface still worked in both directions.
Caveat on the status field, deliberately stated
status is known to be unreliable in this system — relaycast#312 records live agents rendering as not-active through the API while the column holds otherwise. So the counts above are corroborating evidence, not the finding. The finding is behavioural: sends fail, from two identities, to every recipient, reproducibly.
What would settle it
Does DM recipient resolution require status = 'active'? If so, name the query, and that is the coupling to break or to guarantee.
Is there a resolution path that does not depend on the liveness field at all? A supervisor being unable to reach a running agent is a worse failure than a stale status field.
Related: #1539 (a live agent unroutable via --node when missing from the broker's fleet_inventory), #1387 (surface injected-but-unprocessed per agent), #1531 (delivery over simulated keystrokes), #1310 (delivery_ack before echo verification), relaycast#312 (status rendering).
Summary
As of 2026-08-16 ~18:59Z, no agent in the workspace can be reached by DM. Every
message dm sendreturnsrecipient_unresolved, while the fleet itself is healthy and the agents are demonstrably still working.This is filed separately from #1539 because the symptom shape is distinct — there the agent's
node_idwas missing; here every field looks correct and resolution still fails — and because the blast radius is the whole workspace rather than one agent.Measured, with controls
factory-lead, which had been reachable ~20 minutes earlier.agent-relay agent mereturns the record normally.online,live: true, heartbeating within 5 seconds, with agents attributed: 9, 21, 17, 2.The registry state that accompanies it
Zero of 1679 agent records read
active. 1643offline, 36unknown.Grouping every record by
lastSeenAtshows repeated bulk stamps — one identical timestamp shared by many agents, which is the signature of a single UPDATE rather than many independent deaths:lastSeenThe 18:59:15 stamp coincides with the onset of the outage. The earlier ones show this is recurrent, several times a day, not a one-off.
Why this is worse than it looks
If DM recipient resolution requires an
activerecord, then every bulk stamp is a fleet-wide coordination outage — and nothing appears to restore the records afterwards. During this window a supervisor can watch its agents work and cannot send any of them a single instruction, a correction, or a stop.That is not hypothetical: it happened during active incident response. Direction had to be delivered by posting GitHub issue comments instead, because that surface still worked in both directions.
Caveat on the status field, deliberately stated
statusis known to be unreliable in this system — relaycast#312 records live agents rendering as not-active through the API while the column holds otherwise. So the counts above are corroborating evidence, not the finding. The finding is behavioural: sends fail, from two identities, to every recipient, reproducibly.What would settle it
status = 'active'? If so, name the query, and that is the coupling to break or to guarantee.inventory.syncpath is documented as the only restore route (see A live agent is permanently unroutable via --node when it is missing from the broker's fleet_inventory (workers/fleet_inventory divergence) #1539) — establish whether it runs and fails, or never runs.Related: #1539 (a live agent unroutable via
--nodewhen missing from the broker'sfleet_inventory), #1387 (surface injected-but-unprocessed per agent), #1531 (delivery over simulated keystrokes), #1310 (delivery_ack before echo verification), relaycast#312 (status rendering).