claude-in-chrome file_upload: no way to satisfy 'files the user has shared with this session' allowlist from Claude Code (drag-drop chip, @-mention, scratchpad all rejected)

Status Open
Reported on v2.1.206
Maintainer reply None cached
Activity 0 comments · opened Jul 23, 2026

Summary

The claude-in-chrome MCP file_upload tool rejects every local file path with:

Cannot upload "<path>": only files the user has shared with this session can be uploaded.

No sharing mechanism I could find registers a file with this allowlist from a Claude Code session, and the allowlist behavior itself appears in no documentation.

Environment

  • Claude Code: 2.1.206 (reproduced; have since updated to 2.1.218 — will re-test and comment)
  • Claude in Chrome extension: 1.0.81 (fcoeoabgfenejglbffodgkkbkcdhcgfn)
  • macOS (Darwin 25.3.0), Chrome stable, extension paired and working for all other browser tools (navigate/read_page/computer/form_input all fine)
  • Desktop-app-hosted Claude Code session

Repro

  1. Have a small local PDF, e.g. ~/Downloads/document.pdf (63 KB, single hard link, session has Read permission — the Read tool reads it fine).
  2. Open any page with a file input (e.g. an Ashby job application form) via the claude-in-chrome tools; locate the file input's ref via read_page/find.
  3. Call file_upload with paths: ["/Users/<user>/Downloads/document.pdf"].
  4. → rejected with the "only files the user has shared with this session" error.

Sharing attempts that did NOT satisfy the allowlist:

  • Drag-and-dropping the file into the Claude Code chat (a PDF attachment chip appears; Read tool receives the original ~/Downloads path and reads it fine) — file_upload still rejects that exact path.
  • @-mentioning the file path in chat — same result.
  • Copying the file into the session scratchpad dir (/private/tmp/claude-<uid>/<project>/<session>/scratchpad/) — rejected.
  • Creating <session>/outputs/ and copying the file there (the tool description mentions "the session's outputs/uploads folders") — rejected.

Conditions from https://code.claude.com/docs/en/chrome (Read permission, <10 MB, no hard links) are all satisfied.

Expected

Either of:

  • Drag-and-drop chat attachments (and/or files the session can Read) count as "shared with this session" and upload successfully; or
  • Documentation states exactly which action registers a file with the allowlist from a Claude Code session.

Actual

All paths rejected; no documented way to satisfy the allowlist from Claude Code. The "session's outputs/uploads folders" phrase in the tool description doesn't correspond to any documented location.

Related

  • #31210 (file_upload previously not exposed via the Claude Code MCP bridge)

Impact

Any Claude Code browser workflow that ends in a file upload (job application ATSes like Ashby/Lever, CMS uploads, support portals) dead-ends at this gate with no path forward, even when the user actively tries to share the file.

View original on GitHub ↗