ChatGPT file upload failures come in three distinct shapes — stuck at 0%, failing after the progress bar finishes, or uploading successfully but “unreadable.” Each has a different cause and a different fix.
Identify which case you’re in
- Stuck at 0% → network / extension / Cloudflare
- Bar completes then fails → file too large / unsupported type / permission
- Uploads OK but reads as empty → format encoding / scanned PDF / encrypted PDF
- Image uploads but ChatGPT says “I can’t see it” → Vision throttled or unavailable in your region
9 causes by hit rate
1. File too large (most common)
ChatGPT’s per-file limit is typically 512 MB, but PDFs over 50 pages often fail and Excel files over 10 MB often fail. Single image upload via Vision caps around 20 MB.
Fix:
- PDFs in batches, ≤ 50 pages each
- Remove empty Excel sheets and charts
- Compress images to under 5 MB
- Large files → use Projects, not in-chat upload
2. File type not supported
Supported: PDF, DOCX, XLSX, CSV, TXT, JSON, Markdown, common code files, PNG / JPG / WebP / GIF (static).
Unsupported or often-fails:
.pages(Mac Pages) — export to PDF.numbers(Mac Numbers) — export to Excel.zip / .rar— extract and upload individually- Password-protected PDFs — remove the password
.dwg / .psd— convert to PNG- HEIC photos (iPhone default) — convert to JPG
3. Scanned PDF
Looks like a PDF, is actually an image. Upload succeeds; ChatGPT says “can’t read text.”
Fix:
- OCR the PDF first (Adobe / online OCR) into a searchable-text PDF
- Quick trick: re-save the PDF in macOS Preview (works on some scans)
- Or screenshot pages and let ChatGPT Vision read them
4. Encrypted / password-protected
Many corporate PDFs ship with a hidden password. Upload fails or content is unreadable.
Fix:
- Acrobat / Preview → re-save without password
- Online tools to strip password before upload
5. Browser extensions blocking
Same as other ChatGPT issues — extensions often interrupt the upload channel.
Fix:
- Try incognito
- Disable uBlock / Privacy Badger / Ghostery
- Whitelist
chat.openai.comandfiles.oaiusercontent.com
6. Region restrictions / Vision unavailable
In some regions, Vision is restricted or throttled. Image uploads succeed but ChatGPT says it can’t see them.
Fix:
- Check
status.openai.comfor Vision-specific incidents - Switch exit node
- Try GPT-5.5 (often more reliable for Vision)
7. Account doesn’t have the feature
Free accounts can’t use certain upload features (Code Interpreter / data analysis).
Fix:
- Upgrade to Plus / Team / Enterprise
- Or use the ChatGPT API and handle the file yourself
8. Special characters in filename
Filenames with #, ?, emojis, or mixed CJK + ASCII sometimes fail.
Fix:
- Rename to plain English + digits + hyphens
- e.g.,
report_q1.pdfinstead of a filename that mixes non-ASCII characters, full-width brackets, and special symbols like#
9. Sent the message before upload completed
Pressing Enter before the upload bar finishes cancels the upload.
Fix:
- Wait for the attachment to show the green checkmark before sending
Shortest fix path
In hit-rate order:
- File < 25 MB, PDF < 50 pages, plain English filename → retry
- Retry in incognito
- Convert to PDF / PNG / TXT and retry
- Switch browser (Chrome / Safari)
- Switch network (Wi-Fi → 4G or different node)
- For unreadable PDFs → OCR into searchable PDF
- For “can’t see image” → wait for Vision to recover or switch to GPT-5.5
When it isn’t your fault
status.openai.comshows a file-upload incident- Many users reporting failures at the same time
- Your account is freshly rate-limited (upload / Vision / Browse all temporarily fail)
Easy misjudgments
- “Too large” → actually too many pages: a 5 MB / 200-page PDF still fails
- “Format issue” → actually a scanned PDF: looks like a PDF, is an image
- “Network issue” → actually filename problem: special characters
- “Account issue” → actually Vision throttling: text chat works; only image fails
Prevention
- Compress PDFs before upload (online compress or re-save)
- Screenshot in place of uploading photos: auto-PNG and small
- Split PDFs > 100 pages into 3 uploads
- Filename hygiene: English + digits + hyphens
- Important files → Projects so you don’t re-upload every conversation
FAQ
Q: Excel uploads always fail. What now? A: Save as CSV first. CSV almost never fails and AI handles it more reliably.
Q: Image uploaded but ChatGPT says “I can’t see it” — what? A: Almost always Vision throttling. Close the chat, open a new one, re-upload.
Q: PDF uploaded but ChatGPT only answers about the first few pages — why? A: The model only read what fit in context. Split the PDF, or guide it: “Find chapter X.”
Q: Can I upload video or audio? A: ChatGPT desktop / web does not directly process video or long audio. Convert to transcript text first.
Q: HEIC photos from iPhone? A: iPhone default is HEIC. Either change Settings → Camera → Formats → Most Compatible (JPG), or convert manually before upload.
Decision checklist
- If the error started right after a change, roll back or isolate that change before trying unrelated fixes.
- If the error happens only in production, compare environment variables, build output, cache, permissions, and platform settings.
- If the error happens only for one account or browser, test permissions, cookies, extensions, quota, and regional availability.
- If two fixes seem possible, choose the one that is easiest to verify and easiest to undo first.
When to stop debugging
Stop and escalate when you cannot reproduce the issue, when logs contradict the UI, when billing or account security is involved, or when every fix requires production access you do not control. At that point, package the exact error, timestamp, project ID, reproduction steps, screenshots, and recent changes before asking support or another engineer. Good escalation notes often solve the problem faster than another hour of guessing.
Diagnostic flow
- Reproduce the issue once and write down the exact path. If you cannot reproduce it, collect more evidence before changing settings.
- Check scope: one user or everyone, one browser or all browsers, local only or production only, new content only or old content too.
- Check the last change first. Most troubleshooting work is not about finding a mysterious root cause; it is about identifying which recent change created the mismatch.
- Split the system in two: input vs output, local vs hosted, account vs project, source file vs generated file, prompt vs model. Test which side still fails.
- Apply the smallest reversible fix. Avoid changes that touch DNS, permissions, billing, deployment, and code at the same time.
- Verify the original reproduction path and one nearby path, then write down what fixed it.
Minimal reproduction template
Issue:
- [exact error or broken behavior]
Where it happens:
- URL / tool / project:
- Account:
- Environment: local / preview / production
- Browser / device:
Steps to reproduce:
1.
2.
3.
Expected:
-
Actual:
-
Recent changes:
- Code:
- Config:
- DNS / permissions / billing:
- Prompt / model / uploaded files:
Evidence:
- Screenshot:
- Console error:
- Server or platform log:
False fixes to avoid
- Clearing cache without checking whether the underlying file, permission, route, or setting is correct.
- Reinstalling packages when the error is actually caused by environment variables, credentials, quota, or platform config.
- Changing several unrelated settings at once, then not knowing which one mattered.
- Copying a fix from another framework or platform without checking whether the routing, build output, or auth model is the same.
- Treating a temporary platform outage as your own bug before checking status pages and recent reports.
Related articles
- How to Fix ChatGPT Network Error
- How to Fix ChatGPT Stuck on Loading
- ChatGPT Can’t Open: 5-Step Diagnostic
- What to Do When Claude Usage Limit Is Reached
- ChatGPT beginner guide
- ChatGPT prompt improvement
- ChatGPT model selection guide
Tags: #ChatGPT #Debug #Troubleshooting