Amazon converts emailed EPUBs using Kindlegen, the same software that is used to process professionally published books. As a publishing tool, Kindlegen is designed to be intolerant of errors in the source EPUB.
It would be nice if Amazon would provide the actual error log that Kindlegen produces when rejecting a book. However I don't see that happening as it would just be confusing to most customers. If you want to know why a book was rejected you can use Amazon's Kindle Previewer software to find out.
The most common reason I have seen is a bad table of contents. Amazon's publishing guidelines require the TOC to have working links that point to non-hidden content and entries that follow the same sequence as the book's content.
|