Cermify · Error Library · KDP

Navigation · E-TOC

Table of contents points to missing content

One or more TOC entries link to an id or file that no longer exists in your book, which breaks Kindle's chapter navigation.

Severity
error
Automatic repair
Supported
Submission impact
KDP: reject
Rule ID
E-TOC
Error: Table of contents points to missing content
Category: Navigation
Severity: error
Auto Repair: Supported
Rule ID: E-TOC
Affected: KDP=reject, Apple=reject, Google=warning, Kobo=warning
Check this automatically with Cermify

Why this happens

How platforms treat it

PlatformResult
KDPreject
Apple Booksreject
Google Playwarning
Kobowarning

How Cermify detects it

  1. Parse all TOC sources: NCX, EPUB 3 nav, and in-body HTML contents lists.
  2. Resolve each href against files present in the EPUB zip.
  3. For fragment links, confirm the id/name exists in the target document.
  4. Flag any unresolved entry as E-TOC.

Automatic repair

Cermify can drop or retarget broken TOC entries when a confident match exists (same title or spine neighbor). Ambiguous targets are left for guided repair so chapters are not silently skipped.

Manual fix

  1. List every broken href from the report.
  2. Either restore the missing file/id or update the TOC entry to the correct chapter and fragment.
  3. Keep NCX, nav, and HTML TOC in sync if you maintain more than one.
  4. Recheck navigation in Kindle Previewer (Go To → Table of Contents / chapter list).

Examples

TOC content src must resolve to a real file and id inside the EPUB.

Incorrect

<navPoint id="np2">
  <content src="text/old-chapter.xhtml#intro"/>
</navPoint>

Correct

<navPoint id="np2">
  <content src="text/chapter-02.xhtml#intro"/>
</navPoint>

FAQ

Is a broken HTML contents page the same as E-NCX?

Related but distinct. E-NCX is missing/mismatched navigation documents; E-TOC is dangling links from an existing TOC to missing targets.

Can I leave orphan TOC entries?

No for KDP. Unresolved TOC targets break chapter navigation and typically fail Kindle checks.

What if only the fragment is wrong?

Point to the chapter file root or update the heading id so the fragment matches. Prefer stable ids on headings.

Related errors

References