Why Your EPUB Gets Rejected by KDP (And How to Fix It)
If KDP rejected your EPUB, this guide explains the most common errors and the fastest fixes so your ebook passes validation.
There are few publishing moments more deflating than this one. The book is finished, the cover is ready, you upload the file to KDP, and instead of a preview you get an error. Often it’s frustratingly vague, and it rarely tells you which line of which chapter is the problem.
If that’s where you are, take a breath. A rejected EPUB almost never means your book is broken in any way a reader would notice. Most rejections come from a small set of technical issues, and once you know what they are, they’re usually quick to fix. Here are the five I see most often, what causes each one, and how to get past it.
Why a file that looks fine can still fail
Before the specific problems, it helps to understand why this happens at all. When you open your EPUB in a reading app and it looks good, you’re checking how it renders. When KDP processes your upload, it’s also checking how the file is built: whether the table of contents points to real places, whether every image the file mentions actually exists, whether the metadata is complete.
Reading apps are forgiving. They’ll quietly skip a missing image or ignore a broken link and show you the rest. KDP is stricter, because it has to convert your file into its own format for every Kindle device and app. That’s why “it looked fine on my device” and “KDP rejected it” can both be true, and why a visual check and a technical check are two different jobs.
The five most common reasons
1. A broken or missing table of contents
KDP expects your book to have working navigation, so readers can jump between chapters. If the table of contents is missing, lists a chapter twice, or contains links that point nowhere, the file can fail its quality checks.
This is especially common with files that were edited by hand, or where a table of contents was typed out as ordinary text rather than generated. The fix is to rebuild it from your actual chapter headings rather than patching it: make sure every chapter uses the same heading style, regenerate the contents from those headings, and then click through a few entries in a reader app to confirm they land in the right places.
2. Old or messy code inside the file
Every EPUB contains HTML and CSS, the same building blocks as a web page. Files that were converted from Word years ago, or passed through several different tools, often carry a lot of leftover code: inline styles, duplicated rules and markup that newer checks flag as invalid.
You won’t see any of this when you read the book, which is what makes it so confusing. Trying to clean it up line by line is slow and risky. It’s usually faster to bring the book into a formatting tool that rebuilds the file with clean, consistent structure, then export a fresh copy. If you’re dealing with an older backlist title, How to Import an Old EPUB and Clean Up Messy Formatting walks through that process.
3. Missing or damaged images
If your file refers to an image that isn’t actually inside it, or an image is corrupted, KDP may refuse the upload. It happens more than you’d think: an image gets renamed, a file is moved, or a conversion tool skips something without telling you.
Make sure every image appears where it should, stick to JPEG or PNG, and keep file names simple, without spaces or unusual characters. If an image is very large, compressing it can also save you from upload problems later.
4. Metadata that doesn’t match
Your EPUB carries its own details inside it: the title, the author name and the language. KDP compares these against what you enter on the upload form, and inconsistencies cause trouble. A subtitle in one place but not the other, a middle initial missing, or no language set at all can all trigger a problem.
Check that the title and author name are exactly the same in your file and on KDP, that the language is set, and re-export after any change so the file’s internal details are refreshed.
5. Links Amazon doesn’t want
Amazon doesn’t want your Kindle edition sending readers to other bookstores. Back matter with “also available on Apple Books” or a buy link to Kobo can get the book flagged, and the same goes for links that lead somewhere unhelpful or broken.
The simplest fix is to keep your store links separate for each retailer, so the Kindle edition only contains Amazon links. In Libba, that’s what the per-store export does: one project, with a Kindle file that contains only the links Amazon allows. If you’re editing by hand, check the front and back matter carefully before every export, because that’s where these links live.
A routine that prevents most rejections
Most failed uploads can be avoided with the same short routine every time. Make sure your chapters use consistent headings and that the table of contents is built from them. Page through the book in a preview, looking particularly at scene breaks and images. Confirm the title, author and language. Then export a fresh file and open it in Amazon’s free Kindle Previewer before uploading. For an extra technical check, run it through EPUBCheck, the standard validation tool for EPUB files.
If the upload still fails, work through the error message one item at a time, fixing the source and re-exporting after each change, rather than changing several things at once and losing track of which one helped.
Don’t start over
When an upload fails, it’s tempting to scrap the file and rebuild the book from scratch. Resist it. Almost every KDP rejection is a structural issue you can fix in your source and export again in minutes, and starting over just gives the same problems a chance to come back.
If you’re selling on other stores too, you may find the same file behaves differently elsewhere; Why Your EPUB Gets Rejected by Kobo (But Not KDP) explains why. And for the full process from manuscript to upload, see How to Format an EPUB for Amazon KDP.




