Custom GPT Knowledge files don’t get auto-injected into every conversation. They go through on-demand retrieval — the model only reads a file when the user’s question hits matching keywords, or when the instructions explicitly say “search the knowledge files first.” Attaching a file in Configure is not the same as the model reading it every turn. The 20-file / 512MB-per-file caps are hard limits, but in practice the actual trigger rate is the real bottleneck.
Common causes
Ordered by hit rate, highest first.
1. Instructions don’t explicitly require knowledge lookup
The most common failure. You upload PDFs / DOCX and assume the GPT will use them, but the default behavior is to answer from general knowledge first. Without an instruction like “always search the knowledge files before answering,” the model usually skips retrieval entirely.
How to spot it: Ask the GPT a fact that exists only in the knowledge files (e.g. an internal product codename). If it says “I don’t know” or fabricates a version number, retrieval did not fire.
2. The user question doesn’t hit retrieval keywords
Retrieval uses keyword / vector matching. If the question doesn’t contain words from the document, similarity drops below threshold and the chunk is skipped. Example: the file is “API rate-limit policy” and the user asks “why are my requests being blocked?” — “rate-limit” never appears, so the document isn’t retrieved.
How to spot it: Ask once using the document’s literal wording (“what is the API rate-limit policy”), then again with a paraphrase (“why are requests blocked”). If only the literal version works, that’s keyword drift.
3. File count near the 20 cap, or single file too large
Custom GPT limits: 20 files, ≤ 512MB each, total text is chunked. Large files retrieve only a few chunks — the answer may sit in a chunk that wasn’t pulled.
How to spot it: Open Configure → Knowledge and check file count + size. > 15 files or single file > 50MB is the first thing to investigate. Ask the GPT to list every filename in its knowledge; if it can’t list all of them, files are being dropped.
4. Silent indexing failure
Upload UI showing “success” is not the same as content indexed. Corrupt PDFs, exotic encodings, and scanned PDFs without a text layer all fail silently during backend indexing — the file appears in the list but search returns nothing.
How to spot it: Ask the GPT to “quote one sentence verbatim from page 1 of xxx.pdf.” If it can’t quote or the quote is hallucinated, indexing failed.
5. File type accepted for upload but not for retrieval
Images, audio, video can be attached to Knowledge but are not vectorized and indexed — they sit on disk. The model genuinely cannot see them when asked.
How to spot it: Knowledge contains only PNG / MP3 / MP4 and queries always fail — this is the cause. Convert to PDF / DOCX / TXT / MD.
6. Tested in Configure preview but published version is stale
When you test in Configure it uses the current draft. The GPT URL users see (or you use day-to-day) is the last version you hit Update on. Changes to files / instructions without pressing Update never reach the public URL.
How to spot it: Open the public GPT URL, ask “list files you can access,” compare to Configure → Knowledge. Mismatch means you forgot to Update.
Before you start
- Confirm whether the issue happens in the Configure preview or only on the published GPT URL — they use different version snapshots.
- Duplicate the current chat or screenshot it before retesting so history doesn’t pollute the next diagnostic.
- Confirm your plan: Free users can’t use Custom GPTs at all; Plus / Team / Enterprise have different Knowledge quotas.
Info to collect
- File type, size (MB), pages / rows; whether it’s a scanned PDF, whether it has Chinese / formulas / tables.
- Total file count in Knowledge and whether near the 20 cap.
- Full prompt text + GPT reply screenshot; record verbatim if it says “I don’t see the file.”
- Full text of the current Configure → Instructions (screenshot it).
- Whether you tested in Configure preview or via the published GPT URL.
Shortest fix path
Ordered by ROI. The first two usually solve 70% of cases.
Step 1: Add a hard requirement to the top of Instructions
Open Configure → Instructions and put this at the very top (not buried at the end):
Before answering ANY question, first call `search the knowledge files`
to check if the answer exists in the uploaded documents. Only use your
general knowledge if the knowledge files contain nothing relevant.
When citing knowledge, name the source file.
Use English even for non-English GPTs — instructions are followed more reliably in English. Click Update to publish a new version.
Step 2: Ask using keyword-style prompts
Train yourself (and your users) to use literal wording from the documents:
Bad: How does this feature work?
Good: According to `user-guide.pdf`, how does "bulk export" work?
Bake the “always quote the source filename” pattern into instructions so the model also models it back to users.
Step 3: Prune Knowledge to ≤ 10 core files
20 is the hard cap, but 8-12 well-named files give the most reliable retrieval. Beyond 15 files, retrieval skews to the few highest-scoring ones and ignores the rest.
Steps:
- Configure → Knowledge → delete stale / redundant files.
- Merge several small files into one well-structured doc with clear headings (
# Chapter 1) — chunks retrieve with more coherent surrounding context. - Give files semantic names:
api-rate-limit-policy.pdfbeatsdoc1.pdf.
Step 4: Split oversized files + convert to Markdown
For single PDFs > 50MB:
# Split PDF (macOS / Linux)
brew install qpdf
qpdf --split-pages=30 large.pdf split-page-%d.pdf
# Convert to Markdown (much higher extraction quality)
pip install marker-pdf
marker_single large.pdf ./output --max_pages 100
Uploading Markdown instead of PDF gives noticeably better retrieval, especially for table-heavy docs.
Step 5: Verify indexing succeeded
After publishing, open a brand-new chat and ask:
1. List every filename in your Knowledge.
2. Quote one sentence verbatim from page 1 of <filename>.pdf.
3. How many pages / rows is that document?
Any failure means that file’s index is broken — delete and re-upload to trigger re-indexing.
Step 6: Publish and test via the GPT URL
Don’t test only in Configure. Click Update → Share → copy the GPT URL, open it in an incognito window or a different account, and re-run the three checks from Step 5. Working in Configure but broken on the URL means you didn’t Update.
How to confirm the fix
- Open a fresh chat (don’t continue in the old one), upload the same file, ask the same question — confirms it’s not chat history contamination.
- Open the GPT URL in incognito or a different account and retest — rules out account / client caching.
- Have a colleague repeat the flow in their own account — confirms it’s fixed for everyone, not just you.
If still broken
- Cut the file to the absolute minimum: 100-row CSV, 1-page PDF — see if the smallest case works.
- Swap formats: PDF → txt, DOCX → md, to rule out a format-specific parser issue.
- Switch model: Configure → Model → try GPT-5.5 / o3 / GPT-5; retrieval trigger rates vary by model.
- Package the source file, prompt, GPT URL, and subscription level screenshot, then file a ticket at help.openai.com.
Prevention
- When building a Custom GPT, prepare a 5-10 question “retrieval trigger test set” — facts that only exist in Knowledge. Run it before publishing every update.
- Always put “first search the knowledge files” in the first sentence of Instructions, never buried mid-paragraph.
- Keep files at 8-12 total, ≤ 30MB each, with semantic filenames.
- After every Knowledge / Instructions change, hit Update and verify via the public GPT URL — not the Configure preview.
- For tables / data, prefer CSV / Markdown over PDF — extraction-layer quality is dramatically better.
Related reading
- ChatGPT project files not referenced
- File disappears from conversation
- Project instructions ignored
- ChatGPT multiple files not used together
- ChatGPT uploaded PDF not analyzed correctly
- ChatGPT Project Export Missing Attachments
- ChatGPT Project Instructions Ignored After Update
- ChatGPT Project Knowledge Stale After Editing a Source File
- ChatGPT Generated File Download Failed
- ChatGPT Image Edit Doesn’t Apply
- ChatGPT Doesn’t Understand the Uploaded Image Correctly
- ChatGPT Project File Count Limit Hit Mid-Project
- ChatGPT Project Share Link Returns 404
- ChatGPT Says ‘I Can’t Read This’ for a Handwritten or Scanned PDF
- ChatGPT Can’t See Inside an Uploaded ZIP Archive
Tags: #ChatGPT #Troubleshooting