You drag a PDF or PNG into the chat. The attachment tile appears with the file name and size, but the preview thumbnail is a blank gray rectangle, a broken-image icon, or just nothing at all. From the UI you cannot tell whether Claude received the actual content or only the metadata.
Fastest fix (works ~70% of the time): wait about 30 seconds and reload the conversation. The thumbnail is generated by a separate render service that often lags the upload by a few seconds, and the file itself is almost always already in. If a reload does not fix it, the cause is one of five things below, and the diagnosis table tells you which.
Most important point first: a missing thumbnail does not mean Claude cannot read the file. Confirm that before you spend any time re-uploading. Ask the model Without re-reading, summarize the file I just attached in two sentences. If the summary is accurate, the upload worked and only the preview layer broke. You can keep working.
Which bucket are you in
Pick the row that matches what you see, then jump to the matching fix.
| Symptom you observe | Most likely cause | Go to |
|---|---|---|
| Tile shows, no thumbnail, fixes itself on reload | Render lag behind upload | Step 1 |
| Only this file fails; it is HEIC, AVIF, TIFF, BMP, or RAW | Unsupported preview/vision format | Step 3 |
| Fails in your browser, works in Incognito | Stale cache or a blocking extension | Step 4 |
| Fails for everyone on your network, works on a hotspot | Proxy/ad-blocker blocking the CDN | Step 6 |
| Huge PDF (100+ pages) or very large image | Thumbnail skipped to save compute | Step 3 / Step 7 |
Tile shows application/octet-stream or a generic file icon | MIME mismatch from drag-drop | Step 3 |
As of June 2026, the claude.ai web upload limits are 30 MB per file and up to 20 files per chat. Images are additionally capped at 5 MB each, up to 20 images per request. Vision (and therefore previews) officially supports JPEG, PNG, GIF, and WebP only — HEIC, AVIF, TIFF, BMP, and camera RAW are not supported, which is the single most common reason a real file uploads but never shows a thumbnail.
Common causes
Ordered by how often each one is the real reason.
1. Thumbnail render lagged the file upload
The file is uploaded and indexed, but the thumbnail is produced by a separate render service that occasionally lags by a few seconds.
How to judge: Wait 30 seconds and reload the page. If the thumbnail appears, this was it.
2. Unsupported image format (HEIC, AVIF, TIFF, BMP, RAW)
Claude’s preview and vision pipeline handles JPEG, PNG, GIF, and WebP. Other formats may upload but show no thumbnail, and on the web they often will not be accepted as images at all. The classic trap: photos from an iPhone are frequently HEIC, not JPG, even though they look like ordinary photos in the share sheet.
How to judge: Check the actual file extension, not the app’s label. HEIC, TIFF, AVIF, BMP, and RAW/DNG/CR2/NEF are the usual suspects.
3. MIME type mismatch between client and server
Some browsers (especially with drag-drop on Safari) set application/octet-stream for files they cannot identify. The previewer cannot tell what to render and falls back to the blank tile.
How to judge: If the tile shows a generic file icon rather than a format-specific one, or the OS reports a different type than the chat does, MIME confusion is likely. Use the in-chat upload button instead of drag-drop.
4. Browser cache holding a stale render
A previously failed render can be cached and re-served for the rest of that browser session, because the preview CDN sets long cache headers and people rarely hard-refresh.
How to judge: Try the same upload in an Incognito/Private window. If the preview appears there, your main browser cache is stale or an extension is interfering.
5. PDF or image past the preview pipeline’s threshold
Very large PDFs (100+ pages) or very large images can skip thumbnail generation to save compute. The file is still readable. Note: as of June 2026 the claude.ai PDF page ceiling is 100 pages on the standard 200k-context models; larger documents are split or rejected. Each PDF page is rendered as an image internally, so dense PDFs can also hit the limit on size, not just page count.
How to judge: Check page count and dimensions. If either is on the high end, that is your answer.
6. Network blocked the thumbnail CDN
Corporate proxies and some ad-blockers block third-party CDN domains. The upload itself succeeds because it uses the main API endpoint, but the thumbnail CDN is unreachable.
How to judge: Open DevTools, Network tab, filter on image. Look for blocked or 4xx/5xx requests to a CDN subdomain (often an *.anthropic.com or asset-host subdomain).
Before you start
- Confirm Claude can actually see the content by asking a concrete question about the file, e.g.
What is the title on page 1?If it answers correctly, the file is in. - Decide whether the preview actually matters for your workflow, or whether you can proceed without it.
- Have one alternate browser ready (Chrome if you are on Safari, or vice versa).
Information to collect
- Exact file type (real extension), size, and dimensions or page count.
- Browser, version, OS, and any active extensions.
- Whether the tile shows a generic file icon or a broken-image icon.
- Network conditions: corporate VPN, public Wi-Fi, residential.
- A screenshot of the attachment tile and any console errors from DevTools.
- Whether other attachments in the same conversation render correctly.
Step-by-step fix
Step 1: Wait and reload
Give it 30 seconds, then reload the conversation. Most failed previews resolve on the second load because the render service has caught up. Reloading is safe: conversations persist server-side, so you lose nothing.
Step 2: Confirm Claude actually has the content
Ask: Without re-reading, summarize the file I just attached in two sentences. If the summary is accurate, the upload worked and only the preview is broken. You can proceed without fixing the thumbnail at all.
Step 3: Re-upload in a supported format
Convert to a format the previewer handles: HEIC to JPG, AVIF to PNG, TIFF/BMP/RAW to JPG or PNG. On macOS, open the image in Preview and use File > Export; on iOS, the Files app can export a JPG copy. Keep individual images under 5 MB and total files under 30 MB. For oversized PDFs, compress with Acrobat or Smallpdf, or split into chunks under 100 pages. Re-upload the cleaned version and the thumbnail usually renders. If you drag-dropped on Safari, use the in-chat upload button instead so the correct MIME type is preserved.
Step 4: Open in Incognito and re-upload
Open the same conversation in an Incognito/Private or Guest window (no extensions load). Re-upload the file. If the preview renders there, your normal browser has a stale cache or a blocking extension.
Step 5: Disable extensions one at a time
In your main browser, disable extensions and reload. uBlock Origin, Privacy Badger, and corporate security extensions are the most common culprits. Re-enable them one by one until the preview breaks again — that identifies the offender so you can allowlist claude.ai in it.
Step 6: Try a different network
Tether to a phone hotspot and reload. If the preview renders on cellular, your office or home network is blocking the CDN. File a ticket asking IT to allowlist the Anthropic asset/CDN domains (the *.anthropic.com and claude.ai asset hosts) on the proxy.
Step 7: For mission-critical files, attach via the Files API
If a file absolutely must be analyzed reliably, bypass the web previewer entirely and use the Anthropic Files API. Upload once, get a file_id, and reference it in any number of Messages calls. As of June 2026 the Files API accepts files up to 500 MB each (500 GB per organization), far above the 30 MB web cap, and it is in beta, so it needs a beta header. Uploads, listing, metadata, and deletes are free; you only pay input tokens when the file content is actually used in a request.
# Upload (returns a file_id)
curl -X POST https://api.anthropic.com/v1/files \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
-F "file=@/path/to/document.pdf"
Then reference the returned id in a Messages request as a document (PDF/text) or image block with "source": { "type": "file", "file_id": "..." }. Note you can only download files Claude created (from Skills or code execution), not files you uploaded yourself.
How to confirm it’s fixed
- A thumbnail appears in the attachment tile within ~10 seconds of upload.
- Clicking the thumbnail opens the full-size preview overlay.
- Claude answers a content-specific question correctly (
What does the chart on page 2 show?). - Reloading the conversation a minute later still shows the thumbnail (rules out a one-off cache miss).
Long-term prevention
- Convert
HEICandAVIFtoJPGorPNGbefore uploading; the iOS Files app and macOS Preview both do this in a couple of clicks. - Keep images under 5 MB and PDFs under 30 MB (web UI). Compress or split before upload.
- Allowlist the Anthropic asset/CDN domains in your corporate proxy and any ad-blocker.
- Keep one browser profile clean of extensions for upload-heavy work.
- For automated or high-volume pipelines, prefer the Files API over the web UI.
- If you mainly need Claude to read charts and tables inside PDFs (not just text), enable
Feature Preview > Visual PDFsfrom your account menu at the bottom-left of the sidebar, so each page is processed as an image too.
Common pitfalls
- Assuming a missing preview means Claude cannot see the file. Ask a question to confirm before re-uploading.
- Re-uploading the same broken file repeatedly. Same MIME, same outcome — change the format instead.
- Treating the iPhone Photos share-sheet output as
JPG. It is oftenHEIC; check the real extension. - Forgetting that drag-drop on Safari can lose the original MIME. Use the in-chat upload button.
- Trusting a partial preview (first page only) as proof the rest is readable. Sometimes only the first page indexed — verify with a question about a later page.
FAQ
- Did Claude actually receive the file even without a thumbnail? Usually yes. Ask the model to summarize the file or answer a question about a specific page to confirm.
- What file types preview reliably? Images:
JPG,PNG,GIF,WebP. Documents:PDF(and the page text fromTXT,CSV,MD).HEIC,AVIF,TIFF,BMP, and RAW are not supported for vision/preview. - Why does HEIC fail? Claude’s vision/preview pipeline supports
JPEG,PNG,GIF, andWebPonly;HEICis not among them. Convert toJPGbefore upload. - Is there a size limit? On the claude.ai web UI, 30 MB per file and 20 files per chat, with images additionally capped at 5 MB each (as of June 2026). The Files API supports up to 500 MB per file.
- My PDF is over 100 pages — why no preview and patchy reading? The web/PDF path tops out at ~100 pages on the standard 200k-context models, and each page is rendered as an image. Split it into sub-100-page chunks or use the Files API.
- Will reloading lose my conversation? No. Conversations persist server-side; only the in-page state reloads.
Related
- Claude file upload stuck on processing
- Claude artifact renders blank
- Claude PDF table extraction wrong
- Claude mobile app sync broken
- Claude file generation credits
- Claude conversation export broken
External references: Anthropic vision/image-format docs, PDF support, and the Files API guide.
Tags: #Claude #Troubleshooting #PDF #Debug