[BUG] Cloud scheduled tasks: "Always allow" for WebFetch not persisted — re-prompts and stalls on every run
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?
On cloud scheduled tasks (claude.ai, remote execution — not Desktop, not CLI), every run
that needs WebFetch stalls on a permission prompt:
{ "query": "select:WebFetch" }
If I'm present and click "Always allow", WebFetch works fine for the rest of that run —
the tool itself is functional, this is not a fetch failure.
The problem: the "Always allow" choice is NOT persisted. The next scheduled run prompts
again and stalls until I manually approve. This defeats the purpose of unattended
scheduled tasks — I must be present at every run.
For comparison, in the same runs: WebSearch executes without prompting, and MCP connector
tools (e.g. mcp__PubMed__search_articles) work without prompting. Only WebFetch re-prompts
every time.
On cloud tasks there is no user-side mitigation: no settings.json, no "Always allowed"
review panel like Desktop has, no way to pre-authorize WebFetch when creating/editing the
task, and no Bash tool to fall back on.
What Should Happen?
"Always allow" granted during a scheduled task run should persist to subsequent runs of
that task (as documented for Desktop scheduled tasks: "Future runs of that task
auto-approve the same tools without prompting"). Alternatively, expose WebFetch
authorization in the task's creation/edit settings so it can be granted upfront.
Error Messages/Logs
If I don't authorize :
Tool-selection payload shown in
the transcript:
{ "query": "select:WebFetch" }
Request
{
"message": "Scheduled task blocked: WebFetch requires user approval to fetch https://www.myip.com/",
"status": "proactive"
}
Steps to Reproduce
- On claude.ai, create a cloud scheduled task whose prompt requires fetching a URL,
e.g.: "Fetch https://example.com and summarize its content."
- Trigger a run. The run stalls on a WebFetch permission prompt (select:WebFetch).
- Click "Always allow". WebFetch executes successfully and the run completes.
- Wait for the next scheduled run (or trigger another one).
- The run stalls again on the same WebFetch permission prompt — the "Always allow"
from step 3 was not persisted.
Reproduces 100% of the time, on 2 different scheduled tasks.
Claude Model
Not sure / Multiple models
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.227
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_