Short answer

Most Claude upload failures are not network failures, whatever the error says. The two causes that account for most of them are a file that is still open in another program, and a file that lives in OneDrive or Dropbox but has not been downloaded to your machine yet. Close the file, make sure you have a real local copy, and try again. Seven fixes below, ordered by effort, plus a way to work out which error you actually have.

You attach a file to Claude. The progress bar starts, gets somewhere, and stops. You get told the upload failed because of a network issue and to check your internet connection, which is working perfectly.

Or the file uploads and then Claude says it cannot process it. Or it tells you the file is too large when the file is clearly not that large.

These are three different faults with three different causes, and the error message you get is not a reliable guide to which one you have. Work out which you are looking at first, then take the matching fix.

Which error are you seeing?

“Upload failed due to a network issue. Check your internet connection.”

Almost never your internet. Start with Fix 1, closing the file, then Fix 2, the size limit. If the file sits in a cloud-sync folder, Fix 1 is very likely your answer.

“There was an error processing your file” or the file uploads and comes back empty

The upload worked. Claude could not read what was inside. Go straight to the section on password-protected and scanned PDFs.

The file is rejected as too large

The limit is 30MB per file. If your file is comfortably under that and still gets rejected, it is a failed upload wearing the wrong error message, so treat it as the first case above.

Fix 1: close the file, and check it is really on your machine

Close the file in whatever program has it open. Excel, Word, Preview, Acrobat, anything. A file that is open and locked by another program can fail to read mid-upload, and the upload reports that as a network problem because from the browser’s point of view the transfer stopped.

Then check where the file actually lives. If it is in OneDrive, Dropbox, iCloud Drive or Google Drive’s desktop folder, it might be a placeholder rather than a real file. The icon looks the same and the file appears in your folder, but the contents are still in the cloud and get fetched on demand. Browsers do not handle that well.

Right-click the file and choose the option to always keep it on this device, or just drag a copy to your desktop and upload that. This is the fix that resolves the most cases and almost nobody tries it, because the error message points you at your router instead.

Fix 2: check the size against the real limit

The limit is 30MB per file, for uploads and downloads both. Anthropic publishes this in the help centre.

Two things worth knowing. A file can be under 30MB and still be too much, because the real constraint on long documents is the context window rather than the file size, and a dense spreadsheet is far heavier in tokens than its megabytes suggest. And a very large PDF can sometimes be handled through Claude’s code execution environment without being loaded into the conversation at all, which is a different path with different limits.

If you are over the limit, split the file rather than compressing it. Splitting is predictable. Compression on a PDF often strips the text layer and lands you in the next problem instead.

Fix 3: paste the content instead of uploading it

Uploading and pasting are separate code paths. When one is broken the other usually still works, in both directions.

Open the file, select all, and paste into the message box with Ctrl + Shift + V on Windows or Cmd + Shift + V on Mac, which pastes without formatting. For a long block, Claude will convert your paste into an attachment automatically, which is normal. If that attachment comes back empty, that is a separate known fault and we have written it up in detail: Claude says your pasted text is empty.

Fix 4: check the format, and save it as something plainer

Supported formats are broad, and PDF, DOCX, XLSX, CSV, TXT, MD, PPTX and the common image types all work. What fails is usually not the extension but the file itself.

Re-saving is the quick test. Open a spreadsheet and save it as CSV. Open a document and save it as plain text. Export a PDF from the original rather than sending a PDF that has been through three tools. If the plainer version uploads and the original does not, the original was the problem and you have your answer in under a minute.

Fix 5: VPN, firewall, and work networks

If you are on a VPN, turn it off and retry. If the upload then works, keep it off for uploads or switch to a different server. VPN users hit upload failures disproportionately, because the upload is a large sustained transfer and it is the first thing an unstable tunnel drops.

On a work or school network, the block is usually a proxy inspecting large uploads rather than a full domain block, which is why chat works fine and only attachments fail. Test it by tethering to your phone for one upload. If it works on mobile data, ask whoever runs your network to allow claude.ai and anthropic.com through, and mention that it is the upload endpoint specifically.

Fix 6: clear the site data for claude.ai

Claude.ai keeps a copy of its own code in your browser so it loads instantly next time. When that copy goes stale you keep running an old version, bugs included, long after the fix has shipped to everyone else.

Do not clear your whole browser cache. Clear this one site:

  1. Open claude.ai
  2. Click the icon to the left of the address bar, the padlock or the sliders
  3. Choose Cookies and site data, then Manage on-device site data
  4. Delete everything listed
  5. Hard refresh with Ctrl + Shift + R, or Cmd + Shift + R on Mac

You will be signed out. Your conversations are on Anthropic’s servers, not in your browser, so nothing is lost. Sign back in and try the upload again.

Fix 7: switch browser, or use the desktop app

Ad blockers and privacy extensions are a common cause and easy to rule out. Open claude.ai in a private window, where extensions are usually disabled, and try the same upload. If it works, an extension is your problem and you can find which one by re-enabling them one at a time.

The desktop app is the other route around it. It handles file access differently from the browser, so a stuck browser upload will often go straight through there.

“There was an error processing your file”

This one is different from everything above. The upload succeeded. Claude has the file and cannot read what is inside it.

Password-protected PDFs are the most common version. Claude cannot open them and there is no way around it other than removing the password and re-saving.

Scanned PDFs are the more frustrating one, because they look identical to a normal PDF. A scan is a picture of a page, with no text layer underneath, so there is nothing to extract. Try selecting text in the PDF in your own reader. If you cannot select any, neither can Claude. Run it through OCR first, which most PDF tools and Acrobat will do, or upload the pages as images and ask Claude to read them that way, which works because image reading is a separate capability from document parsing.

Corrupted files and files that were only partly downloaded fail here too. Open the file yourself before blaming Claude. If it will not open for you, it will not open for Claude either.

Claude Code and the desktop app behave differently

Claude Code is a terminal tool and a separate program. It does not upload files at all. It reads them from your file system when you point it at a path, so none of the upload fixes on this page apply. If it cannot see a file there, check the path and the permissions.

If you are pointing it at a whole codebase rather than one file, the control surface behind an autonomous build covers the setup that keeps a multi-day run inside its guardrails.

The desktop app shares the web app’s upload path but not the browser’s cache and extensions, which is why the same file can fail in Chrome and succeed in the desktop app on the same machine.

Why this happens

An upload is a large sustained transfer, and it is the most fragile thing a web app does. Anything that interrupts it, a locked file, a cloud placeholder fetching in the background, a VPN renegotiating, a proxy buffering, reads to the browser as the same event: the transfer stopped early. The app cannot tell those apart, so it reports the one that is true most often, which is a network problem. That is why the error message sends so many people to check a connection that was never broken.

The processing errors are the opposite situation. Nothing failed in transit at all. The file arrived intact and turned out to contain nothing readable, which is a question about the file rather than about Claude.

How to avoid it next time

Keep a working copy of anything you upload regularly in a plain local folder rather than a synced one.

Close the file before you attach it.

And if uploads break suddenly having worked yesterday, clear claude.ai’s site data before assuming the product changed. It takes a minute and it is the first thing worth ruling out.

Written by the team at Lead Source, who spend most of their days on lead attribution rather than upload endpoints, but hit this one often enough to write it down.