[BUG] Permission approval UI not displayed - operations immediately rejected without user interaction

Resolved 💬 11 comments Opened Oct 11, 2025 by chatii Closed Feb 6, 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?

When Claude Code attempts to perform operations that require user approval (file writes, git commands, etc.),
the approval UI is not displayed to the user.

Instead, operations are immediately rejected with an error message like "Claude requested permissions to write to [file], but you haven't granted it yet."
The system behaves as if the user has denied permission, but no approval prompt ever appears, making it impossible for users to grant permission for legitimate operations.

This affects:

  • Write tool (file creation)
  • Edit tool (file modification)
  • Bash tool (git commands and other operations not in the allow list)

The issue occurs even though permissionMode is set to "default", which should prompt for approval.

What Should Happen?

When Claude Code needs to perform an operation requiring approval:

  1. Claude executes a tool (e.g., Write, Bash with git command)
  2. System detects approval is needed
  3. Approval UI is displayed to the user (button/dialog to approve/deny)
  4. System waits for user response
  5. Operation proceeds or is cancelled based on user decision

Instead, the current behavior skips steps 3-4 entirely and immediately returns an error.

Error Messages/Logs

Claude requested permissions to write to c:\Users\chatii\work\workdir\permission_test.txt, but you haven't granted it yet.


VSCode Output Panel log (relevant excerpt):

2025-10-12 01:46:31.918 [info] Spawning Claude with SDK query function - cwd: c:\Users\chatii\work\work-dir, permission mode: default, version: 2.0.14, c:\Users\chatii\.vscode\extensions\anthropic.claude-code-2.0.14\resources\claude-code\cli.js, resume: undefined
2025-10-12 01:46:31.918 [info] From claude: Spawning Claude Code process: node c:\Users\chatii\.vscode\extensions\anthropic.claude-code-2.0.14\resources\claude-code\cli.js --output-format stream-json --verbose --input-format stream-json --append-system-prompt ... --permission-prompt-tool stdio --permission-mode default --debug


DevTools Console log (filtered by "permission"):

{
    "type": "system",
    "subtype": "init",
    "permissionMode": "default",
    ...
}

{
    "type": "assistant",
    "message": {
        "content": [
            {
                "type": "tool_use",
                "id": "toolu_01W5vpZXN9t1hHW9WgfaqKVz",
                "name": "Write",
                "input": {
                    "file_path": "c:\\Users\\chatii\\work\\work-dir\\permission_test.txt",
                    "content": "Permission test file created at 2025-10-12\nThis file is for testing Claude Code's permission system.\n"
                }
            }
        ]
    }
}

{
    "type": "user",
    "message": {
        "role": "user",
        "content": [
            {
                "type": "tool_result",
                "content": "Claude requested permissions to write to c:\\Users\\chatii\\work\\work-dir\\permission_test.txt, but you haven't granted it yet.",
                "is_error": true,
                "tool_use_id": "toolu_01W5vpZXN9t1hHW9WgfaqKVz"
            }
        ]
    }
}


Note: There are no log entries showing an approval prompt being displayed or any user interaction request.

Steps to Reproduce

  1. Install Claude Code VSCode extension version 2.0.14 on Windows
  2. Open any project folder in VSCode
  3. Ensure .claude/settings.local.json has default permissions (not allowing all operations):
{
  "permissions": {
    "allow": [
      "Bash(sqlite3:*)"
    ],
    "deny": [],
    "ask": []
  }
}
  1. Open VSCode Developer Tools (Ctrl+Shift+I) and go to Console tab
  2. Start a Claude Code conversation
  3. Ask Claude to create a new file, for example: "Create a test file named test.txt with some content"
  4. Open the DevTools Console and filter by "permission"

Expected:

  1. An approval UI (button/dialog) appears asking to approve the file write operation
  2. User can click approve/deny
  3. Operation proceeds based on user choice

Actual

  1. No approval UI appears
  2. Operation immediately fails with error: "Claude requested permissions to write to [file], but you haven't granted it yet."
  3. DevTools shows the tool_result with is_error: true but no approval prompt logs

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.0.14

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

VS Code integrated terminal

Additional Information

  • VSCode version:
バージョン: 1.105.0 (user setup)
コミット: 03c265b1adee71ac88f833e065f7bb956b60550a
日付: 2025-10-08T14:09:35.891Z
Electron: 37.6.0
ElectronBuildId: 12502201
Chromium: 138.0.7204.251
Node.js: 22.19.0
V8: 13.8.258.32-electron.0
OS: Windows_NT x64 10.0.26100
  • The flag --permission-prompt-tool stdio is present in the CLI invocation, suggesting approval prompts should use stdio communication
  • The issue appears to be in the VSCode extension's handling of stdio permission prompts from the CLI process

View original on GitHub ↗

This issue has 11 comments on GitHub. Read the full discussion on GitHub ↗