Your EPUB cover is not showing on Kindle

You converted a PDF, sent the EPUB to your Kindle, and the library shows a grey rectangle with a filename across it. Open the book and the cover page is there. Close it and the thumbnail is still grey.

This is almost never a corrupted file, and it is almost never Amazon being slow to refresh. It is a specific, boring metadata problem, and once you know what it is you can check for it in about a minute.

An EPUB declares its cover twice

Inside every EPUB is a package file, usually called content.opf, which lists every file in the book and describes what each one is. A cover image has to be pointed at from that package file, otherwise a reader has no way to know which of the images is the cover.

There are two ways to do the pointing, from two different versions of the standard. EPUB 3, the current one, marks the image in the manifest with a properties attribute set to cover-image. EPUB 2, the older one, adds a separate meta element named cover whose content attribute holds the id of that image.

Both are valid. Neither replaced the other in practice. And crucially, different reading systems look for different ones.

Kindle reads the old one

Amazon reads the EPUB 2 meta element. If your file has only the EPUB 3 declaration, Kindle finds no cover and falls back to generating a placeholder from the filename.

This is why the problem is so confusing to diagnose. The file is not broken. It will pass an EPUB validator. The image is present, at full quality, correctly listed in the manifest, and it renders when you open the book, because the first page of the book is a real page containing the image. The only thing missing is a single line of metadata telling Kindle which image is the cover.

Most converters write one declaration, not both. If a tool was built against the EPUB 3 specification, writing the modern attribute and stopping is the reasonable thing to have done.

How to check your file

An EPUB is a zip archive, so you can inspect it without any special software. Copy the file, change the extension from .epub to .zip, and unzip it. Find content.opf, usually inside an OEBPS or EPUB folder, and open it in a text editor.

Search for the word cover. You are looking for two things:

  • A manifest item for your image with properties="cover-image" on it. This is the EPUB 3 declaration.
  • A meta element in the metadata block, name="cover", whose content value matches the id of that manifest item. This is the EPUB 2 declaration Kindle needs.
  • The meta element must not be namespaced. A dc:cover or opf:cover will not be read.

Fixing it

If you are comfortable editing the package file, add the missing meta element inside the metadata block, with its content attribute set to the id of your cover image, then rezip the archive. The mimetype file has to be stored uncompressed and first in the archive, which is the part people usually get wrong when rezipping by hand.

Calibre can also repair this. Open the book in its editor, then use the Tools menu to set the cover, which rewrites both declarations.

Or convert the PDF with a tool that writes both declarations in the first place. That is what this site does, and it then reopens the finished file to confirm the cover is present, decodable and large enough before the download is offered. If a cover problem would break the book, the download is blocked and the reason is shown, because a file that fails silently on your device is worse than no file.

Two other things that cause a grey thumbnail

If both declarations are present and you still see a placeholder, check the image size. Amazon flags covers under 1000 pixels on the long edge as low resolution, and very small images can be rejected outright. The recommended size is 1600 by 2560 pixels.

Also check that the cover page is the first item in the spine, which is the reading order. Some devices take the first page of the book as the thumbnail regardless of the metadata, so a cover that sits second will not be used even when it is declared correctly.