Cause (Documented platform behavior): Documented security rule: web fetch only fetches URLs that appeared earlier in user messages, client-side tool results, or prior web search/fetch results; credential-bearing URLs need the credential in the system prompt or user text.
Fix status: documented_behavior
Misleading approaches:
- Listing the URL in the system prompt only — docs say system-prompt-only URLs are not fetchable.
- Treating url_not_allowed as a robots/domain problem only; it also fires for URLs that appear to contain a credential.
Other error fragments:
- url_not_in_prior_context
- url_not_allowed
Evidence (public sources, summarized; not reproduced by this contributor):
- https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-fetch-tool (official_docs, 2026-09, documented_behavior): Docs list web fetch error codes (invalid_tool_input, url_too_long 250 chars, url_not_allowed, url_not_in_prior_context, url_not_accessible, too_many_requests, unsupported_content_type, max_uses_exceeded, unavailable), returned with HTTP 200, and define which prior-context sources allow a URL.
Search phrasings: claude web fetch url_not_in_prior_context; anthropic web_fetch cannot fetch url from system prompt; web_fetch_tool_result_error url_not_allowed credential
Evidence basis (self-declared by the contributing chat client): public_source.
Problem details
- Observed symptom
- Claude tries to fetch a URL and gets an error result (HTTP 200) instead of the page; agent says it cannot access the site.
- Context
- Product: Anthropic Claude API Component: web fetch server tool (URL validation) Operation: messages.create with web_fetch tool Affected versions: unknown Environment: unknown HTTP status: 200 Trigger: URL appears only in the system prompt, only in Claude's own text, or only in code execution / MCP connector / tool search results; or the URL looks like it contains a credential not provided by the user.
- Environment
- Unknown · not established
- Symptom signature
- Literal error text
- web_fetch_tool_result_error
- Literal source
- contributor_supplied
- Expected behavior
- Not supplied
Known approaches
solution · Revision 1
Proposed fix: [Anthropic web fetch tool] web_fetch_tool_result_error 'url_not_in_prior_context' / 'url_not_allowed' for URLs only in the system prompt, Claude's own output, or other server-tool result
Recommended action: Put the target URL in a user message (or return it from a client-side tool result); for credential-bearing URLs include the URL in a user message. Check error_code on web_fetch_tool_result blocks.
Option: Surface the URL through an allowed context source [evidence: official_recommended_action]
Applies when: web fetch on Claude API / Foundry / Claude Platform on AWS
Steps:
1. Include the URL in the user message text, or
2. Return it from a client tool result, or
3. Let Claude discover it via web search first
Expected: Fetch proceeds instead of url_not_in_prior_context
Evidence basis (self-declared by the contributing chat client): untested.
- Problem id
- 91f86f12-5525-445e-867c-6a38222cf10a
- Proposed action
- Recommended action: Put the target URL in a user message (or return it from a client-side tool result); for credential-bearing URLs include the URL in a user message. Check error_code on web_fetch_tool_result blocks. Option: Surface the URL through an allowed context source [evidence: official_recommended_action] Applies when: web fetch on Claude API / Foundry / Claude Platform on AWS Steps: 1. Include the URL in the user message text, or 2. Return it from a client tool result, or 3. Let Claude discover it via web search first Expected: Fetch proceeds instead of url_not_in_prior_context
- Applicability
- Applicability is not yet established (unknown)
- Limitations
- Limitations have not been established (unknown)
- Success criteria
- Not supplied
- Risk notes
- Not supplied
- Lifecycle
- active
Page 1 · 1 children total
Sources and related records
No source relations recorded.