Why Is KDP Rejecting My EPUB? The 7 Real Causes and Fixes
You've finished your book. You've spent hours formatting it. You upload to KDP and get back a rejection with a two-sentence error message that tells you almost nothing.
KDP rejections are common, and the error messages are notoriously vague. "Your file could not be published due to content errors" — okay, but which file? Which content? Where?
This guide covers the seven most common reasons KDP rejects EPUB files, what the actual error messages look like, and exactly what to do about each one. If you are new to the platform, our guide to what Amazon KDP is covers how publishing, royalties, and file requirements fit together.
Reason 1: Broken EPUB Package Structure
KDP error message:
"Your file could not be uploaded. The file format is invalid."
"The EPUB file is corrupt or the package structure is incorrect.
Verify that the file is a valid EPUB and try again."
The EPUB package has strict structure requirements. The file must be a valid ZIP archive containing a mimetype file as the first item (uncompressed), a META-INF/container.xml file that points to the OPF package document, and the actual EPUB content organized in a folder.
Where this breaks: when authors create EPUBs by renaming a .zip to .epub, or when a ZIP tool compresses the mimetype file, or when the top-level folder is included in the ZIP instead of just its contents.
Fix: Use an EPUB-specific packaging tool to repackage. If doing it manually, add the mimetype file first using the store method (no compression), then add everything else. The resulting ZIP with an .epub extension should have mimetype as the very first entry. Run the result through the EPUB Validator to confirm the package structure passes before re-uploading to KDP.
Reason 2: No Table of Contents Detected
KDP error message:
"No table of contents (TOC) found in your EPUB. Kindle books
should include a table of contents to help readers navigate."
"Your file was published but we could not detect a table of
contents. Readers may not be able to use the Kindle menu to
navigate between chapters."
KDP requires a navigable TOC — either an NCX file (EPUB 2.0) or a nav document (EPUB 3.0). If these are missing, broken, or not correctly listed in the OPF manifest, KDP blocks the upload or publishes with a non-functional TOC.
Fix: Generate a proper TOC from your chapter headings using the TOC Generator. Make sure the resulting TOC file is listed in the OPF manifest with the correct media type, and that the spine order is correct. For EPUB 3.0, the nav document also needs properties="nav" in its manifest item.
Reason 3: Malformed XML in Content Files
KDP error message:
"Your book could not be published because one or more content
files contain invalid XML or XHTML."
"Parse error: file 'chapter03.xhtml' is not well-formed XML.
Check for unclosed tags and improperly escaped characters."
KDP parses every HTML content file as XHTML — strict XML. XHTML violations cause parse failures for the entire chapter file. Common causes:
- Unclosed void elements:
<br>instead of<br/>,<img>instead of<img/> - Unescaped ampersands:
&in a URL must be written as& - Missing attribute quotes:
class=chapterinstead ofclass="chapter" - Overlapping tags:
<b><i>text</b></i>(close in reverse order)
Fix: Run your EPUB through the EPUB Validator — it identifies every XML error by filename and line number. Fix each one in a text editor. If the errors are widespread across many files, the Full Manuscript Mode rebuilds your EPUB from the manuscript with clean, valid XHTML output.
Reason 4: Missing or Invalid Metadata
KDP error message:
"Your EPUB file is missing required metadata. Please ensure
your file includes a title, author, and language."
"The language code in your EPUB metadata is not valid.
Use a BCP 47 language tag such as 'en' or 'en-US'."
Your OPF file must contain required metadata: a unique identifier (ISBN or UUID), dc:title, dc:language in valid BCP 47 format, and dc:creator. Missing fields or invalid values cause rejection. The most common mistake is setting dc:language to the word "English" instead of the code en.
Fix: Open your OPF file and verify each required metadata element is present and correctly formatted. The Metadata Builder generates properly formatted OPF metadata — paste it directly into your package file with no manual format guessing.
Reason 5: Image Errors
KDP error message:
"One or more images referenced in your book were not found
in the EPUB package."
"Image format not supported. The EPUB contains images in an
unsupported format. Use JPEG, PNG, GIF, or SVG."
"Cover image could not be found or has an invalid format."
KDP rejects EPUBs that reference images that don't exist in the package. It also rejects unsupported image formats — EPUB supports JPEG, PNG, GIF, and SVG. WEBP and other formats cause errors. Wrong relative paths in your HTML are a common trigger: if your chapter file is in OEBPS/Text/ and your image is in OEBPS/Images/, the relative path should be ../Images/cover.jpg, not Images/cover.jpg.
Fix: Validate your EPUB to get a list of broken image references. Fix path issues in the HTML files. Convert WEBP or other unsupported formats to JPEG or PNG. Make sure every referenced image is included in the package and declared in the OPF manifest with the correct media type.
Reason 6: DRM or Encryption Conflicts
KDP error message:
"Your file appears to be DRM-protected and cannot be published
through KDP. Please upload an unprotected version of your book."
"The EPUB file contains encryption that prevented it from
being processed."
If you're uploading a file that was previously DRM-protected by another platform, KDP will reject it. EPUBs downloaded from Kobo, Google Play, or Apple Books are DRM-locked and cannot be re-uploaded anywhere. KDP files you download as a buyer also have KDP DRM applied — they can't be re-uploaded. Always upload from your original source file, never from a copy downloaded from a store.
Fix: Always publish from your original EPUB source file — the one you created or received from your formatter, not one downloaded from any retail platform. If you've lost your original file, rebuild it from your manuscript using the Full Manuscript Mode.
Reason 7: Embedded Font Licensing or Declaration Problems
KDP error message:
"Your EPUB contains embedded fonts that are not properly
declared in the package manifest."
"A font embedding license issue was detected. Embedded fonts
must have licenses permitting digital embedding."
KDP allows embedded fonts, but they must be declared in the OPF manifest with the correct media type, and fonts that don't have licenses permitting embedding can cause content policy rejections. Commercial fonts from Adobe Fonts or similar services often don't permit embedding in ebooks. The SIL Open Font License is the safe choice for embedded fonts.
Fix: Use only fonts with licenses that explicitly allow embedding (SIL Open Font License). Declare embedded fonts in the OPF manifest with media-type="application/vnd.ms-opentype" for .otf/.ttf fonts or application/font-woff for WOFF. If you're not certain a font's license permits embedding, use system fonts and reference them through CSS font-family stacks instead.
The Fastest Diagnosis Path for Any KDP Rejection
Stop guessing from the rejection email. Upload your EPUB to the BookKraft AI EPUB Validator first. It runs the same structural checks KDP runs — checking mimetype, container, OPF, manifest, spine, HTML validity, image references, and TOC — and gives you a specific, prioritized list of problems with file names and line numbers.
Fix the problems the validator identifies, re-validate to confirm they're resolved, then upload to KDP. One attempt instead of several rounds of trial and error.
Pro Tips
- Fix everything before re-uploading. Don't upload again until your validator shows zero errors. The validator catches all issues in one pass; fix them all at once.
- Keep your source file. Always maintain the original manuscript or clean EPUB source. If you need to fix a published book, you want to start from the clean source, not from a re-downloaded copy with DRM.
- Use Kindle Previewer as a final check. After validation passes, open the file in the Kindle Previewer and check TOC navigation, image display, and text formatting on at least one e-ink device type before uploading.
- Check image paths case-sensitively. Image path errors are often case mismatches — the HTML says
Images/Photo.jpgbut the file is namedimages/photo.jpg. On case-sensitive systems this breaks; on Windows it might work locally but fail on KDP's Linux servers.
Frequently Asked Questions
How do I know if my KDP rejection is technical or content-related?
Technical rejections appear within a few minutes of upload and cite file structure, format, metadata, or image issues. Content rejections appear after 24–72 hours of review and cite policy violations (prohibited content, misleading title, copyright concerns). If your rejection arrived in under 10 minutes, it's almost certainly a technical problem you can fix with an EPUB validator report.
Can I use EPUB 2.0 for KDP?
Yes, KDP accepts EPUB 2.0. But EPUB 3.0 is the current standard, supports more Kindle features (enhanced TOC, better accessibility), and is less likely to trigger formatting warnings. If you're creating a new EPUB, target EPUB 3.0 from the start. If you have an existing EPUB 2.0 file that keeps getting rejected, rebuilding to EPUB 3.0 is often faster than fixing all the individual EPUB 2.0 issues.
Does the Kindle Previewer catch all errors before upload?
No. The Kindle Previewer shows how your book renders on Kindle devices but doesn't perform full EPUB validation. A file can look visually correct in the Previewer and still fail KDP's upload validator. Always run a separate EPUB validator before relying on the Previewer as your only check.
My EPUB worked on KDP before. Why is it being rejected now?
KDP periodically updates its validation requirements. A file that passed two years ago may fail today because KDP has tightened its parser or added new checks — particularly around EPUB 3.0 compliance and accessibility standards. Run the file through a current validator to see if previously-tolerated errors are now being flagged under new rules.
How many times can I re-upload to KDP after a rejection?
There's no hard limit on re-uploads. But fix all known issues before each attempt — don't upload again until your validator shows zero errors. Repeated failed uploads on the same ASIN can slow your review processing time and delay publication. One clean upload after thorough validation is always faster than multiple failed attempts while troubleshooting.