Fastest fix: the Project hit its per-plan file cap, so the upload button greys out and you see “this Project has reached the maximum number of files.” The cap is plan-enforced, not a bug — as of June 2026 it is 5 files (Free), 25 (Plus / Education), 40 (Pro / Team / Enterprise) per Project. Merging your daily-log files into one document (Step 1) usually frees the most slots in 60 seconds and improves retrieval. Upgrading is the last resort, not the first.
OpenAI raised these caps on September 3, 2025 (the old Plus number was 20), so older guides quoting “20 files” are stale. If your Files panel shows the cap as something else, trust the number in your own error dialog — the dialog reflects your live account.
Different symptom: if uploads freeze or stall well below the cap (e.g. the Project shows 8-10 files but new uploads spin forever and never attach), that is the separate UI-stall bug, not the count limit — jump to Is it the cap, or the upload-stall bug? before deleting anything.
Common causes
Ordered by hit rate, highest first.
1. Each conversation snippet uploaded as its own file
The most common pattern. People save each export / each meeting note / each daily log as a separate .txt or .md, and within weeks the file count blows past 20.
How to spot it: Project → Files, you see 15+ files all named like 2026-05-01.md, 2026-05-02.md — one-per-day files.
2. You uploaded both the raw and the processed version
You uploaded report.pdf and report-summary.md, then report-v2.pdf later. Three files where one would do.
How to spot it: Multiple files with overlapping content; same topic, different formats.
3. Reference docs that should live in a Custom GPT, not a Project
Style guides, brand voice docs, glossaries — content that rarely changes belongs in a Custom GPT’s Knowledge so the Project keeps room for active working files.
How to spot it: Files that have not been edited in 30+ days but are still occupying Project slots.
4. Project scope crept — three goals share one Project
Originally “Q2 marketing campaign,” but now also holds customer-research notes, competitor analysis, brand-voice doc. Each topic legitimately needs files, so the limit hits.
How to spot it: Files cluster into 2-3 obviously different themes when you list them.
5. Old chat exports stored as files instead of archived
People upload prior chat transcripts as memory aids. They balloon the count fast and rarely get retrieved usefully.
How to spot it: Files named like chat-export-*.txt or transcript-*.md.
6. Hitting per-file size limits triggered manual splitting
A 60-page PDF split into 4 chunks to fit per-file size limits — now 4 slots used for what was conceptually one file.
How to spot it: Filenames with -part1, -part2 suffixes.
Is it the cap, or the upload-stall bug?
Two different failures look similar. Diagnose before you start deleting.
| Signal | Hard file cap (this guide) | Upload-stall bug |
|---|---|---|
| File count when it fails | At your plan cap (e.g. 25 on Plus, 40 on Pro) | Often 8-12, well below the cap |
| Error text | ”this Project has reached the maximum number of files” | No error, or upload spinner never finishes |
| Upload button | Greyed out / disabled | Clickable, but the file never attaches |
| Fix | Trim files (this guide) | Reload, upload one file at a time, or switch browser/app |
If you are in the upload-stall column: hard-refresh the page (or fully quit and reopen the mobile app), then upload files one at a time rather than in a batch — the stall is most common when you drag 5+ files at once (the per-batch ceiling is 10 files). If a single file still hangs, paste its text directly into a Project chat instead; pasted text does not consume a file slot. Reported on the OpenAI developer forum as of June 2026.
Everything below assumes you are genuinely at the cap.
Before you start
- Confirm the actual limit your plan enforces — Free 5 / Plus 25 / Pro / Team / Enterprise 40; the error dialog shows the live cap for your account.
- Note which files are referenced in recent chats vs which haven’t been retrieved in weeks.
- Decide the Project’s real scope in one sentence before any cleanup — “this Project handles X” — that sentence guides what stays.
- Remember the adjacent limits so cleanup doesn’t trip a second wall: max 10 files per batch upload, 512MB / ~2M tokens per file, and a shared 25GB-per-user / 100GB-per-org storage cap across chats, Projects, and GPT Knowledge.
Info to collect
- Plan tier and the exact cap shown in the error (Free 5 / Plus 25 / Pro / Team / Enterprise 40 as of June 2026).
- Full file list with last-modified dates (sort by date in the Files panel).
- For each file: estimated last time it was retrieved (search chat history for filename).
- Whether you have any other Project below the cap that could host overflow.
- Custom GPT availability (Plus and above) — if yes, that is your archive lane.
Shortest fix path
Ordered by ROI. Steps 1 and 2 usually free 5-10 slots without losing anything.
Step 1: Merge small same-topic files into one
If you have 10 daily logs, concatenate them locally:
cat 2026-05-*.md > may-2026-log.md
# Or with section headers:
for f in 2026-05-*.md; do
echo "## $f" >> may-2026-log.md
cat "$f" >> may-2026-log.md
echo -e "\n\n" >> may-2026-log.md
done
Upload may-2026-log.md, delete the 10 daily files. Net: 9 slots freed, retrieval improves because related content now lives in one chunk-able doc.
Step 2: Archive files not retrieved in 30+ days
Search recent chats for each filename. Any file the model has not cited in the past month is probably dead weight. Move them out:
Project → Files → hover file → Download (save locally to /archive/<project-name>/)
→ Delete from Project
Keep a local archive folder per Project so you can re-upload if needed later.
Step 3: Move static references to a Custom GPT
Style guides, glossaries, brand-voice docs, schema definitions — anything that does not change weekly — belongs in a Custom GPT’s Knowledge:
Create new Custom GPT → name it after the reference domain
("Acme Style Guide GPT")
→ Upload all the static reference files
→ In your Project Instructions, write:
"For style/brand questions, treat the Acme Style Guide GPT
as the source of truth; switch to it for those queries."
Project Files now reserved for active working content.
Step 4: Split the Project by goal
If your Project mixes 3 goals (e.g., Q2 campaign + customer research + competitor analysis), split:
Project A: Q2 campaign (campaign briefs, drafts, schedule)
Project B: Customer research (interview notes, survey results)
Project C: Competitor analysis (teardown docs, screenshots)
Each gets a clean Instructions block, dedicated files, fewer cross-leaks (see also chatgpt-project-memory-leak).
Step 5: Replace split-by-size PDFs with structured Markdown
If you had to split a big PDF to fit per-file size, OCR + convert to compact Markdown:
# Convert PDF to clean Markdown (much smaller than source PDF)
pip install marker-pdf
marker_single full-report.pdf ./out --max_pages 300
One full-report.md is usually 5-10x smaller than the source PDF and easier to retrieve.
Step 6: Use a manifest file as Project memory
Create _manifest.md at the top of Project Files:
# Project Manifest
## Active files
- campaign-brief.md — primary brief, updated 2026-05-20
- customer-personas.md — three personas, updated 2026-05-15
- assets-checklist.md — running checklist
## Archived elsewhere
- 2026 Q1 campaign → archived in /local/archive/q1/
- Old competitor docs → moved to Custom GPT "Competitor GPT"
Helps you and the model see what is in-Project vs out-of-Project.
Step 7: Upgrade plan only if you have already trimmed
Pro / Team / Enterprise raise the cap to 40 (from Plus’s 25), but if you upgrade with 25 dead files in the Project, you will hit 40 within a week. Trim first, then decide. Note that Team and Enterprise raise the per-Project cap to the same 40 as Pro — they do not give an unlimited Project — so the upgrade buys you 15 extra slots, not infinity. The lasting win is the consolidation in Steps 1-3, not the higher number.
How to confirm the fix
- Files panel shows count well under the cap with headroom for 5-10 new uploads.
- Open a fresh chat and ask “what files do you have access to in this Project?” — answer matches the trimmed list.
- Run a representative question and confirm retrieval still cites the right (consolidated) file — no regressions from merging.
Common pitfalls
- Deleting files without downloading first — once gone from the Project, the upload is gone too.
- Merging files of unrelated topics into one mega-file to dodge the cap — retrieval quality tanks because chunks now mix themes.
- Uploading the same file under different names “just in case” — wastes 2-3 slots per file.
- Treating chat-export files as required Knowledge — chats are searchable inside the Project anyway.
- Splitting one goal across two Projects to dodge the cap — you lose shared Instructions and re-create the leak problem.
FAQ
Q: What is the exact file limit per Project in 2026? A: As of June 2026: Free 5, Plus and Education 25, Pro / Team / Enterprise 40 files per Project. OpenAI raised these on September 3, 2025 (Plus was previously 20), which is why older articles still say “20.” Always trust the number in your own error dialog over any blog figure.
Q: Does the file count include images? A: Yes. Image uploads and PDF uploads both consume Project file slots — same single pool, regardless of file type.
Q: Can I increase the limit without upgrading? A: No, the per-Project cap itself is plan-enforced and can’t be raised on your tier. But you rarely need to: merging (Step 1) and archiving (Step 2) free more slots than an upgrade would, and pasting text directly into a Project chat needs zero file slots. Pro / Team / Enterprise only lift the cap to 40.
Q: My Project shows only 10 files but won’t accept more — is that the cap? A: No. If you are below your plan’s cap (25 on Plus, 40 on Pro) and uploads stall, that is the upload-stall bug, not the limit. Hard-refresh, upload one file at a time, and avoid dragging more than 10 files in a single batch. See Is it the cap, or the upload-stall bug?.
Q: If I delete a file, will chats that referenced it break? A: Past chat replies remain readable. New questions in those chats lose access to the deleted file’s content, so download a local copy before deleting if you might need it again.
Q: Is there a way to see file size or token count per file? A: Hover the file in the Files panel — size is shown. Token count is not exposed directly; treat ~750 words per 1,000 tokens as a rough estimate. The per-file ceiling is 512MB or about 2M tokens of text, whichever you hit first.
Q: Can a single Custom GPT serve multiple Projects? A: Yes. Build one Style Guide GPT and switch to it from any Project when style questions come up — one GPT’s Knowledge is shared across every chat.
Related reading
- ChatGPT project files not referenced
- ChatGPT Project context bleeds from old chats
- ChatGPT skims a large document
- ChatGPT Projects advanced workflow
- ChatGPT Projects
Tags: #ChatGPT #Troubleshooting #chatgpt-projects #file-limit