Email Says PDF Is 0 Bytes or Attaches Blank (Gmail & Outlook)
The mail client refuses the attachment or the recipient opens an empty page. Before you blame the PDF format, verify the bytes actually exist on disk.

"This file is 0 bytes, so it will not be attached." The client is not being poetic — the bytes are not there.
0 bytes vs blank vs blocked
| Report | What it means | Guide |
|---|---|---|
| Client refuses attach: 0 bytes | Empty/unreadable local file | This post |
| Arrives, size > 0, pages white | Render/content bug | Blank white page |
| Arrives, AV/quarantine strip | Filter action | Email quarantined |
| Rejected for size cap | Too big, not empty | Attachment limits |
| Portal rejects bytes | Magic/truncation | Invalid upload |
Fix ladder
- Properties → size. If 0: re-export from source; wait for cloud sync;
confirm you did not move/delete mid-export.
- Extension: ensure
.pdfis present and real. - Path/name: copy to Desktop as
doc.pdf(short ASCII name) and attach
that copy (filename rejects).
- Open test: double-click the exact file you will attach — pages must
render before it leaves.
- Size under provider cap (Yahoo/iCloud/Proton class,
- Still failing client-side: try webmail vs desktop app; zip only when the
destination allows archives and policy permits.
After it sends
Recipient-side verification: size chip non-zero, opens locally, no quarantine notice (quarantine guide). Walk what to check before sending once — size, open, metadata, links.
Honest BytesPDF scope
Tools emit real files under documented limits; we do not attach to email for you. 0-byte diagnoses are filesystem/client checks first — compress only when the real problem is too large, not empty.
Provider notes
| Client | Common twist |
|---|---|
| Gmail web | Hard-stops true 0-byte; path/name client bugs rare but documented in threads |
| Outlook desktop | OST/PST cache and cloud placeholders produce empty attaches |
| OneDrive/Dropbox online-only | Attach after full hydrate (size stable on disk) |
| Corporate webmail | May strip or re-encode; test with a known-good sample |
Recover-and-resend script
- Confirm size on disk ≠ 0; open locally.
- Copy to a short desktop path as
name.pdf. - Attach the copy; confirm size chip in compose view.
- If still empty: export again from source application; restart client.
- Recipient confirms size chip + open — then you are done
(pre-send).
Zip only when the other side allows archives and you are fixing transfer fragility — not as theater for an empty file. Size-cap failures jump to the email limits hub.
Frequently asked questions
Gmail says my PDF is 0 bytes and will not attach — why?
The file on disk really is empty or unreadable to the client: an export that never finished, a cloud placeholder not hydrated, a wrong path, or a 0-byte file you did not notice. Right-click → properties/Get Info for size. Re-export from source if size is 0. Renaming has fixed odd client bugs when size was never zero.
The recipient says the PDF arrived blank — is that 0 bytes?
Usually no — blank often means pages that render empty or a converter bug ([blank white page](/blog/pdf-opens-blank-white-page)). 0-byte means no payload at all: their mail client may show 0 KB. Ask for exact size in the attachment chip.
Missing .pdf extension — does that cause this?
Yes in some flows: 'resume' without .pdf confuses clients and portals. Restore the extension; never invent extensions for non-PDFs ([filename guide](/blog/pdf-upload-rejected-filename)).
Cloud placeholder files (OneDrive/Dropback 'online-only')?
Attach after the file is fully downloaded locally (green/full icon, size stable). Placeholder stubs can serialize empty. Free up space carefully — do not 'free up' the file you are sending.
Does BytesPDF create 0-byte outputs?
Successful runs produce a real downloadable PDF (tool pages document limits). If a download is empty, re-run and check disk space/browser download settings. Then verify size before attach ([pre-send](/blog/what-to-check-before-sending-a-pdf)).
Related comparisons
Source-led comparisons written by BytesPDF, with the conflict of interest disclosed on each page. They link official provider documentation rather than fabricated tests.