TL;DR (fastest fix): Don’t fight the upload. Run file yourfile to learn the real type, then convert to a format ChatGPT actually parses: any document to PDF or DOCX, any photo to JPG or PNG, audio/video to a transcript, and archives extracted to individual files. Upload the converted file in a fresh chat and ask a content-specific question to confirm it worked.
ChatGPT nominally accepts many formats, but deep processing only covers a subset: text PDF / DOCX / TXT / MD / CSV / XLSX / JSON / PPTX; images PNG / JPG / WEBP / GIF; common source-code extensions. Anything outside that (Pages, Keynote, HEIC, RAW, archives, executables, exotic video codecs) is either rejected at upload or technically uploads but never reaches the analysis pipeline. The reliable path isn’t arguing with the upload — it’s converting to a known-good type.
The hard per-file ceiling, as of June 2026, is 512MB per file across every plan, and text files are additionally capped at 2 million tokens (roughly 4,000 pages). Images max out around 20MB. So when an upload is refused, it’s almost always type, not size — but rule size out anyway (Step in “Common causes” below).
Common causes
Ordered by hit rate, highest first.
1. Format not in the supported list
The most common “rejected” reason. Apple iWork (.pages, .key, .numbers), HEIC photos, RAW image formats (.raw, .cr2, .nef), 3D models (.obj, .stl) — all outside the whitelist.
How to spot it: “This file type isn’t supported” or “I can’t process this file” at upload time = outside whitelist. OpenAI doesn’t publish one fixed extension list; the File Uploads FAQ is the closest official reference and is worth re-checking, since the set shifts.
2. Technically supported but analysis pipeline doesn’t cover it
RAR / 7z upload but ChatGPT won’t extract them. EXE / DMG / APP upload but never get analyzed. SVG uploads cleanly but vision may not render it correctly. ZIP is a special case: in a plain chat it usually goes nowhere, but when the file is routed to the Python data-analysis sandbox (on Plus/Pro, often by asking “unzip this and list the files”), ChatGPT can extract a ZIP and read what’s inside. RAR and 7z are not extractable even there.
How to spot it: Upload succeeds with no error, but when you ask it says “I can’t analyze this file” / “I only see the file name” = pipeline doesn’t take it.
3. File extension is wrong; byte signature doesn’t match
Renaming report.txt to report.pdf doesn’t make it a PDF. Some ChatGPT paths route by byte signature (magic number), others by extension — mismatch sends it down the wrong path.
How to spot it: Run file report.pdf on macOS / Linux. Output “ASCII text” but extension .pdf = this case.
4. Container with unsupported codec
.mp4 uploads but contains HEVC / AV1 / VP9 — the analysis pipeline only handles H.264. .docx with embedded legacy OLE objects fails to parse.
How to spot it: Run ffprobe video.mp4 to inspect codecs. Other tools open it fine but ChatGPT doesn’t = codec issue.
5. File too large hits a different limit
The per-file ceiling is 512MB for any single file, but practical caps kick in earlier: images around 20MB, spreadsheets around 50MB, and text files are also capped at 2 million tokens (about 4,000 pages) regardless of byte size, as of June 2026. Over a limit sometimes surfaces as “unsupported” when the real cause is size or token count.
How to spot it: Upload a smaller file of the same type. If that one works, the issue is size; if it fails too, it’s a real type issue.
6. Backend processor changed — worked yesterday, fails today
“Supported” is dynamic. OpenAI occasionally switches backend PDF parsers, image libraries, etc., breaking edge formats (e.g. PDFs with embedded fonts) overnight.
How to spot it: Same file worked historically, started failing in the past week = backend change. Wait a few days or convert format.
Before you start
- Confirm whether this happens in Projects, a Custom GPT, or a plain chat — supported file types and how the file is read (vision vs. Python data analysis vs. retrieval) differ across them.
- Duplicate the chat before retesting so history doesn’t pollute the next diagnostic.
- Confirm your plan: Free / Go / Plus / Pro differ in how many files you can attach (Free is roughly 3 files/day; Plus is roughly 80 files per rolling 3 hours and 10 files per message; Pro is effectively unlimited, as of June 2026). The per-file size ceiling of
512MBis the same across plans, so a plan upgrade does not unlock a new type.
Info to collect
- The file’s actual type (run
file <name>, do not trust the extension). - Size (MB), origin (phone photo, screenshot, download, sent by colleague).
- Full error screenshot, or screenshot of an upload that “worked” but yields empty answers.
- Upload route: dragged into chat, Project Files, or Custom GPT Knowledge.
- Current model + subscription tier.
Shortest fix path
Ordered by ROI. The first two solve ~70% of cases.
Step 1: Identify the actual type before deciding what to convert
Don’t trust the extension. Run:
# macOS / Linux
file mystery_file
# e.g.: mystery_file: PDF document, version 1.7
# Windows PowerShell
Get-Item mystery_file | Format-List
Once you know the real type, consult the conversion table (next step).
Step 2: Convert to a “high-fidelity supported type”
Map by content category:
| You have | Convert to | Tool |
|---|---|---|
| Pages / Keynote / Numbers | Apple iWork → Export → PDF | |
| HEIC | JPG / PNG | macOS Preview / iPhone settings / heif-convert |
| RAW image | JPG | Lightroom / darktable / phone export |
| EPUB | PDF / TXT | Calibre ebook-convert |
| Audio mp3 / m4a / wav | Transcript text | Whisper / MacWhisper (local) → upload .txt |
| Video mp4 | Key frames + transcript | ffmpeg for frames; Whisper for transcript |
| ZIP / RAR | Extract, upload individual files | unzip / unrar / Finder |
| .doc (legacy Word) | .docx | Word “Save As” |
| Scanned PDF | OCR’d PDF | ocrmypdf input.pdf output.pdf |
After converting, use the real extension (no more spoofing).
Step 3: HEIC / RAW photo special case
iPhone default camera shoots HEIC, which ChatGPT often won’t accept:
iPhone → Settings → Camera → Formats → choose "Most Compatible"
→ future photos will be JPG
Or convert at send time: open in macOS Preview → Export as JPG → upload.
Step 4: Audio / video must be transcribed locally first
ChatGPT won’t auto-transcribe long audio. Run locally:
# Install whisper
pip install openai-whisper
# Transcribe
whisper meeting.m4a --model medium --language English --output_format txt
# Outputs meeting.txt — upload this
Short audio too — local transcription is more reliable than asking ChatGPT to “listen and summarize.”
Step 5: Extract archives locally
ChatGPT won’t reliably unzip archives in a plain chat, and never handles RAR / 7z. (On Plus/Pro you can sometimes get a ZIP read by explicitly asking “unzip this and analyze the contents” so it routes to the Python sandbox, but it’s flaky — it silently ignores subdirectories and large archives.) The dependable path is to extract locally and pick the 3-5 files you actually need:
unzip -l archive.zip # See contents
unzip archive.zip -d ./out # Extract
Don’t upload all 20-100 files — cherry-pick the core ones.
Step 6: When all else fails, paste as text
The universal fallback: open in the source app → Select All → Copy → paste into ChatGPT as text. You lose styling but keep the information — fine for pure analysis tasks.
How to confirm the fix
- After conversion, open a fresh chat, upload, and ask a content-specific question (not “what do you see”) — confirm the answer references actual file content.
- Have it quote a sentence verbatim from the converted file; the quote should match the original — confirms conversion was lossless.
- Have a colleague run the same conversion pipeline and upload — confirms the path is reproducible.
If still broken
- Cut the file to the minimum: 1-page PDF / 1 image / 100-row CSV — see if the smallest case works.
- Redo conversion with a different tool:
marker-pdfinstead of Acrobat,magickinstead of Preview — different tools produce different artifacts. - Switch model from the picker: try
Thinkinginstead ofInstant(GPT-5.5 has been the default since April 23, 2026; the picker now shows Instant / Thinking / Pro). Thinking and Pro do deeper extraction and vision work than Instant. - Package source file + converted file + error screenshot, and file a ticket at help.openai.com.
Prevention
- Standardize uploads: PDF / DOCX / TXT / MD for text; CSV / XLSX for tables; PNG / JPG for images; source extensions for code.
- Disable HEIC on iPhone permanently: Settings → Camera → Formats → Most Compatible.
- For any edited Office doc, re-save before upload to refresh the internal format.
- Extract big archives locally and cherry-pick — don’t ZIP an entire project for upload.
- Always Whisper-transcribe audio / video locally and upload the .txt — more reliable than asking the model to listen.
FAQ
Does ChatGPT support HEIC photos from my iPhone yet? Not reliably, as of June 2026. HEIC support is hit-or-miss and you’ll often get “file not supported.” The fix that always works is to convert to JPG (open in macOS Preview, Export as JPG) or to set iPhone → Settings → Camera → Formats → “Most Compatible” so future photos save as JPG. Supported image types are PNG, JPG, WEBP, and non-animated GIF.
Can ChatGPT open Pages, Keynote, or Numbers files?
No. Apple iWork formats (.pages, .key, .numbers) are outside the whitelist and get rejected at upload. Export to PDF (iWork → Export → PDF) before uploading. For spreadsheets that need calculation, export .numbers to .xlsx or .csv instead so ChatGPT’s Python data analysis can run on the actual cells.
Why does my ZIP upload but ChatGPT can’t read it?
A plain chat doesn’t extract archives. On Plus/Pro you can sometimes force it by asking “unzip this and list the contents,” which routes the file to the Python data-analysis sandbox, but it ignores subdirectories and large archives, and never handles RAR or 7z. Extracting locally with unzip and uploading the 3-5 files you actually need is far more reliable.
My MP4 uploads but ChatGPT says it can’t analyze the video. Why?
Two reasons. ChatGPT doesn’t watch video for content, and the pipeline is picky about codecs — H.264 works, but HEVC / AV1 / VP9 often don’t. Run ffprobe video.mp4 to check the codec. The dependable path is to extract key frames with ffmpeg and transcribe the audio locally with Whisper, then upload the frames and the transcript text.
The same file worked last week and fails now. What changed?
OpenAI rotates backend parsers (PDF, image, OCR libraries), which can break edge cases like PDFs with embedded fonts overnight. Re-export the file from its source app, or run it through a different converter (for example ocrmypdf for a scanned PDF, or marker-pdf instead of Acrobat), then retry.
How do I know the conversion didn’t lose anything? Open a fresh chat, upload the converted file, and ask it to quote one specific sentence verbatim. If the quote matches the original, the content survived the conversion.
Related reading
- ChatGPT file upload failed
- ChatGPT generated file download failed
- ChatGPT uploaded PDF not analyzed correctly
- ChatGPT Projects
- ChatGPT file analysis
- ChatGPT Projects advanced workflow
Tags: #ChatGPT #ChatGPT files #Troubleshooting #Debug #File type