[BUG] list_sessions_request hangs on SMB-mounted workspaces (VS Code extension, v2.1.237)

Status Open
Reported on v2.1.237
Maintainer reply None cached
Activity 0 comments · opened Aug 20, 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?

Environment

  • Claude Code VS Code extension v2.1.237 (win32-x64)
  • Windows 11
  • Workspace on an SMB network drive (mapped P: → \\host\share)

Summary

The Local tab of Session history shows only the current session, even though
11 valid .jsonl transcripts exist on disk for this project. The Web tab works
correctly (8 remote sessions fetched).

Evidence

Extension log shows list_sessions_request being sent at startup with no
corresponding response or error anywhere in the log:

[info] Received message from webview: {"type":"request","requestId":"fadqsm5btj9","request":{"type":"list_sessions_request"}}

Meanwhile the remote equivalent succeeds:

[info] Fetched 8 remote sessions

Transcripts exist on disk

~/.claude/projects/p--<project>/ contains 11 .jsonl files (73KB–4.9MB),
actively written to by current sessions. claude --resume from the CLI
lists all of them correctly, so the data is intact — only the extension's
Local listing fails.

Suspected cause

Session enumeration appears to time out under slow network I/O:

  • setup() completed in 5533ms / 6510ms / 7927ms / 8290ms
  • time_to_interactive: 61162ms
  • [event-loop-stall] blocked for 3803ms ... 4629ms (majflt up to 3390)
  • Four Claude processes spawned concurrently, contending for the config lock:

Failed to save config with lock: Error: Lock file is already being held (×5)

Expected

Local tab lists all sessions with transcripts for the current project,
or surfaces an error if enumeration fails.

Actual

Only the current session appears. No error is shown to the user and none
appears in the log.

What Should Happen?

The Local tab of Session history should list all sessions that have
transcripts for the current project, or surface an error if enumeration
fails. Currently it silently shows only the current session.

Error Messages/Logs

