EPUB Error: Broken Internal Link (RSC-007)
What causes this error?
RSC-007 fires when an internal hyperlink inside your EPUB content points to a target that does not exist — either a file that was removed from the package, or an anchor ID that was renamed, deleted, or never created in the target document. The most common cases are footnote links (<a href="#fn-23">) where the corresponding <span id="fn-23"> in the endnotes file was removed during editing, chapter cross-references that became stale after chapters were renumbered or reorganized, and navigation document links that do not match the heading IDs in the chapter files. Because EPUB is XHTML-based, every internal link is validated as a real resolvable reference — unlike HTML in a browser where a broken anchor simply scrolls to the top of the page, EPUB validators treat unresolved internal links as structural errors.
How to fix it
- Run EPUBCheck and collect all RSC-007 errors — each one includes the file containing the broken link and the exact
hrefvalue that failed to resolve. - For each broken link, determine whether the href targets a fragment identifier only (e.g.,
#fn-23) or a separate file plus fragment (e.g.,endnotes.xhtml#fn-23). If it targets a file, confirm that file exists in the package and is declared in the OPF manifest. - Open the target file and search for an element with an
idattribute matching the fragment (e.g.,id="fn-23"). If absent, either add the missingidto the correct element or update the broken link's href to match an existing id. - For footnote and endnote systems, ensure each reference anchor in the chapter body has a matching return link in the notes file, and that both sides use identical id values without typos or case differences.
- After fixing all instances, re-validate with EPUBCheck and test footnote navigation in Kindle Previewer to confirm links resolve correctly end to end.
Common questions
How is this RSC-007 error different from the OPF manifest reference error?
The OPF manifest reference error (also coded RSC-007 in some EPUBCheck versions) means the OPF file declares a resource that is absent from the package. This variant means a hyperlink inside your content HTML points to an anchor or file that does not resolve — it is a content-level link problem, not a package-structure problem. Both share the error code but the source and fix are different.
Does EPUBCheck flag broken links to external websites as well?
No. EPUBCheck validates only internal references: links to other files within the EPUB package and anchor fragments within those files. External URLs pointing to websites are outside the scope of structural EPUB validation and are not checked.
Check your EPUB before uploading
The free EPUB Validator catches structure, metadata, and navigation errors — no signup, no Java, runs in the browser.
Validate Your EPUB Free →Building your EPUB correctly from the start prevents most of these errors before they happen. See the EPUB formatting guide for the full workflow: manuscript cleanup, TOC, front matter, EPUB 3.0 generation, and validation.
Common EPUB errors: Duplicate ID attribute in EPUB, NCX navPoint mismatch, OPF manifest references a missing file