[BUG] C:\Users\Asus\AppData\Local\Temp\claude\C--Users-Asus\e5bb96c6-89eb-4efc-bfc2-02d06804ffe2\scratchpad\github-bug-report.md
[BUG] VS Code extension: permission prompt never renders — turn spins forever, Stop button not reflected in webview
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?
[BUG] VS Code extension: permission prompt never renders — turn spins forever, Stop button click not reflected in webview
Environment
- Claude Code VS Code extension: 2.1.218 and 2.1.219 (bug present in both; cc_version=2.1.219.6e6)
- VS Code: 1.130.0
- OS: Windows 10 Education 10.0.19045 (Turkish locale)
- Shell: PowerShell 7.6.3 available; note cmd.exe is disabled by group policy on this machine (DisableCMD)
- Auth: claude.ai OAuth (Pro/Max account with several claude.ai connectors enabled: Gmail, Google Drive, PubMed, Consensus, Clinical Trials, Elicit)
Summary
When a tool call requires permission approval, the approval UI is never rendered anywhere — not in the chat webview, not as a VS Code notification. The turn shows the animated status text ("Considering… / Stewing… / Baking…") forever. Clicking the Stop (■) button sends interrupt_claude (visible in the extension host log, and the extension logs "Interrupted Claude for requestId: …"), but the webview keeps spinning and never reflects the interrupt. The webview appears wedged: closing the Claude tab and reopening the session from the session list restores a working webview and shows the turn as interrupted.
Sessions where no permission is needed (or rules auto-allow) complete normally, so API/auth/network are fine.
Steps to reproduce
- Open a workspace folder, start a Claude Code chat in the panel (permission mode: default or Auto).
- Ask something that makes Claude run a command that is not covered by allow rules (e.g.
python -c "import docx"). - Watch the extension log (Output → Claude VSCode): a permission request is generated ("Permission suggestions for PowerShell/Bash: …").
- No approval UI appears anywhere. The turn spins indefinitely.
- Click the Stop button: the log shows the interrupt is received, but the webview keeps spinning.
Log excerpts
Permission request generated, but no UI ever shown (nothing in the panel, VS Code notification center shows "NO NEW NOTIFICATIONS" — verified via screenshot at the same timestamp):
2026-07-24 22:36:49.151 [INFO] [Stall] tool_dispatch_start tool=PowerShell toolUseId=toolu_01Xqsi... permissionDecisionMs=1936
2026-07-24 22:36:50.048 [INFO] [Stall] tool_dispatch_end tool=PowerShell toolUseId=toolu_01Xqsi... outcome=ok durationMs=896
2026-07-24 22:36:55.509 [DEBUG] "Permission suggestions for PowerShell: [ { \"type\": \"addRules\", ... } ]"
(no further API traffic; turn spins forever)
Stop button clicks reach the extension host but the webview never updates:
2026-07-24 22:38:55.375 [info] Received message from webview: {"type":"interrupt_claude","channelId":"k8vcsivg5oj"}
2026-07-24 22:38:55.394 [info] Interrupted Claude for requestId: k8vcsivg5oj
2026-07-24 22:39:14.452 [info] Received message from webview: {"type":"interrupt_claude","channelId":"k8vcsivg5oj"}
2026-07-24 22:39:14.453 [info] Interrupted Claude for requestId: k8vcsivg5oj
(webview still shows the animated "working" status after both interrupts)
Possibly related warning, appears once per session shortly after startup:
2026-07-24 22:17:08.832 [WARN] claude-vscode notification channel error: Received a response for an unknown message ID: {"jsonrpc":"2.0","result":{},"id":0}; further channel errors are not logged this session
An earlier stuck session confirms the same shape: last transcript entry is an assistant tool_use (Bash) at 19:23:11Z waiting for permission; zero API requests afterwards. Changing the permission mode (plan → auto) while a request is pending does not rescue the pending request.
Expected
The permission approval prompt renders in the chat panel (or at least somewhere actionable), and Stop reliably ends the turn in the UI.
Actual
Permission request is generated but never displayed; turn spins forever; Stop is logged as received but not reflected; only closing and reopening the Claude tab recovers the session.
Workarounds found
- Close the Claude chat tab, reopen the session from the session list → webview re-initializes, turn shows as interrupted, chat usable again.
- Pre-populate
.claude/settings.local.jsonallow rules so permission asks never happen (fragile — any novel command wedges the session again).
What Should Happen?
[BUG] VS Code extension: permission prompt never renders — turn spins forever, Stop button click not reflected in webview
Environment
- Claude Code VS Code extension: 2.1.218 and 2.1.219 (bug present in both; cc_version=2.1.219.6e6)
- VS Code: 1.130.0
- OS: Windows 10 Education 10.0.19045 (Turkish locale)
- Shell: PowerShell 7.6.3 available; note cmd.exe is disabled by group policy on this machine (DisableCMD)
- Auth: claude.ai OAuth (Pro/Max account with several claude.ai connectors enabled: Gmail, Google Drive, PubMed, Consensus, Clinical Trials, Elicit)
Summary
When a tool call requires permission approval, the approval UI is never rendered anywhere — not in the chat webview, not as a VS Code notification. The turn shows the animated status text ("Considering… / Stewing… / Baking…") forever. Clicking the Stop (■) button sends interrupt_claude (visible in the extension host log, and the extension logs "Interrupted Claude for requestId: …"), but the webview keeps spinning and never reflects the interrupt. The webview appears wedged: closing the Claude tab and reopening the session from the session list restores a working webview and shows the turn as interrupted.
Sessions where no permission is needed (or rules auto-allow) complete normally, so API/auth/network are fine.
Steps to reproduce
- Open a workspace folder, start a Claude Code chat in the panel (permission mode: default or Auto).
- Ask something that makes Claude run a command that is not covered by allow rules (e.g.
python -c "import docx"). - Watch the extension log (Output → Claude VSCode): a permission request is generated ("Permission suggestions for PowerShell/Bash: …").
- No approval UI appears anywhere. The turn spins indefinitely.
- Click the Stop button: the log shows the interrupt is received, but the webview keeps spinning.
Log excerpts
Permission request generated, but no UI ever shown (nothing in the panel, VS Code notification center shows "NO NEW NOTIFICATIONS" — verified via screenshot at the same timestamp):
2026-07-24 22:36:49.151 [INFO] [Stall] tool_dispatch_start tool=PowerShell toolUseId=toolu_01Xqsi... permissionDecisionMs=1936
2026-07-24 22:36:50.048 [INFO] [Stall] tool_dispatch_end tool=PowerShell toolUseId=toolu_01Xqsi... outcome=ok durationMs=896
2026-07-24 22:36:55.509 [DEBUG] "Permission suggestions for PowerShell: [ { \"type\": \"addRules\", ... } ]"
(no further API traffic; turn spins forever)
Stop button clicks reach the extension host but the webview never updates:
2026-07-24 22:38:55.375 [info] Received message from webview: {"type":"interrupt_claude","channelId":"k8vcsivg5oj"}
2026-07-24 22:38:55.394 [info] Interrupted Claude for requestId: k8vcsivg5oj
2026-07-24 22:39:14.452 [info] Received message from webview: {"type":"interrupt_claude","channelId":"k8vcsivg5oj"}
2026-07-24 22:39:14.453 [info] Interrupted Claude for requestId: k8vcsivg5oj
(webview still shows the animated "working" status after both interrupts)
Possibly related warning, appears once per session shortly after startup:
2026-07-24 22:17:08.832 [WARN] claude-vscode notification channel error: Received a response for an unknown message ID: {"jsonrpc":"2.0","result":{},"id":0}; further channel errors are not logged this session
An earlier stuck session confirms the same shape: last transcript entry is an assistant tool_use (Bash) at 19:23:11Z waiting for permission; zero API requests afterwards. Changing the permission mode (plan → auto) while a request is pending does not rescue the pending request.
Expected
The permission approval prompt renders in the chat panel (or at least somewhere actionable), and Stop reliably ends the turn in the UI.
Actual
Permission request is generated but never displayed; turn spins forever; Stop is logged as received but not reflected; only closing and reopening the Claude tab recovers the session.
Workarounds found
- Close the Claude chat tab, reopen the session from the session list → webview re-initializes, turn shows as interrupted, chat usable again.
- Pre-populate
.claude/settings.local.jsonallow rules so permission asks never happen (fragile — any novel command wedges the session again).
Error Messages/Logs
Steps to Reproduce
[BUG] VS Code extension: permission prompt never renders — turn spins forever, Stop button click not reflected in webview
Environment
- Claude Code VS Code extension: 2.1.218 and 2.1.219 (bug present in both; cc_version=2.1.219.6e6)
- VS Code: 1.130.0
- OS: Windows 10 Education 10.0.19045 (Turkish locale)
- Shell: PowerShell 7.6.3 available; note cmd.exe is disabled by group policy on this machine (DisableCMD)
- Auth: claude.ai OAuth (Pro/Max account with several claude.ai connectors enabled: Gmail, Google Drive, PubMed, Consensus, Clinical Trials, Elicit)
Summary
When a tool call requires permission approval, the approval UI is never rendered anywhere — not in the chat webview, not as a VS Code notification. The turn shows the animated status text ("Considering… / Stewing… / Baking…") forever. Clicking the Stop (■) button sends interrupt_claude (visible in the extension host log, and the extension logs "Interrupted Claude for requestId: …"), but the webview keeps spinning and never reflects the interrupt. The webview appears wedged: closing the Claude tab and reopening the session from the session list restores a working webview and shows the turn as interrupted.
Sessions where no permission is needed (or rules auto-allow) complete normally, so API/auth/network are fine.
Steps to reproduce
- Open a workspace folder, start a Claude Code chat in the panel (permission mode: default or Auto).
- Ask something that makes Claude run a command that is not covered by allow rules (e.g.
python -c "import docx"). - Watch the extension log (Output → Claude VSCode): a permission request is generated ("Permission suggestions for PowerShell/Bash: …").
- No approval UI appears anywhere. The turn spins indefinitely.
- Click the Stop button: the log shows the interrupt is received, but the webview keeps spinning.
Log excerpts
Permission request generated, but no UI ever shown (nothing in the panel, VS Code notification center shows "NO NEW NOTIFICATIONS" — verified via screenshot at the same timestamp):
2026-07-24 22:36:49.151 [INFO] [Stall] tool_dispatch_start tool=PowerShell toolUseId=toolu_01Xqsi... permissionDecisionMs=1936
2026-07-24 22:36:50.048 [INFO] [Stall] tool_dispatch_end tool=PowerShell toolUseId=toolu_01Xqsi... outcome=ok durationMs=896
2026-07-24 22:36:55.509 [DEBUG] "Permission suggestions for PowerShell: [ { \"type\": \"addRules\", ... } ]"
(no further API traffic; turn spins forever)
Stop button clicks reach the extension host but the webview never updates:
2026-07-24 22:38:55.375 [info] Received message from webview: {"type":"interrupt_claude","channelId":"k8vcsivg5oj"}
2026-07-24 22:38:55.394 [info] Interrupted Claude for requestId: k8vcsivg5oj
2026-07-24 22:39:14.452 [info] Received message from webview: {"type":"interrupt_claude","channelId":"k8vcsivg5oj"}
2026-07-24 22:39:14.453 [info] Interrupted Claude for requestId: k8vcsivg5oj
(webview still shows the animated "working" status after both interrupts)
Possibly related warning, appears once per session shortly after startup:
2026-07-24 22:17:08.832 [WARN] claude-vscode notification channel error: Received a response for an unknown message ID: {"jsonrpc":"2.0","result":{},"id":0}; further channel errors are not logged this session
An earlier stuck session confirms the same shape: last transcript entry is an assistant tool_use (Bash) at 19:23:11Z waiting for permission; zero API requests afterwards. Changing the permission mode (plan → auto) while a request is pending does not rescue the pending request.
Expected
The permission approval prompt renders in the chat panel (or at least somewhere actionable), and Stop reliably ends the turn in the UI.
Actual
Permission request is generated but never displayed; turn spins forever; Stop is logged as received but not reflected; only closing and reopening the Claude tab recovers the session.
Workarounds found
- Close the Claude chat tab, reopen the session from the session list → webview re-initializes, turn shows as interrupted, chat usable again.
- Pre-populate
.claude/settings.local.jsonallow rules so permission asks never happen (fragile — any novel command wedges the session again).
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.219 (claude code)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
_No response_