Package Structure · E-SPINE
Reading order (spine) is empty or broken
Your book's reading order (the 'spine') is missing entries or points to files that don't exist, so Kindle doesn't know what order to show pages.
Error: Reading order (spine) is empty or broken
Category: Package Structure
Severity: error
Auto Repair: Supported
Rule ID: E-SPINE
Affected: KDP=reject, Apple=reject, Google=reject, Kobo=reject
Check this automatically with Cermify
Why this happens
- Empty <spine> after a failed export or manual OPF edit.
- itemref idref values that do not match any manifest item id.
- Manifest items deleted while spine references remain.
- Only linear="no" extras left with no linear reading content.
How platforms treat it
| Platform | Result |
| KDP | reject |
| Apple Books | reject |
| Google Play | reject |
| Kobo | reject |
How Cermify detects it
- Parse the OPF spine element.
- Ensure at least one linear itemref exists.
- Resolve each idref to a manifest item whose href exists in the package.
- Flag empty spine or dangling idrefs as E-SPINE.
Automatic repair
Cermify can rebuild a spine from remaining manifest XHTML documents in a deterministic order when the spine is empty or fully broken. Review order for front matter vs chapters after repair.
Manual fix
- List chapter XHTML files in the intended reading order.
- Ensure each has a manifest <item id="…" href="…">.
- Add matching <itemref idref="…"/> entries inside <spine>.
- Remove itemrefs for deleted files; recheck in a reader.
Examples
Every spine idref must match a manifest item id.
Incorrect
<spine toc="ncx">
<itemref idref="missing-chap"/>
</spine>
Correct
<manifest>
<item id="c1" href="chapter1.xhtml" media-type="application/xhtml+xml"/>
</manifest>
<spine toc="ncx">
<itemref idref="c1"/>
</spine>
FAQ
Is spine the same as the visual TOC?
No. Spine is the mandatory reading order. TOC/nav helps humans jump; spine defines what the reader opens next.
Can cover images be in the spine?
Optional cover page XHTML may be first. Do not put binary image items directly in the spine—only content documents.
What does linear="no" mean?
Non-linear items are skippable extras (notes, extras). You still need a primary linear reading path.
Related errors
References
- EPUB spine / itemref
- Cermify Rule Set kdp-epub-2026-07