ebooknexus.

NCX-001: NCX identifier does not match OPF identifier

Epubcheck reports: ERROR(NCX-001): NCX identifier ("abc") does not match OPF identifier ("xyz"). The table of contents and the package document disagree about which book this is.

What it means

Epub 2 books keep their navigation in a file called toc.ncx, and that file carries its own copy of the book's unique identifier in a dtb:uid meta element. The spec says it must equal the dc:identifier in the OPF package document. When the two drift apart, validation fails.

Why it happens

Some tool rewrote one identifier and not the other. Editing metadata in Calibre is the classic case: it regenerates the package identifier but the NCX keeps the old one. Merging content from two books, or any script that touches the OPF, does the same thing.

How to fix it by hand

Open the OPF, copy the text content of the <dc:identifier> element that the <package unique-identifier="..."> attribute points at, then open toc.ncx and paste it into the matching meta:

<meta name="dtb:uid" content="paste-the-identifier-here"/>

The one-click way

The checker detects the mismatch and the fixer copies the package identifier into the NCX for you. In your browser, nothing uploaded.

Check and fix your Epub
Most readers shrug this one off and open the book fine. Stores are less forgiving, and a mismatched identifier sometimes confuses library software that tracks books by id, so sync it before you publish.

All Epub error codes, explained