VS Code Extension v2.0.5 silent deadlock after running bash command - no logs for 8+ hours
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:
- Extension: anthropic.claude-code v2.0.5
- Version: 1.104.3 (user setup)
Commit: 385651c938df8a906869babee516bffd0ddb9829
Date: 2025-10-02T12:30:51.747Z
Electron: 37.3.1
ElectronBuildId: 12404162
Chromium: 138.0.7204.235
Node.js: 22.18.0
V8: 13.8.258.31-electron.0
OS: Windows_NT x64 10.0.19045
- Model: Claude Sonnet 4.5
Bug Description:
Claude Code became unresponsive and continued "thinking" for 8+ hours without
producing output. None of the standard recovery mechanisms worked:
- Red stop button (square icon) did nothing
- Pressing Esc twice had no effect
- Commands like /rewind, /context, /todos were ignored
- Claude logo kept spinning with status messages but no actual progress
Steps to Reproduce:
"Asked Claude to analyse codebase to suggest improvements and plan next steps, "Was working on todo item 4 of 9"
Critical Evidence:
Extension became completely unresponsive with NO logging after running a bash command.
Timeline from logs:
- 23:40:19 - Approved bash command:
php artisan test(180s timeout) - 23:42:04 - Extension reactivated (only 2 min after command started)
- 07:41:27 - No logs for 8 hours until manual restart
- UI showed "thinking" status but backend was completely silent
The Problem:
- Bash command appears to have hung
- NO error logs generated
- NO timeout triggered despite 180s timeout setting
- UI continued showing activity indicators
- Stop button, Esc×2, and slash commands all ineffective
- Extension appeared to "reactivate" but didn't actually recover
Full logs attached (showing the gap)
Environment:
- Project: PHP/Laravel (running artisan test)
- Command that triggered it: php artisan test with 180s timeout
What Should Happen?
Expected:
- Timeout error after 180 seconds
- Logs showing tool execution status
- Ability to cancel stuck operations
Actual:
- Silent deadlock with zero logging
- UI falsely indicated work in progress
- Only fix: delete ~/.claude directory
Expected Behavior:
Either Claude should complete the task, or stop mechanisms should work
to interrupt it.
Actual Behavior:
Claude appeared stuck in an infinite loop. Only fix was deleting ~/.claude
and losing all session data.
Error Messages/Logs
**Output Logs:**
2025-10-03 23:34:43.839 [info] diff from c:\Users\noelm\Herd\auto-test\tests\Feature\Auth\PasswordConfirmationTest.php to c:\Users\noelm\Herd\auto-test\tests\Feature\Auth\PasswordConfirmationTest.php as Claude‘s edit: c:\Users\noelm\Herd\auto-test\tests\Feature\Auth\PasswordConfirmationTest.php (4s79j0)
2025-10-03 23:34:53.288 [info] Closing all diff tabs in the editor...
2025-10-03 23:34:55.971 [info] Received message from webview: {"type":"cancel_request","targetRequestId":"9iyk3v6pmpq"}
2025-10-03 23:34:55.976 [info] Received message from webview: {"type":"response","requestId":"78d683d159d5a6dcf4081e4b95e70b68","response":{"type":"tool_permission_response","result":{"behavior":"allow","updatedInput":{"file_path":"c:\\Users\\noelm\\Herd\\auto-test\\tests\\Feature\\Auth\\PasswordConfirmationTest.php","old_string":" $response\n ->assertHasNoErrors()\n ->assertRedirect(route('dashboard', absolute: false));","new_string":" $response\n ->assertHasNoErrors()\n ->assertRedirect(route('home', absolute: false));"},"updatedPermissions":[]}}}
2025-10-03 23:35:06.470 [info] Closed 1 diff tabs.
2025-10-03 23:35:09.887 [info] tab_closed Claude‘s edit: c:\Users\noelm\Herd\auto-test\tests\Feature\Auth\EmailVerificationTest.php (poho2i)
2025-10-03 23:35:09.887 [info] diff operation completed undefined
2025-10-03 23:35:19.318 [info] diff result undefined Claude‘s edit: c:\Users\noelm\Herd\auto-test\tests\Feature\Auth\PasswordConfirmationTest.php (4s79j0) {"$mid":1,"external":"file:///c%3A/Users/noelm/Herd/auto-test/tests/Feature/Auth/PasswordConfirmationTest.php","path":"/c:/Users/noelm/Herd/auto-test/tests/Feature/Auth/PasswordConfirmationTest.php","scheme":"file"} {"$mid":1,"external":"_claude_vscode_fs_right:/c%3A/Users/noelm/Herd/auto-test/tests/Feature/Auth/PasswordConfirmationTest.php","path":"/c:/Users/noelm/Herd/auto-test/tests/Feature/Auth/PasswordConfirmationTest.php","scheme":"_claude_vscode_fs_right"} {"preview":false,"preserveFocus":true}
2025-10-03 23:35:25.085 [info] files.autoSave is off, waiting for file save
2025-10-03 23:35:38.933 [info] Received message from webview: {"type":"request","requestId":"4tbqkgjdzsq","request":{"type":"show_notification","message":"Claude is requesting permission to use Edit","severity":"info","buttons":["View"],"onlyIfNotVisible":true}}
2025-10-03 23:35:38.934 [info] Received message from webview: {"type":"request","requestId":"jdeydyik6y","request":{"type":"open_diff","originalFilePath":"c:\\Users\\noelm\\Herd\\auto-test\\tests\\Feature\\DashboardTest.php","newFilePath":"c:\\Users\\noelm\\Herd\\auto-test\\tests\\Feature\\DashboardTest.php","edits":[{"oldString":"<?php\n\nuse App\\Models\\User;\n\nuses(\\Illuminate\\Foundation\\Testing\\RefreshDatabase::class);\n\ntest('guests are redirected to the login page', function () {\n $response = $this->get('/dashboard');\n $response->assertRedirect('/login');\n});\n\ntest('authenticated users can visit the dashboard', function () {\n $user = User::factory()->create();\n $this->actingAs($user);\n\n $response = $this->get('/dashboard');\n $response->assertStatus(200);\n});","newString":"<?php\n\nuse App\\Models\\User;\n\nuses(\\Illuminate\\Foundation\\Testing\\RefreshDatabase::class);\n\ntest('guests can visit the home page', function () {\n $response = $this->get('/');\n $response->assertStatus(200);\n});\n\ntest('authenticated users can visit the home page', function () {\n $user = User::factory()->create();\n $this->actingAs($user);\n\n $response = $this->get('/');\n $response->assertStatus(200);\n});","replaceAll":false}],"supportMultiEdits":false}}
2025-10-03 23:35:38.939 [info] diff from c:\Users\noelm\Herd\auto-test\tests\Feature\DashboardTest.php to c:\Users\noelm\Herd\auto-test\tests\Feature\DashboardTest.php as Claude‘s edit: c:\Users\noelm\Herd\auto-test\tests\Feature\DashboardTest.php (0kxws6)
2025-10-03 23:35:53.265 [info] Closing all diff tabs in the editor...
2025-10-03 23:35:58.085 [info] Received message from webview: {"type":"cancel_request","targetRequestId":"jdeydyik6y"}
2025-10-03 23:35:58.100 [info] Received message from webview: {"type":"response","requestId":"05598b703276c3667a3845883d7c3fcf","response":{"type":"tool_permission_response","result":{"behavior":"allow","updatedInput":{"file_path":"c:\\Users\\noelm\\Herd\\auto-test\\tests\\Feature\\DashboardTest.php","old_string":"<?php\n\nuse App\\Models\\User;\n\nuses(\\Illuminate\\Foundation\\Testing\\RefreshDatabase::class);\n\ntest('guests are redirected to the login page', function () {\n $response = $this->get('/dashboard');\n $response->assertRedirect('/login');\n});\n\ntest('authenticated users can visit the dashboard', function () {\n $user = User::factory()->create();\n $this->actingAs($user);\n\n $response = $this->get('/dashboard');\n $response->assertStatus(200);\n});","new_string":"<?php\n\nuse App\\Models\\User;\n\nuses(\\Illuminate\\Foundation\\Testing\\RefreshDatabase::class);\n\ntest('guests can visit the home page', function () {\n $response = $this->get('/');\n $response->assertStatus(200);\n});\n\ntest('authenticated users can visit the home page', function () {\n $user = User::factory()->create();\n $this->actingAs($user);\n\n $response = $this->get('/');\n $response->assertStatus(200);\n});"},"updatedPermissions":[]}}}
2025-10-03 23:36:05.083 [info] Closed 1 diff tabs.
2025-10-03 23:36:10.688 [info] tab_closed Claude‘s edit: c:\Users\noelm\Herd\auto-test\tests\Feature\Auth\PasswordConfirmationTest.php (4s79j0)
2025-10-03 23:36:10.688 [info] diff operation completed undefined
2025-10-03 23:36:19.371 [info] diff result undefined Claude‘s edit: c:\Users\noelm\Herd\auto-test\tests\Feature\DashboardTest.php (0kxws6) {"$mid":1,"external":"file:///c%3A/Users/noelm/Herd/auto-test/tests/Feature/DashboardTest.php","path":"/c:/Users/noelm/Herd/auto-test/tests/Feature/DashboardTest.php","scheme":"file"} {"$mid":1,"external":"_claude_vscode_fs_right:/c%3A/Users/noelm/Herd/auto-test/tests/Feature/DashboardTest.php","path":"/c:/Users/noelm/Herd/auto-test/tests/Feature/DashboardTest.php","scheme":"_claude_vscode_fs_right"} {"preview":false,"preserveFocus":true}
2025-10-03 23:36:21.903 [info] files.autoSave is off, waiting for file save
2025-10-03 23:36:26.280 [info] Received message from webview: {"type":"request","requestId":"zimc2ea9oz","request":{"type":"show_notification","message":"Claude is requesting permission to use Bash","severity":"info","buttons":["View"],"onlyIfNotVisible":true}}
2025-10-03 23:39:36.042 [info] Received message from webview: {"type":"response","requestId":"fb7dedf91de4c8b7308114bb85ecbaa9","response":{"type":"tool_permission_response","result":{"behavior":"allow","updatedInput":{"command":"C:/Users/noelm/.config/herd/bin/php.bat vendor/bin/pint tests/Feature/Auth/ tests/Feature/DashboardTest.php","description":"Format updated test files"},"updatedPermissions":[]}}}
2025-10-03 23:40:13.609 [info] Received message from webview: {"type":"request","requestId":"q22j9w3sna","request":{"type":"show_notification","message":"Claude is requesting permission to use Bash","severity":"info","buttons":["View"],"onlyIfNotVisible":true}}
2025-10-03 23:40:19.997 [info] Received message from webview: {"type":"response","requestId":"4de6d3cfbfefbce4da0f9ecb7cc014b7","response":{"type":"tool_permission_response","result":{"behavior":"allow","updatedInput":{"command":"C:/Users/noelm/.config/herd/bin/php.bat artisan test","timeout":180000,"description":"Run all tests"},"updatedPermissions":[]}}}
2025-10-03 23:42:04.120 [info] Claude code extension is now active?
2025-10-03 23:42:04.121 [info] MCP Server running on port 44573 (localhost only)
2025-10-04 07:41:27.242 [info] Claude code extension is now active?
2025-10-04 07:41:27.243 [info] MCP Server running on port 49078 (localhost only)
2025-10-04 07:41:27.243 [info] AuthManager initialized
2025-10-04 07:41:27.944 [info] Received message from webview: {"type":"request","requestId":"yypverw6xbl","request":{"type":"init"}}
2025-10-04 07:41:27.948 [info] Getting authentication status
2025-10-04 07:41:27.948 [info] OAuth tokens found in secure storage
2025-10-04 07:41:27.948 [info] Auth status: method=claudeai
2025-10-04 07:41:27.976 [info] Received message from webview: {"type":"request","requestId":"zsefnhww4s9","request":{"type":"rename_tab","title":"Claude Code"}}
2025-10-04 07:41:27.977 [info] Received message from webview: {"type":"request","requestId":"sxvg5alm5kj","request":{"type":"get_claude_state"}}
2025-10-04 07:41:28.711 [info] Loading config cache by launching Claude...
2025-10-04 07:41:28.711 [info] Spawning Claude with SDK query function - cwd: c:\Users\noelm\Herd\auto-test, permission mode: default, version: 2.0.5, c:\Users\noelm\.vscode\extensions\anthropic.claude-code-2.0.5\resources\claude-code\cli.js, resume: undefined
2025-10-04 07:41:28.712 [info] Received message from webview: {"type":"request","requestId":"g8fragf6zc7","request":{"type":"get_current_selection"}}
2025-10-04 07:41:28.713 [info] Received message from webview: {"type":"request","requestId":"sne4x66b2jd","request":{"type":"get_asset_uris"}}
2025-10-04 07:41:28.715 [info] Received message from webview: {"type":"request","requestId":"yrptqdya1qb","request":{"type":"list_sessions_request"}}
2025-10-04 07:41:28.716 [info] Received message from webview: {"type":"request","requestId":"i2ujwsy581","request":{"type":"list_sessions_request"}}
2025-10-04 07:41:28.717 [info] Received message from webview: {"type":"request","requestId":"yjkwa1bgew","request":{"type":"list_sessions_request"}}
2025-10-04 07:41:28.718 [info] Received message from webview: {"type":"request","requestId":"pkzb6a66kd","request":{"type":"rename_tab","title":"Claude Code"}}
2025-10-04 07:41:28.719 [info] Received message from webview: {"type":"launch_claude","channelId":"pkk475ocon","cwd":"c:\\Users\\noelm\\Herd\\auto-test","model":"default","permissionMode":"default"}
2025-10-04 07:41:29.344 [info] Launching Claude on channel: pkk475ocon
2025-10-04 07:41:29.344 [info] Spawning Claude with SDK query function - cwd: c:\Users\noelm\Herd\auto-test, permission mode: default, version: 2.0.5, c:\Users\noelm\.vscode\extensions\anthropic.claude-code-2.0.5\resources\claude-code\cli.js, resume: undefined
2025-10-04 07:50:37.804 [info] Received message from webview: {"type":"request","requestId":"c1h5ltvmm7d","request":{"type":"login","method":"claudeai"}}
2025-10-04 07:50:37.806 [info] Starting OAuth login flow: method=claudeai
2025-10-04 07:50:48.997 [info] Saving OAuth tokens to secure storage
2025-10-04 07:50:48.997 [info] OAuth tokens saved to credentials file
2025-10-04 07:50:49.001 [info] Login successful
2025-10-04 07:50:49.001 [info] Getting authentication status
2025-10-04 07:50:49.001 [info] OAuth tokens found in secure storage
2025-10-04 07:50:49.001 [info] Auth status: method=claudeai
2025-10-04 07:50:49.002 [info] Closing Claude on channel: pkk475ocon
2025-10-04 07:50:49.078 [info] Closing Claude on channel: pkk475ocon
2025-10-04 07:51:21.433 [info] Received message from webview: {"type":"request","requestId":"noiwszd6imm","request":{"type":"rename_tab","title":"/todos"}}
2025-10-04 07:51:21.450 [info] Received message from webview: {"type":"launch_claude","channelId":"oumiywl7sb","cwd":"c:\\Users\\noelm\\Herd\\auto-test","model":"default","permissionMode":"default"}
2025-10-04 07:51:22.024 [info] Launching Claude on channel: oumiywl7sb
2025-10-04 07:51:22.024 [info] Spawning Claude with SDK query function - cwd: c:\Users\noelm\Herd\auto-test, permission mode: default, version: 2.0.5, c:\Users\noelm\.vscode\extensions\anthropic.claude-code-2.0.5\resources\claude-code\cli.js, resume: undefined
2025-10-04 07:51:22.024 [info] Received message from webview: {"type":"io_message","channelId":"oumiywl7sb","message":{"type":"user","session_id":"","parent_tool_use_id":null,"message":{"role":"user","content":[{"type":"text","text":"/todos"}]}},"done":false}
2025-10-04 07:51:29.112 [info] Received message from webview: {"type":"request","requestId":"3iyp3qj5qe3","request":{"type":"rename_tab","title":"/todos"}}
**Additional Context - Potential Root Cause:**
Output logs show repeated attempts to access gitignored .env file:
2025-10-03 22:42:31.437 [warning] [GitFileSystemProvider][readFile]
File not found - git:/c%3A/Users/noelm/Herd/auto-test/.env.git?...
This may have caused an infinite retry loop where Claude Code kept
attempting to access the file for context.
Steps to Reproduce
changed to use latest sonnet variant and asked for an analysis and suggestions to create a plan of action - then set a list of todos and was working through them gave similar tasks as previous versions which were completed and worked through methodically - this version has required restarts 3 times due to crash / stuck and becomes unresponsive, it shouldn't be a labour intensive task as the bulk of the work was already done I was just r efining the codebase and running tests
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
issue only apparent in sonnet 4.5
Claude Code Version
2.0.5 (Claude Code)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
VS Code integrated terminal
Additional Information
additional user issue github connectivity -
025-10-03 23:42:38.307 [info] > git symbolic-ref --short refs/remotes/origin/HEAD [1170ms]
2025-10-03 23:42:38.307 [info] fatal: ref refs/remotes/origin/HEAD is not a symbolic ref
2025-10-03 23:42:38.307 [warning] [Repository][getDefaultBranch] Failed to get default branch details: Failed to execute git.
2025-10-03 23:42:38.740 [info] > git rev-parse --show-toplevel [524ms]
2025-10-03 23:42:39.037 [info] > git merge-base refs/heads/development refs/remotes/origin/development [680ms]
2025-10-03 23:42:39.423 [info] > git merge-base refs/heads/development refs/remotes/origin/development [941ms]
2025-10-03 23:42:39.631 [info] > git rev-parse --show-toplevel [836ms]
2025-10-03 23:42:40.040 [info] > git diff --name-status -z --diff-filter=ADMR f1255d4b23250002e120012fd7ccdb128c02bc86...refs/remotes/origin/development [683ms]
2025-10-03 23:42:40.232 [info] > git diff --name-status -z --diff-filter=ADMR f1255d4b23250002e120012fd7ccdb128c02bc86...refs/remotes/origin/development [718ms]
2025-10-03 23:42:40.304 [info] > git rev-parse --show-toplevel [546ms]
2025-10-03 23:42:40.703 [info] > git rev-parse --show-toplevel [373ms]
2025-10-03 23:42:41.037 [info] > git rev-parse --show-toplevel [293ms]
2025-10-03 23:42:41.399 [info] > git rev-parse --show-toplevel [322ms]
2025-10-03 23:42:41.566 [info] > git rev-parse --show-toplevel [149ms]
2025-10-03 23:42:41.569 [info] [Model][doInitialScan] Initial repository scan completed - repositories (1), closed repositories (0), parent repositories (0), unsafe repositories (0)
2025-10-03 23:42:42.145 [info] > git config --get commit.template [481ms]
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