Guide 10
What to do when KDP rejects your file
The common causes, the error messages that map to them, and the fix order that saves you the most re-upload cycles.
KDP has two rejection mechanisms. They feel similar but are different beasts, and understanding which one you're hitting saves a day of debugging.
Type 1: automated preflight failure
Happens within seconds of your upload. KDP's automated checks don't like the file. You get a specific error code or message. Fix the file, re-upload.
The common preflight rejections:
"Trim size does not match selected trim size"
Your uploaded PDF's page size doesn't match the trim size you selected in the KDP form. Fix: regenerate the PDF at the correct trim. Joey Bindery's /new form defaults to KDP-compliant trims and our generator enforces the size programmatically — this error is rare if you generate via our tool. More common if you used a Word export.
"Image resolution below 300 DPI"
Any embedded image (your chapter decorations, images in the body, the cover if paperback) needs to be at least 300 pixels-per-inch at the print size. Under 300 DPI shows as visible pixelation in print. Fix: re-export the image at 300 DPI or drop it.
"Spine width is incorrect"
Paperback cover only. KDP calculates required spine width from page count and paper type. Your uploaded wraparound cover's spine section has to match to within a few millimetres. Fix: download KDP's cover template generator (gives you an exact dimensioned PDF), design the cover to those dimensions, re-upload.
"Bleed settings inconsistent"
Paperback. Interior with bleed needs the full 0.125" bleed on all trimmed edges; no-bleed needs no bleed at all. Mixing is a reject. Fix: regenerate with consistent bleed settings across all pages.
"Fonts not embedded"
PDF-specific. If your PDF references fonts not embedded in the file itself, KDP rejects — they can't guarantee reproducing the typography. Fix: re-export the PDF with "embed all fonts" enabled. Joey Bindery's WeasyPrint pipeline embeds fonts automatically; this error shouldn't happen with tool-generated PDFs.
"EPUB validation failed"
Ebook only. Your EPUB file doesn't pass EPUBCheck, the industry-standard validator. Specific sub-errors vary wildly. Joey Bindery runs EPUBCheck against every generated EPUB and embeds the report in the generated zip as validation.json. If validation passed there but KDP rejects, the issue is likely subtle (one of the handful of warnings that KDP treats as errors even though EPUBCheck treats as warnings).
Type 2: content review holds
Happens 24–72 hours after upload. The automated checks passed but a human reviewer flagged something. You get a vaguer email from KDP Support — "your book has been placed under review" — often with a request for additional information.
Common triggers:
- Similarity to an existing work. If your book's title or description echoes a bestseller's, or if the content looks (to the reviewer) derivative or AI-plagiarised, you get held. Fix: reply with evidence of originality — writing process, earlier drafts, your prior work.
- AI content disclosure. KDP now requires authors to disclose whether AI was used in writing, translation, or cover design. If you check the wrong box or the reviewer suspects undisclosed AI, you get held. Fix: answer honestly; undisclosed AI can result in account-level action.
- Public domain or recycled content. If KDP's fingerprinting matches your upload against previously published material, you're held. Fix: confirm rights.
- Content policy. Erotica with specific prohibited themes, extreme violence, content that reads as extremist — held or denied. Fix: revise or withdraw.
- Trademark or celebrity names in title/description. You can't publish "Harry Potter and the Philosopher's Tone" even as satire. Fix: retitle.
Content review is harder to resolve than preflight because the issue isn't always concrete. You're arguing with a human. Respond calmly, provide evidence, be willing to revise. Many holds clear in 48 hours after a reasonable response.
The order to fix things
If you got a preflight error, work in this order — it minimises re-upload cycles:
- Check the error message. Don't guess. KDP's message usually names the exact file and issue.
- Verify against the Phase-4 validation panel. (Ships in our Phase 4 — for now, run the Joey Bindery
/generateendpoint; the resultingvalidation.jsoncatches most issues KDP will.) - Fix the single most-likely issue. Not all issues at once — the reported one first.
- Re-upload. Don't change metadata yet; if the file is the problem, metadata is working.
- If the same error returns, read more carefully; it's usually something adjacent.
- If a new error appears, good — you fixed the first one, now fix the next.
Things that make this worse
- Uploading the same file three times in a row. KDP's cache sometimes returns stale errors; but usually the file is still broken. Fix it first.
- Changing five things at once. When a re-upload succeeds, you don't know which of the five mattered.
- Giving up and rebuilding the PDF from Word. Word's PDF export has its own bugs. The problem isn't always the source — it's often the export path.
- Ignoring EPUBCheck warnings. "Warnings" from EPUBCheck can and do become "rejections" from Apple Books' stricter validation (less so KDP). If you're going wide, treat warnings as errors.
What Joey Bindery catches automatically
Every /generate run produces a validation.json embedded in the zip. It tells you:
- Whether EPUBCheck passed, and if not, the specific errors and warnings.
- Whether each PDF rendered to its expected trim dimensions.
- Whether fonts embedded correctly.
The Phase 4 retailer-validation pass will extend this with KDP, Apple Books, IngramSpark, and Kobo specific checks before you upload. For now, treat the validation.json in your generated zip as the single most reliable pre-flight.
The short version
- Read KDP's actual error message. The message usually tells you.
- Fix the single most-likely issue first.
- Re-upload without changing other things.
- If the error is "content review hold", respond calmly with evidence.
- Trust Joey Bindery's
validation.json— if EPUBCheck passes and trim dimensions match, preflight usually passes too.
Anthony's take
TODO — revise with Spellbound specifics. Did KDP reject the first upload? What was the specific error and what was the actual fix? Any content-review holds? The Spellbound-specific debugging trail replaces this paragraph.