Cross-session messaging (ListAgents/SendMessage) permanently disabled after update, survives reboot/reinstall

Status Open
Reported on v2.1.250
Maintainer reply None cached
Activity 5 comments · opened Aug 28, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary

ListAgents and outbound SendMessage-by-name — used to coordinate between multiple simultaneously-open Claude Code sessions/tabs on the same machine — stopped working during an extension update on 2026-08-28 and has not recovered despite a full computer reboot, a clean extension reinstall, and updating to the latest available version.

Environment

  • Claude Code for VS Code (Anthropic extension), Windows 11
  • Affected versions: 2.1.250 and 2.1.251 (confirmed broken on both, each freshly installed/restarted)
  • Last known-working version: 2.1.247

Timeline (all times Pacific, 2026-08-28)

  • ~10:30 AM – 12:18:53 PM: ListAgents working normally — repeated successful calls (14+ confirmed in one session's transcript alone) returning real peer-session lists, on versions 2.1.246 and 2.1.247.
  • ~12:10 PM: Extension auto-update begins rolling out (confirmed via a separate tab's own investigation).
  • 12:17:46 PM – 12:24:40 PM: A directory rename/move operation was performed in one session (mv, then PowerShell Move-Item/Rename-Item), during which the first attempt failed with a Windows file-lock error — "another process's shell CWD pointing inside the folder" — cause never identified. This window fully overlaps the failure transition below.
  • 12:18:53 PM: Last confirmed-successful ListAgents call (version 2.1.247).
  • 12:23:25 PM – 12:25:13 PM: All four claude.exe processes on the machine restart simultaneously (confirmed via Win32_Process CreationDate), landing on version 2.1.250.
  • 12:31:49 PM: First hard failure — Error: No such tool available: ListAgents. ListAgents is disabled for this session, in subagents as well as here. Confirmed reproducible in every subsequent attempt, including fresh subagents.

Two distinct failure modes observed across two different sessions/tabs

  1. One session: went directly from working → hard-absent (tool missing entirely from the function list). No intermediate state observed.
  2. A second, separate tab (running a different install — the standalone CLI at .local\bin\claude.exe, version 2.1.251, staged on disk at 12:10:09 PM): experienced a soft-refuse state first — ListAgents still existed as a callable tool but returned "Cross-session messaging is switched off in this session right now." That tab then edited crossSessionInbound in settings.json (already "accept", no change in effective value) and was told the change might need a restart to take effect. Restarting is exactly when that tab's failure escalated from soft-refuse to the same hard-absent state.

What has been ruled out

  • settings.json misconfiguration: crossSessionInbound is "accept" (the permissive value) in both sessions; the file is valid JSON with no duplicate/conflicting keys.
  • Stale/cached version: confirmed broken on 2.1.250 (staggered-rollout version) AND 2.1.251 (current latest, obtained via explicit in-app "Update" and via full extension uninstall+reinstall).
  • Process-level staleness: confirmed broken on freshly-restarted processes (VS Code reload, full computer reboot, and a genuine version-bump restart all produce the same failure).
  • Local daemon/service issue: no separate persistent Claude-Code background process exists on the machine to restart — all claude.exe instances share one parent (the VS Code extension host); there's nothing standalone to bounce.
  • No settings.json toggle exists for enabling/disabling ListAgents/SendMessage availability at all (full schema reviewed).

Suspected trigger (not proven, offered as the leading lead)

The extension update appears to have rolled out staggered across tabs, not atomically — one tab confirmed its update ran at 12:10 PM, while another tab was still successfully using the old version's ListAgents as late as 12:18:53 PM, 8+ minutes later. This means, for a window of at least 13 minutes, multiple claude.exe processes on the same machine were running different versions while still expected to coordinate with each other via the peer-discovery mechanism ListAgents/SendMessage depend on. A directory-rename operation with an unexplained Windows file-lock conflict occurred in exactly this same window, in one of the affected sessions, though causation there is unconfirmed.

Expected behavior

ListAgents/SendMessage should either continue working across an update, or fail gracefully/recoverably (e.g., via restart) rather than becoming permanently and totally unavailable across every subsequent version, reboot, and reinstall.

Actual behavior

Complete, persistent unavailability of ListAgents (and by extension, name-based SendMessage to previously-known peers) since ~12:31 PM today, unrecovered by any client-side remediation attempted.

Impact

Blocks a peer-review coordination step that is part of our team's process for verifying safety before committing changes across concurrently-open sessions.

What Should Happen?

ListAgents/SendMessage should either continue working across an update, or fail gracefully/recoverably (e.g., via a restart), rather than becoming permanently and totally unavailable across every subsequent version, reboot, and reinstall.

Error Messages/Logs

Error: No such tool available: ListAgents. ListAgents is disabled for this session, in subagents as well as here.

(A second, separate session/tab saw a different prior state first: "Cross-session messaging is switched off in this session right now." — a soft refusal that escalated to the hard error above after that session was restarted.)

Steps to Reproduce

  1. Have multiple Claude Code sessions/tabs open simultaneously on the same machine, successfully using ListAgents/SendMessage to coordinate.
  2. Let the Claude Code VS Code extension auto-update while those sessions remain open (in our case, the update rolled out staggered across tabs over a 13+ minute window rather than atomically — some tabs updated before others).
  3. Once all tabs have landed on the new version, ListAgents/SendMessage become permanently unavailable ("No such tool available") in every session and every newly-spawned subagent.
  4. Confirmed persistent: unaffected by VS Code reload, full computer reboot, extension reinstall, or updating to the next available version.

We don't have a minimal, deterministic reproduction — this was observed live, not manufactured — but the timeline above is drawn directly from session transcript timestamps, not recollection.

Claude Model

Sonnet (default)

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.1.247

Claude Code Version

2.1.251

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

VS Code integrated terminal

Additional Information

  • Running via the Claude Code VS Code extension, not a standalone terminal.
  • ANTHROPIC_BASE_URL is set to a custom corporate API gateway (Azure APIM proxying to Anthropic), not a direct Anthropic API key.
  • A second, separate session on the same machine was running the standalone CLI install (.local\bin\claude.exe) at version 2.1.251, and experienced a related but distinct failure mode (see "Two distinct failure modes" section in the bug description above).
  • Checked existing issues #44080, #61248, #36196, #84945 — none appear to match (different version era, different root cause, or locked/unrelated).

View original on GitHub ↗

3 Comments

MilkyWay008 · 1 month ago

ListAgents dying mid-update and never coming back, that's usually the extension's persisted peer/agent state getting half-written when the new version lands while another tab still holds the old process. Since you saw that mv fail with a file lock right around the rollout, I'd check %APPDATA%\Code\User\globalStorage\anthropic.claude-code for stale or half-written state, and grab the extension-host output from the Claude Code channel before anything else. As a stopgap, install 2.1.247 from a VSIX and see if the tool comes back, that isolates whether it's the state or the new build. If it returns on 247, the state survived and you can wait for the fix.

cnighswonger · 1 month ago

Confirming the same symptom on CC 2.1.257 on Linux.

Observed today: a session that came online after a peer's session started is
invisible to that peer's ListAgents output. The peer's roster snapshot
appears to happen at connect time and does not refresh even after:

  • A full /exit and relaunch of the peer's CC session.
  • Repeated ListAgents calls in the peer session.

Reverse direction works — the newer session sees the older peer fine. So the
gap is asymmetric: an existing session cannot discover a session that
registered after it.

Result: bidirectional cross-session coordination is broken between any two
sessions where one started after the other's connect handshake.

Restart-doesn't-fix matches what OP reported. Adding data point for
prevalence.

— AI Team Lead

harry930216 · 1 month ago

Filed #93218 for what looks like a related but distinct root cause, in case it helps triage separate them.

In Claude Desktop the tool is not missing — it is explicitly disabled at spawn:

claude.exe … --allowedTools …,mcp__ccd_session_mgmt__send_message,… --disallowedTools SendMessage

plus a permission-layer auto-deny (reason: "cli_native_send_message"). Running the desktop app's own bundled claude.exe in CLI mode returns SendMessage normally, so it is not a version regression on that surface.

The symptom you and I share is the second half: ListAgents stays enabled and still documents SendMessage({to: "<name>"}) as the address, and every subagent still returns use SendMessage with to: '<agentId>' to continue this agent — so the model keeps reaching for a tool that is not there.

If your case has no --disallowedTools in the process command line (Get-CimInstance Win32_Process -Filter "Name='claude.exe'" on Windows), then it is a different failure from mine and the two should stay separate.

Showing cached comments. Read the full discussion on GitHub ↗