2026-08-20 15:59:17.771 [info] Received message from webview: {"type":"request","requestId":"yclaioiehmc","request":{"type":"init"}}
2026-08-20 15:59:17.771 [info] Getting authentication status
2026-08-20 15:59:17.772 [info] OAuth tokens found in secure storage
2026-08-20 15:59:17.772 [info] Received message from webview: {"type":"request","requestId":"zpdhakr35ep","request":{"type":"get_claude_state"}}
2026-08-20 15:59:17.772 [info] Received message from webview: {"type":"request","requestId":"a0zw1uq3ly8","request":{"type":"get_current_selection"}}
2026-08-20 15:59:17.772 [info] Received message from webview: {"type":"request","requestId":"9rnyu5gegr","request":{"type":"get_asset_uris"}}
2026-08-20 15:59:17.772 [info] Received message from webview: {"type":"request","requestId":"fadqsm5btj9","request":{"type":"list_sessions_request"}}
2026-08-20 15:59:17.772 [info] Received message from webview: {"type":"request","requestId":"9mf7r6c0flv","request":{"type":"get_session_groups"}}
2026-08-20 15:59:17.772 [info] Received message from webview: {"type":"request","requestId":"r03qk9uchk8","request":{"type":"get_session_groups"}}
2026-08-20 15:59:17.861 [info] Getting authentication status
2026-08-20 15:59:17.862 [info] OAuth tokens found in secure storage
2026-08-20 15:59:17.862 [info] Getting authentication status
2026-08-20 15:59:17.863 [info] OAuth tokens found in secure storage
2026-08-20 15:59:17.892 [info] Getting authentication status
2026-08-20 15:59:17.893 [info] OAuth tokens found in secure storage
2026-08-20 15:59:17.893 [info] Getting authentication status
2026-08-20 15:59:17.894 [info] OAuth tokens found in secure storage
2026-08-20 15:59:18.539 [info] Loading config cache by launching Claude (no channel)...
2026-08-20 15:59:22.284 [info] Received message from webview: {"type":"request","requestId":"ptfpv6ovr9e","request":{"type":"get_claude_state"}}
2026-08-20 15:59:22.286 [info] Received message from webview: {"type":"request","requestId":"vngvyti583g","request":{"type":"get_current_selection"}}
2026-08-20 15:59:22.289 [info] Received message from webview: {"type":"request","requestId":"cy5d8s6bf7d","request":{"type":"get_asset_uris"}}
2026-08-20 15:59:22.291 [info] Received message from webview: {"type":"request","requestId":"pfjujz2hqp","request":{"type":"list_sessions_request"}}
2026-08-20 15:59:22.293 [info] Received message from webview: {"type":"request","requestId":"ac4wp8n2rm","request":{"type":"get_session_groups"}}
2026-08-20 15:59:22.327 [info] Received message from webview: {"type":"request","requestId":"9dmho4rfjro","request":{"type":"get_session_groups"}}
2026-08-20 15:59:26.528 [info] Received message from webview: {"type":"request","requestId":"yeie2lb8ul","request":{"type":"rename_tab","title":"Claude Code","hasPendingPermissions":false,"hasUnseenCompletion":false}}
2026-08-20 15:59:26.830 [info] Received message from webview: {"type":"request","requestId":"yau92int6bs","request":{"type":"rename_tab","title":"Claude Code","hasPendingPermissions":false,"hasUnseenCompletion":false}}
2026-08-20 15:59:26.833 [info] Received message from webview: {"type":"launch_claude","channelId":"yxnz0exjeoi","cwd":"p:\\FXC.HQX4570.R00003.1.B1.DAILY","permissionMode":"acceptEdits","thinkingLevel":"default_on"}
2026-08-20 15:59:26.863 [info] Launching Claude on channel: yxnz0exjeoi
2026-08-20 15:59:26.865 [info] Received message from webview: {"type":"request","requestId":"ezpqfhpiop8","request":{"type":"list_remote_sessions"}}
2026-08-20 15:59:26.876 [info] OAuth tokens found in secure storage
2026-08-20 15:59:26.976 [info] Received message from webview: {"type":"request","requestId":"jtffrvkueh","request":{"type":"rename_tab","title":"Claude Code","hasPendingPermissions":false,"hasUnseenCompletion":false}}
2026-08-20 15:59:26.979 [info] Received message from webview: {"type":"request","requestId":"pl484kjmz6l","request":{"type":"rename_tab","title":"Claude Code","hasPendingPermissions":false,"hasUnseenCompletion":false}}
2026-08-20 15:59:26.980 [info] Received message from webview: {"type":"launch_claude","channelId":"obedzbxckl","cwd":"p:\\FXC.HQX4570.R00003.1.B1.DAILY","permissionMode":"acceptEdits","thinkingLevel":"default_on"}
2026-08-20 15:59:26.983 [info] Launching Claude on channel: obedzbxckl
2026-08-20 15:59:28.697 [info] Fetched 8 remote sessions
2026-08-20 15:59:40.729 [info] Received message from webview: {"type":"request","requestId":"u00iuj93cdj","request":{"type":"list_sessions_request"}}
2026-08-20 15:59:40.813 [info] Received message from webview: {"type":"request","requestId":"pi6z48bxe6","request":{"type":"list_remote_sessions"}}
2026-08-20 15:59:40.818 [info] OAuth tokens found in secure storage
2026-08-20 15:59:42.055 [info] Fetched 8 remote sessions
2026-08-20 15:59:55.400 [info] Received message from webview: {"type":"request","channelId":"yxnz0exjeoi","requestId":"thb1jc7ti5r","request":{"type":"log_event","eventName":"input_lag_sample","eventData":{"durationMs":336}}}
2026-08-20 15:59:55.401 [warning] Channel not found for logEvent: yxnz0exjeoi
2026-08-20 16:00:04.994 [info] Spawning Claude with SDK query function - cwd: p:\FXC.HQX4570.R00003.1.B1.DAILY, permission mode: default, version: 2.1.237, c:\Users\hank.chen\.vscode\extensions\anthropic.claude-code-2.1.237-win32-x64\resources\native-binary\claude.exe, resume: undefined
2026-08-20 16:00:05.187 [info] Spawning Claude with SDK query function - cwd: p:\FXC.HQX4570.R00003.1.B1.DAILY, permission mode: acceptEdits, version: 2.1.237, c:\Users\hank.chen\.vscode\extensions\anthropic.claude-code-2.1.237-win32-x64\resources\native-binary\claude.exe, resume: undefined
2026-08-20 16:00:05.249 [info] Spawning Claude with SDK query function - cwd: p:\FXC.HQX4570.R00003.1.B1.DAILY, permission mode: default, version: 2.1.237, c:\Users\hank.chen\.vscode\extensions\anthropic.claude-code-2.1.237-win32-x64\resources\native-binary\claude.exe, resume: undefined
2026-08-20 16:00:05.419 [info] Spawning Claude with SDK query function - cwd: p:\FXC.HQX4570.R00003.1.B1.DAILY, permission mode: acceptEdits, version: 2.1.237, c:\Users\hank.chen\.vscode\extensions\anthropic.claude-code-2.1.237-win32-x64\resources\native-binary\claude.exe, resume: undefined
2026-08-20 16:00:08.374 [info] From claude: 2026-08-20T08:00:07.297Z [DEBUG] MDM settings load completed in 269ms

2026-08-20 16:00:08.375 [info] From claude: 2026-08-20T08:00:07.968Z [DEBUG] MDM settings load completed in 440ms

2026-08-20 16:00:08.375 [info] From claude: 2026-08-20T08:00:08.183Z [DEBUG] MDM settings load completed in 333ms

