Failing ePubCheck for Draft2Digital/Smashwords

This is the first book I’ve completed since Direct2Digital merged with Smashwords. I’ve compiled it to the ePub2 format, but when I upload to D2D, I now get the following error:

Validation for current epub: 0 fatals / 1 error / 0 warnings / 0 infos

WARNING: Kobo, Apple, Tolino, OverDrive, Amazon, Bibliotheca, Baker & Taylor, Hoopla, Vivlio, D2D Print, BorrowBox, Smashwords, Palace Marketplace, Gardners, and Fable will be disabled until this epub can pass EPUB version 2.0 rules

ERROR(RSC-012): /OPS/footnotes.xhtml(11,5821): Fragment identifier is not defined.

I have no idea where to look or how to fix this. Can anyone help out? Thanks.

The destination of an iternal link in Footnotes.xhtml in the OPS-folder is missing. De error is on line 11, column 5821 in that file, so that must be an outragiously long line.

So, manually, unzip the e-book with a dedicated unzip program like 7-zip, locate the OPS folder, locate the file Footnotes.xhtml and look on line 11 for a link to a footnote that needs an ID, so the link is not broken.

Less trouble is to install e-book editor Sigil, open the e-book, open the OPS folder in the file browser, click on Footnotes.xhtml on the left and scroll to line 11 for a link to a footnote that needs an ID, so the link is not broken.

Hope this helps


Thanks for the help. I’ve had Sigil on my computer for years but never really needed to use it. So, after a bit of learning curve, I found the footnote.xhtml folder and went to line 11. All 31 footnotes have IDs. The following is an example:

> <p class="footnotes"><a id="fn29"></a><a href="body19.xhtml#fn29"><span class="fn-label">29.</span></a></p>

They are all consistent with this example, and I don’t find any broken code in any of them. What I haven’t figured out is whether or not there’s a way to go directly to that column (5821) so I can look specifically there.

Curiously, when scrutinizing each footnote, I found one styled for ‘superscript’ and another styled for a color and underlining. When those style characteristics were removed and the epub file saved, D2D accepted it. So, it appears it wasn’t so much an ID issue as one of a STYLE characteristic not being acceptable. Since the STYLEs weren’t needed, removing them ended up an easy fix.

Thanks again for pointing me in the right direction.


If you go back to those footnotes in Scrivener and have a look at them, do these formatting options appear in the original? If so they can probably be removed there to avoid complications with compiling again in the future.

We should probably add a filter here to strip out some kinds of formatting like that, if they cause validity errors. If you don’t see anything obvious, and can do so, sending tech support a zipped copy of the original project, along with instructions on where to find the problematic formatting, would help us figure out what is going on, and hopefully fix the bug/oversight that is causing it.



Thanks for the reply.

I had already looked into the footnotes in my project file and figured out how to change/fix them there before your reply came through. There was nothing obvious with most as they were simple copy&pastes of website IP addresses. I found I needed to remove the links, ensure the font was correct, and make sure the text was black, not colored, to get them to clear EPUBCheck. One, however, somehow pasted as an 8-pt font from its original 12-pt font, even though I pasted it to match style. It would not match style, but I was able to change its font size and then it cleared EPUBCheck.

I might have an older project file on my laptop. if you would find it helpful, I can check and send it along as a zip file. It would be a copy that hasn’t gone through the grammar and spell checks that I do on my desktop computer, but the footnotes should be in their original styles.

1 Like

Yeah, even just one original paragraph with an example footnote on it, dropped into a blank project, would probably be enough for us to go on. If you manage to find the time, go for it; glad to hear you got things working from the source so you don’t have to keep fixing them manually though.