epub failing epubcheck due to identifier issue

I’ve successfully exported an epub of one of my books in the past and it has passed epubcheck validation without a problem. Recently I made a minor change to the book (changed the cover image size) and exported it again. Now it is failing epubcheck 3.0.1 with the following error in the file OPS/toc.ncx:

meta@dtb:uid content ‘EA01C16F-8029-4037-9B23-F4F348053F25’ should conform to unique-identifier in content.opf: ‘urn:uuid:EA01C16F-8029-4037-9B23-F4F348053F25’

After some googling around it seems the error is caused not by the unique identifiers, which as you can see are the same, but by the prefix ‘urn:uuid:’ which exists in the content.opf but not in the toc.ncx version.

I then went back to the previous epub file (which used to pass the epubcheck) and found that it also contains this difference, and now fails the epubcheck validator. So it would seem that something has changed in the validation check. Can anyone shed any light on this? I acknowledge it seems it is probably not a Scrivener issue as such, unless the validation rules have changed.

Further to the below, I just found a site where I could validate using epubcheck 3.0 (as opposed to 3.0.1) and my book passed, so either the rules have changed or there is an error in epubcheck 3.0.1. Hopefully this might be useful information to others.


They changed the rules very slightly for epubcheck 3.0.1. The next update of Scrivener addresses this, ensuring that generated ePubs pass epubcheck 3.0.1, but in the meantime it doesn’t seem to cause any problems for submitting to iTunes Producer and suchlike. There will be a public beta of Scrivener out with this fix very soon.

All the best,

Thanks Keith.

Yes, I can confirm that my book passed the check with Smashwords (and hence Apple). It appears they must still be using epubcheck 3.0, so for now I will check my ebooks using that version.