WebSearch Tool Blocked Despite Permissionless Mode and Claude Max Subscription
WebSearch Tool Blocked Despite Permissionless Mode and Claude Max Subscription
Summary
The WebSearch tool is denied with permission errors even when running Claude Code in permissionless mode with a Claude Max subscription. This occurs consistently across sessions and persists after migrating from npm to native installer.
Environment
- Claude Code Version: 2.1.19 (native build)
- Installation Path:
C:\Users\AdamMorse\.local\bin\claude.exe - Operating System: Windows
- Subscription: Claude Max (
"subscriptionType":"max") - Rate Limit Tier:
default_claude_max_5x - Location: United States (WebSearch geographic requirement met)
- Permission Mode: PERMISSIONLESS MODE (no permission prompts enabled)
OAuth Scopes
Current OAuth scopes in ~/.claude/.credentials.json:
"scopes": [
"user:inference",
"user:mcp_servers",
"user:profile",
"user:sessions:claude_code"
]
Expected Behavior
With a Claude Max subscription in the US and running in permissionless mode, the WebSearch tool should execute successfully without permission denials.
Actual Behavior
Every attempt to use WebSearch returns:
Error: Permission to use WebSearch has been denied.
This occurs:
- ✅ In permissionless mode (
PERMISSIONLESS MODEbanner shown at startup) - ✅ After migrating from npm to native installer
- ✅ After removing the
permissionssection from~/.claude/settings.json - ✅ Across multiple session restarts
- ✅ With Claude Max subscription active
Steps to Reproduce
- Start Claude Code in permissionless mode (via custom startup script)
- Verify startup banner shows:
PERMISSIONLESS MODE - Claude will not ask for permission to execute commands or edit files - Attempt to use WebSearch tool with any query
- Observe permission denial error
Configuration Files
~/.claude/settings.json
{
"model": "sonnet"
}
(Note: permissions section was previously present with an allow-list that excluded WebSearch, but has been completely removed)
Historical Context
Debug logs from ~/.claude/debug/16f41745-2753-45e4-b066-c28923f2a9b5.txt show that WebSearch was working in early January 2026:
2026-01-03T21:53:09.757Z [DEBUG] Applying permission update: Adding 38 allow rule(s) to destination 'localSettings': [...,"WebSearch",...]
Multiple successful WebSearch executions are logged:
2026-01-03T23:38:03.650Z [DEBUG] executePreToolHooks called for tool: WebSearch
2026-01-03T23:42:16.379Z [DEBUG] executePreToolHooks called for tool: WebSearch
2026-01-03T23:47:35.564Z [DEBUG] executePreToolHooks called for tool: WebSearch
This suggests something changed between early January and now (January 26, 2026).
Troubleshooting Attempted
- ✅ Removed
permissionssection from global~/.claude/settings.json - ✅ Restarted Claude Code session multiple times
- ✅ Migrated from npm to native installer (
claude install) - ✅ Confirmed running in permissionless mode
- ✅ Verified Claude Max subscription active
- ✅ Confirmed located in United States
- ✅ Checked for deny/block rules in config files (none found)
Hypothesis
The issue may be related to:
- Missing OAuth scope: WebSearch might require a scope not included in the current OAuth token
- Hardcoded permission check: WebSearch permission check might bypass permissionless mode
- Breaking change: Something changed in Claude Code between early January and late January that broke WebSearch permissions
Requested Fix
Either:
- Add necessary OAuth scope for WebSearch to the authentication flow
- Ensure WebSearch respects permissionless mode settings
- Provide a way to explicitly grant WebSearch permission (e.g.,
--tools "WebSearch"flag) - Document if WebSearch requires special setup beyond standard Claude Max subscription
Additional Information
Other tools work correctly in permissionless mode:
- ✅ Bash
- ✅ Read
- ✅ Write
- ✅ Edit
- ✅ Glob
- ✅ Grep
- ✅ WebFetch (with specific URLs)
Only WebSearch is consistently denied.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