Cross-session messaging (ListAgents/SendMessage) permanently disabled after update, survives reboot/reinstall
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:
ListAgentsworking 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 PowerShellMove-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
ListAgentscall (version 2.1.247). - 12:23:25 PM – 12:25:13 PM: All four
claude.exeprocesses on the machine restart simultaneously (confirmed viaWin32_ProcessCreationDate), 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
- One session: went directly from working → hard-absent (tool missing entirely from the function list). No intermediate state observed.
- 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 —ListAgentsstill existed as a callable tool but returned"Cross-session messaging is switched off in this session right now."That tab then editedcrossSessionInboundinsettings.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.jsonmisconfiguration:crossSessionInboundis"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.exeinstances share one parent (the VS Code extension host); there's nothing standalone to bounce. - No settings.json toggle exists for enabling/disabling
ListAgents/SendMessageavailability 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
- Have multiple Claude Code sessions/tabs open simultaneously on the same machine, successfully using ListAgents/SendMessage to coordinate.
- 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).
- 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.
- 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).
Showing cached comments. Read the full discussion on GitHub ↗
3 Comments
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-codefor 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.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
ListAgentsoutput. The peer's roster snapshotappears to happen at connect time and does not refresh even after:
/exitand relaunch of the peer's CC session.ListAgentscalls 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
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:
plus a permission-layer auto-deny (
reason: "cli_native_send_message"). Running the desktop app's own bundledclaude.exein CLI mode returnsSendMessagenormally, so it is not a version regression on that surface.The symptom you and I share is the second half:
ListAgentsstays enabled and still documentsSendMessage({to: "<name>"})as the address, and every subagent still returnsuse 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
--disallowedToolsin 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.