2026-08-20 16:00:09.562 [info] From claude: 2026-08-20T08:00:08.415Z [DEBUG] MDM settings load completed in 508ms
2026-08-20T08:00:09.361Z [DEBUG] Broken symlink or missing file encountered for settings.json at path: p:\FXC.HQX4570.R00003.1.B1.DAILY\.claude\settings.json

2026-08-20 16:00:09.601 [info] From claude: 2026-08-20T08:00:08.843Z [DEBUG] Broken symlink or missing file encountered for settings.json at path: p:\FXC.HQX4570.R00003.1.B1.DAILY\.claude\settings.json

2026-08-20 16:00:09.601 [info] From claude: 2026-08-20T08:00:08.981Z [DEBUG] Broken symlink or missing file encountered for settings.json at path: p:\FXC.HQX4570.R00003.1.B1.DAILY\.claude\settings.json

2026-08-20 16:00:09.603 [info] From claude: 2026-08-20T08:00:09.164Z [DEBUG] Broken symlink or missing file encountered for settings.json at path: p:\FXC.HQX4570.R00003.1.B1.DAILY\.claude\settings.json

2026-08-20 16:00:09.680 [info] From claude: 2026-08-20T08:00:09.638Z [DEBUG] Broken symlink or missing file encountered for settings.json at path: C:\Program Files\ClaudeCode\managed-settings.json
2026-08-20T08:00:09.646Z [DEBUG] CA certs: Config fallback - globalEnv keys: , settingsEnv keys: none

2026-08-20 16:00:10.103 [info] From claude: 2026-08-20T08:00:09.696Z [DEBUG] [init] configureGlobalMTLS starting
2026-08-20T08:00:09.696Z [DEBUG] [init] configureGlobalMTLS complete
2026-08-20T08:00:09.697Z [DEBUG] [init] configureGlobalAgents starting
2026-08-20T08:00:09.697Z [DEBUG] CA certs: stores=bundled,system, extraCertsPath=undefined
2026-08-20T08:00:09.712Z [DEBUG] CA certs: Loaded 121 bundled root certificates
2026-08-20T08:00:09.987Z [DEBUG] CA certs: Dropped 51 expired certificate(s) from system store
2026-08-20T08:00:10.015Z [DEBUG] CA certs: Loaded 230 system CA certificates
2026-08-20T08:00:10.016Z [DEBUG] mTLS: Creating HTTPS agent with custom certificates
2026-08-20T08:00:10.016Z [DEBUG] [init] configureGlobalAgents complete
2026-08-20T08:00:10.019Z [DEBUG] Using bash path: "C:\Program Files\Git\bin\bash.exe"
2026-08-20T08:00:10.024Z [DEBUG] Git remote URL: null
2026-08-20T08:00:10.024Z [DEBUG] No git remote URL found
2026-08-20T08:00:10.041Z [DEBUG] Error log sink initialized

Steps to Reproduce

  1. Map a network drive to an SMB share (e.g. P: → \\host\share) and place a

project folder on it.

  1. Use Claude Code in that folder over several days so that multiple session

transcripts accumulate. Verify with:
ls $env:USERPROFILE\.claude\projects\<encoded-project-name>\*.jsonl
(in my case: 11 files, 73KB–4.9MB)

  1. Restart VS Code and open that folder.
  2. Click the Session history button, Local tab.

Result: only the current session is listed. The Web tab correctly fetches
remote sessions, and claude --resume from the CLI lists all 11 local
sessions, so the transcripts are intact.

The extension log shows list_sessions_request sent at startup with no
response or error for that requestId anywhere in the log.

Claude Model

Sonnet (default)

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.1.237

Claude Code Version

2.1.237 (Claude Code)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Windows Terminal

Additional Information

Environment specifics (likely relevant to reproduction)

All source lives on SMB network drives, not local disk:
P: -> \10.61.25.159<share> (project root)

The repo is large — a single Grep over it took 6967ms in one session. This
appears to matter: startup is heavily degraded and the session enumeration
never completes.
[STARTUP] setup() completed in 5533ms / 6510ms / 7927ms / 8290ms
time_to_interactive: 61162ms
[event-loop-stall] blocked for 3803ms (majflt=2413)
[event-loop-stall] blocked for 4629ms (majflt=3390)

Four Claude processes were spawned concurrently on window restore, contending
for the same config lock:

Failed to save config with lock: Error: Lock file is already being held (x5)
Lock acquisition took longer than expected - another Claude instance may be running

Workaround

claude --resume from the standalone CLI lists all 11 sessions correctly, so
this is specific to the extension's Local listing path, not to the transcript
data.

Unrelated minor issues seen in the same log

  • ripgrep fails on every startup because the plugins cache dir doesn't exist:

rg: C:\Users\<user>\.claude\plugins\cache: IO error ... (os error 3), 0 results

  • Grove settings fetch times out (3000ms) behind a corporate network

I can provide the full extension log — attached.

claude.log.txt

View original on GitHub ↗