Scan first
You do not know whether the file is used.
Upload the EPUB and check whether any XHTML, CSS, nav, NCX, cover, or metadata reference points to the undeclared path.
EPUB error guide
How to understand the OPF_003 EPUBCheck error when a file exists in the EPUB but is missing from the OPF manifest, and when a manifest repair is safe before KDP upload.
1. Example report output
A useful report should not stop at "file missing from manifest." It should show whether the file is part of the book or just leftover export debris.
EPUBCheck message
ERROR(OPF-003): OEBPS/content.opf: Item "Images/cover.jpg" exists in the EPUB but is not declared in the OPF manifest.
KDP / Previewer wording
The EPUB package contains a file that is not listed in the package manifest.
EPUB Fixer report
Found OEBPS/Images/cover.jpg in the ZIP. It is referenced from Text/chapter1.xhtml, but content.opf has no manifest item for it.
Do this next
Add a manifest item only if the file is actually referenced and the media type is clear.
Do not do this
Do not declare backup files, hidden files, source files, or old export leftovers just to clear OPF_003.
Safe repair means adding one real book asset to the manifest, not making the ZIP inventory look valid by listing every file.
2. Next step
The next step depends on whether the reported file is used by the EPUB.
Scan first
Upload the EPUB and check whether any XHTML, CSS, nav, NCX, cover, or metadata reference points to the undeclared path.
Manual check
Do not add it automatically. Review whether it is an old cover, backup, source asset, or duplicate export file that should be removed instead.
Safe repair
Add a manifest item with the correct href and media-type, then run EPUBCheck again before downloading or uploading to KDP.
3. Concrete path example
This is the kind of relationship the report should expose.
EPUBCheck: ERROR(OPF-003): OEBPS/content.opf: Item "styles/print.css" is not declared in the OPF manifest. Report: Found: OEBPS/styles/print.css Used by: OEBPS/Text/chapter4.xhtml Manifest: no item href="styles/print.css" Fix decision: safe repair if media-type is text/css After: add manifest item, then validate again
If the same scan finds old-cover-backup.jpg with no references, that file should not be declared just because it is present in the ZIP.
Quick decision
Both cases can produce OPF_003, but they should not be fixed the same way.
Scan first
Trace the path through XHTML, CSS, nav, NCX, cover metadata, and OPF properties before editing content.opf.
Safe fix
Declare the file with a stable id, exact relative href, and correct media-type, then validate the EPUB again.
Stop
Do not add draft files, duplicate images, hidden files, source documents, or random export leftovers to the manifest.
Start here
OPF_003 is not a reason to add every loose file to content.opf. First identify the exact file path, then decide whether the book actually uses that file.
The file is inside the EPUB, but content.opf does not list it in the book's file inventory. EPUB readers and validators use that inventory to decide which chapters, images, styles, fonts, and navigation files belong to the book.
EPUB Fixer can help when the extra file is clearly used by the book and has a known media type, such as a referenced image, CSS file, XHTML content document, nav file, NCX file, or font. A safe fix adds a manifest item with a stable id, correct href, and correct media-type, then checks the EPUB again.
Copy the exact file path from the EPUBCheck message. Example: if it reports OEBPS/styles/print.css, keep that folder and file name exactly as written.
Do not add every loose file to the manifest automatically. Draft files, source files, backups, hidden system files, duplicate images, or unrelated assets may be better removed from the package. If the file is not referenced by the book and its purpose is unclear, the report should stop for manual review.
Common situations
Most OPF_003 errors come from a small number of packaging mistakes after editing or exporting.
The image file exists and the XHTML points to it, but content.opf does not declare it.
Add the image only if the href and media type are clear.
The ZIP contains old-cover-backup.jpg or a duplicate asset that no book file uses.
Remove or review the loose file instead of declaring it.
An XHTML file imports a CSS file that the export tool did not put in the manifest.
Declare the stylesheet if it is really used and the path matches exactly.
The font exists in the package but may or may not be referenced by CSS.
Check the CSS font-face rules before adding the font to the manifest.
OPF_003: Item exists in the EPUB, but is not declared in the OPF manifest.
EPUBCheck, Kindle Previewer, or KDP finds a packaged file such as an XHTML chapter, image, stylesheet, font, nav file, or NCX file that is present in the ZIP container but missing from the OPF manifest.
What it means
The file is inside the EPUB, but content.opf does not list it in the book's file inventory. EPUB readers and validators use that inventory to decide which chapters, images, styles, fonts, and navigation files belong to the book.
This often happens after manual ZIP edits, image replacement, stylesheet cleanup, chapter renaming, or export tools that leave unused files behind. It can also happen when a file is copied into the EPUB after export but no matching manifest item is added to content.opf.
Before you edit
The safe fix depends on use, not just presence. A referenced stylesheet or image usually belongs in the manifest; a backup image or hidden system file usually should not.
Why KDP checks it
The OPF file is the EPUB's map: metadata, file list, reading order, and navigation wiring. KDP and EPUBCheck use it to decide whether the book package is coherent.
EPUBCheck checks EPUB 2 and EPUB 3 files against the official rules and reports package, markup, link, and file-reference problems.
Can this be fixed safely?
EPUB Fixer can help when the extra file is clearly used by the book and has a known media type, such as a referenced image, CSS file, XHTML content document, nav file, NCX file, or font. A safe fix adds a manifest item with a stable id, correct href, and correct media-type, then checks the EPUB again.
Do not add every loose file to the manifest automatically. Draft files, source files, backups, hidden system files, duplicate images, or unrelated assets may be better removed from the package. If the file is not referenced by the book and its purpose is unclear, the report should stop for manual review.
Before: the EPUB ZIP contains OEBPS/styles/print.css and a chapter references it, but content.opf has no manifest item for that CSS file. After: content.opf includes a manifest item for styles/print.css with text/css as the media type. Before: the ZIP contains old-cover-backup.jpg that no file references; that should not be blindly declared.
Ready to retry?
A scan should show whether the file is referenced by XHTML, CSS, nav, NCX, cover metadata, or another package field before any manifest entry is added.
Upload EPUB to scanFAQ
It means a file is present inside the EPUB container, but the OPF package file does not list it in the manifest. Validators use the manifest as the official inventory of publication resources.
No. Add the file only when it is part of the book and has a clear media type. Backup files, unused images, source files, and hidden system files are usually better removed from the EPUB.
Yes. KDP and Kindle Previewer can reject an EPUB when the package inventory does not match the files needed by the book, especially for chapters, images, stylesheets, fonts, navigation files, and NCX files.
OPF_003 is about a file that exists in the EPUB but is not declared in the manifest. RSC_007 is usually about a reference to a file path that cannot be found in the EPUB at all.
It can treat the issue as safe to fix when the file is clearly used by the book and the correct manifest media type is known. If the file looks unused or ambiguous, the report should stop for manual review.
Add it only when an XHTML, CSS, nav, NCX, cover, or metadata reference actually uses it. Remove it when it looks like an old backup, duplicate export file, hidden system file, or source document.
It is inside the OPF package file, often named content.opf or package.opf. The manifest section is the file inventory for the EPUB.