Skip to content

EPUBCheck messages explained

EPUBCheck reports every problem in an EPUB as a code such as RSC-005 or OPF-014 with a severity. This reference lists all 246 messages of EPUBCheck 5.4.0 with their official text, and explains causes and fixes for 189 of them.

Updated:

Severities

Fatal error
EPUBCheck could not continue checking this part of the EPUB. The file is invalid.
Error
The EPUB breaks a rule of the specification and is invalid. Stores and Send to Kindle may reject it, and EPUBCheck exits with status 1.
Warning
The EPUB is still valid, but something is likely to cause problems in some reading apps. EPUBCheck exits with 0 unless you pass --failonwarnings.
Usage
Informative only and hidden by default: it appears when EPUBCheck runs with -u (--usage). It does not make the EPUB invalid.
Info
Informative only. It does not make the EPUB invalid.
Suppressed
EPUBCheck does not report this message by default. It only appears if a custom message file (-c) changes its severity.

PKG: Package and ZIP container

The EPUB file itself: the ZIP archive, the mimetype file, file names and extensions.

CodeDefault severityMessage
PKG-001WarningValidating the EPUB against version … but detected version ….
PKG-003ErrorUnable to read EPUB file header. This is likely a corrupted EPUB file.
PKG-004Fatal errorCorrupted EPUB ZIP header.
PKG-005ErrorThe mimetype file has an extra field of length …. The use of the extra field feature of the ZIP format is not permitted for the mimetype file.
PKG-006ErrorMimetype file entry is missing or is not the first file in the archive.
PKG-007ErrorThe content of the mimetype file must be the string "application/epub+zip"…
PKG-008Fatal errorUnable to read file "…".
PKG-009ErrorThe file name "…" contains characters that are not allowed in OCF file names: ….
PKG-010WarningThe file name "…" contains spaces, which may create interoperability issues with older reading systems.
PKG-011ErrorThe file name "…" is not allowed to end with ".".
PKG-012UsageThe file name "…" contains non-ASCII characters, which might create interoperability issues with older reading systems.
PKG-013ErrorThe EPUB file includes multiple OPS renditions.
PKG-014WarningThe EPUB contains empty directory "…".
PKG-015Fatal errorUnable to read EPUB contents: …
PKG-016WarningUse only lowercase characters for the EPUB file extension for maximum compatibility.
PKG-017WarningUncommon EPUB file extension.
PKG-018Fatal errorThe EPUB file could not be found.
PKG-020ErrorOPF file "…" could not be found.
PKG-021ErrorCorrupted image file encountered.
PKG-022WarningWrong file extension for image. The image is a "…" file but has the file extension "…".
PKG-023UsageValidating the EPUB against version 2.0, default validation profile will be used.
PKG-024UsageUncommon EPUB file extension.
PKG-025ErrorPublication resource must not be located in the META-INF directory
PKG-026ErrorObfuscated resource must be a Font Core Media Type (was declared as "…" in "…").
PKG-027Fatal errorCould not extract EPUB ZIP content, probably due to file names not encoded in UTF-8.

RSC: Resources and references

Files and links between them: missing files, broken references, URLs, encodings and XML parsing.

CodeDefault severityMessage
RSC-001ErrorFile "…" could not be found.
RSC-002Fatal errorRequired META-INF/container.xml resource could not be found.
RSC-003ErrorNo rootfile tag with media type "application/oebps-package+xml" was found in the container.
RSC-004InfoFile "…" is encrypted, its content will not be checked.
RSC-005ErrorError while parsing file: …
RSC-006ErrorRemote resource reference is not allowed in this context; resource "…" must be located in the EPUB container.
RSC-006bUsageResource "…" is located outside the EPUB Container; please check the resource is retrieved in scripted content.
RSC-007ErrorReferenced resource "…" could not be found in the EPUB.
RSC-007wWarningReferenced resource "…" could not be found in the EPUB.
RSC-008ErrorReferenced resource "…" is not declared in the OPF manifest.
RSC-009WarningA non-SVG image resource should not be defined with a fragment identifier.
RSC-010ErrorReference to non-standard resource type found.
RSC-011ErrorFound a reference to a resource that is not a spine item.
RSC-012ErrorFragment identifier is not defined.
RSC-013UsageFragment identifier is used in a reference to a stylesheet resource.
RSC-014UsageFragment identifier defines an incompatible resource type.
RSC-015UsageA fragment identifier is required for svg use tag references.
RSC-016Fatal errorFatal Error while parsing file: …
RSC-017WarningWarning while parsing file: …
RSC-019WarningEPUBs with Multiple Renditions should contain a META-INF/metadata.xml file.
RSC-020Error"…" is not a valid URL (…)
RSC-021ErrorA Search Key Map Document must point to Content Documents ("…" was not found in the spine).
RSC-022InfoCannot check image details (requires Java version 7 or higher).
RSC-024UsageInformative parsing warning: …
RSC-025UsageInformative parsing error: …
RSC-026ErrorURL "…" leaks outside the container (it is not a valid-relative-ocf-URL-with-fragment string)
RSC-027WarningXML document is encoded in UTF-16. It should be encoded in UTF-8 instead.
RSC-028ErrorXML documents must be encoded in UTF-8, but … was detected.
RSC-029ErrorData URL is not allowed in this context.
RSC-030ErrorFile URLs are not allowed in EPUB, but found "…".
RSC-031WarningRemote resource references should use HTTPS, but found "…".
RSC-032ErrorFallback must be provided for foreign resources, but found none for resource "…" of type "…".
RSC-033ErrorRelative URL strings must not have a query component, but found one in "…".
RSC-034ErrorScripts must have a JavaScript media type.
RSC-035Usage"…" is a legacy media type for JavaScript. Consider using 'text/javascript' instead.
RSC-036Usage…

OPF: Package document (OPF)

The package document: metadata, manifest, spine, properties and fallbacks.

CodeDefault severityMessage
OPF-001ErrorThere was an error when parsing the EPUB version: ….
OPF-002Fatal errorThe OPF file "…" was not found in the EPUB.
OPF-003UsageItem "…" exists in the EPUB, but is not declared in the OPF manifest.
OPF-004WarningInvalid prefix declaration: leading or trailing whitespace is not allowed.
OPF-004aErrorInvalid prefix declaration: found empty prefix.
OPF-004bErrorInvalid prefix "…": must be a valid non-colonized name (aka "NCName").
OPF-004cErrorInvalid prefix declaration: prefix "…" must be immediately followed by a colon character (":").
OPF-004dErrorInvalid prefix declaration: prefix "…" must be separated by its URI with a space.
OPF-004eWarningInvalid prefix declaration: found illegal whitespace between prefix and URI.
OPF-004fWarningInvalid prefix declaration: found illegal whitespace between prefix mappings.
OPF-005ErrorInvalid prefix declaration: URI for prefix "…" doesn’t exist.
OPF-006ErrorInvalid prefix declaration: URI "…" is not a valid URI.
OPF-007WarningRe-declaration of reserved prefix "…".
OPF-007aErrorInvalid prefix mapping: prefix "_" must not be declared.
OPF-007bErrorInvalid prefix mapping: default vocabulary "…" must not be re-declared.
OPF-007cErrorInvalid prefix mapping: a prefix to the Dublin Core /elements/1.1/ namespace must not be declared
OPF-010ErrorError resolving reference: "…".
OPF-011Erroritemref can’t have both page-spread-right and page-spread-left properties.
OPF-012ErrorItem property "…" is not defined for media type "…".
OPF-013WarningResource "…" is declared with MIME type "…" in content, but has MIME type "…" in the package document.
OPF-014ErrorThe property "…" should be declared in the OPF file.
OPF-015ErrorThe property "…" should not be declared in the OPF file.
OPF-016ErrorThe element "rootfile" is missing its required attribute "full-path".
OPF-017ErrorThe attribute "full-path" on element "rootfile" must not be empty.
OPF-018WarningThe "remote-resources" property was declared in the Package Document, but no reference to remote resources has been found.
OPF-018bUsageThe "remote-resources" property was declared in the Package Document, but no reference to remote resources has been found; please check scripted content to make sure the property is legit.
OPF-021WarningUse of non-registered URI scheme type in href: "…".
OPF-025ErrorProperty value list "…" is not allowed, only one value must be specified.
OPF-026ErrorFound malformed property value: "…".
OPF-027ErrorUndefined property: "…".
OPF-028ErrorUndeclared prefix: "…".
OPF-029ErrorThe file "…" does not appear to match the media type …, as specified in the OPF file.
OPF-030ErrorThe unique-identifier "…" was not found.
OPF-031ErrorFile listed in reference element in guide was not declared in OPF manifest: ….
OPF-032ErrorGuide references "…" which is not a valid "OPS Content Document".
OPF-033ErrorThe spine contains no linear resources.
OPF-034ErrorThe spine contains multiple references to the manifest item with id "…".
OPF-035WarningMedia type "text/html" is not appropriate for XHTML/OPS.
OPF-036UsageVideo type "…" might not be supported by reading systems
OPF-037WarningFound deprecated media-type "…".
OPF-038WarningMedia type "…" is not appropriate for an OEBPS 1.2 context; Use "text/x-oeb1-document" instead.
OPF-039WarningMedia-type "…" is not appropriate in an OEBPS 1.2 context. Use "text/x-oeb1-css" instead.
OPF-040ErrorFallback item with id "…" could not be found.
OPF-041ErrorFallback-style item with id "…" could not be found.
OPF-042Error"…" is not a permissible spine media-type.
OPF-043ErrorSpine item with non-standard media-type "…" has no fallback.
OPF-044ErrorSpine item with non-standard media-type "…" has no EPUB content document fallback.
OPF-045ErrorEncountered circular reference in fallback chain.
OPF-047UsageOPF file is using OEBPS 1.2 syntax allowing backwards compatibility.
OPF-048ErrorPackage tag is missing its required unique-identifier attribute and value.
OPF-049ErrorItem id "…" was not found in the manifest.
OPF-050ErrorTOC attribute references resource with non-NCX mime type; "application/x-dtbncx+xml" is expected.
OPF-051SuppressedImage dimensions exceed recommended size.
OPF-052ErrorRole value "…" is not valid.
OPF-053WarningDate value "…" does not follow recommended syntax as per http://www.w3.org/TR/NOTE-datetime:….
OPF-054ErrorDate value "…" is not valid as per http://www.w3.org/TR/NOTE-datetime:….
OPF-055Warning… tag is empty.
OPF-057SuppressedImage file length exceeds recommended size.
OPF-060ErrorDuplicate entry in the ZIP file: "…" (file names must be unique after Unicode canonical normalization and full case folding).
OPF-062UsageFound Adobe page-map attribute on spine element in opf file.
OPF-063WarningReferenced Adobe page-map item "…" was not found in the manifest.
OPF-064InfoOPF declares type "…", validating using profile "…".
OPF-065ErrorInvalid metadata declaration, probably due to a cycle in "refines" metadata.
OPF-066ErrorMissing "dc:source" or "source-of" pagination metadata. The pagination source must be identified using the "dc:source" and "source-of" properties when the content includes page break markers.
OPF-067ErrorThe resource "…" must not be listed both as a "link" element in the package metadata and as a manifest item.
OPF-070WarningCustom collection role "…" is an invalid URL.
OPF-071ErrorIndex collections must only contain resources pointing to XHTML Content Documents.
OPF-072UsageMetadata element "…" is empty.
OPF-073ErrorExternal identifiers must not appear in the document type declaration.
OPF-074ErrorPackage resource "…" is declared in several manifest items.
OPF-075ErrorPreview collections must only point to EPUB Content Documents.
OPF-076ErrorThe URI of preview collections link elements must not include EPUB canonical fragment identifiers.
OPF-077WarningA Data Navigation Document should not be included in the spine.
OPF-078ErrorAn EPUB Dictionary must contain at least one Content Document with dictionary content (epub:type "dictionary").
OPF-079WarningDictionary content was found (epub:type "dictionary"), the Package Document should declare the dc:type "dictionary".
OPF-080WarningA Search Key Map document file name should have the extension ".xml".
OPF-081ErrorResource "…" (referenced from an EPUB Dictionary collection) was not found.
OPF-082ErrorFound an EPUB Dictionary collection containing more than one Search Key Map Document.
OPF-083ErrorFound an EPUB Dictionary collection containing no Search Key Map Document.
OPF-084ErrorFound an EPUB Dictionary collection containing resource "…" which is neither a Search Key Map Document nor an XHTML Content Document.
OPF-085Warning"dc:identifier" value "…" is marked as a UUID, but is an invalid UUID.
OPF-086WarningProperty "…" is deprecated. Consider using … instead.
OPF-086bUsageepub:type value "…" is deprecated. Consider using … instead.
OPF-086cWarningthe "…" reserved prefix is deprecated.
OPF-087Usageepub:type value "…" is not allowed on documents of type "…".
OPF-088UsageUnrecognized epub:type value "…".
OPF-089ErrorThe "alternate" link rel keyword cannot be paired with other keywords.
OPF-090UsageIt is encouraged to use MIME media type "…" instead of "…".
OPF-091ErrorThe item href URL must not have a fragment identifier.
OPF-092ErrorLanguage tag "…" is not well-formed: …
OPF-093ErrorThe "media-type" attribute is required for linked resources located in the EPUB container
OPF-094ErrorThe "media-type" attribute is required for "…" links.
OPF-095ErrorThe "media-type" attribute of "voicing" links must be an audio MIME type, but found "…".
OPF-096ErrorNon-linear content must be reachable, but found no hyperlink to "…".
OPF-096bUsageNo hyperlink was found to non-linear document "…", please check that it can be reached from scripted content.
OPF-097UsageResource "…" is listed in the manifest, but no reference to it was found in content documents.
OPF-098ErrorThe "href" attribute must reference resources, not elements in the package document, but found URL "…".
OPF-099ErrorThe manifest must not list the package document.
OPF-100UsageThe "…" property only applies to pre-paginated content.

HTM: XHTML content documents

The XHTML chapters: DOCTYPE, entities, namespaces and fixed-layout viewports.

CodeDefault severityMessage
HTM-001ErrorAny publication resource that is an XML-based media type must be a valid XML 1.0 document. XML version found: ….
HTM-002WarningThe installed xml parser doesn’t support xml version verification. Xml files must be a valid XML 1.0 document.
HTM-003ErrorExternal entities are not allowed in EPUB v3 documents. External entity declaration found: ….
HTM-004ErrorIrregular DOCTYPE: found "…", expected "…".
HTM-005UsageAn external reference was found.
HTM-007WarningEmpty or whitespace-only value of attribute ssml:ph.
HTM-009ErrorThe DOCTYPE provided is obsolete or irregular and can be removed.
HTM-010UsageNamespace "…" is unusual for the prefix "epub".
HTM-011ErrorEntity is undeclared.
HTM-025WarningNon-registered URI scheme type found in href.
HTM-044UsageNamespace uri "…" was included but not used.
HTM-045UsageEncountered empty href.
HTM-046ErrorFixed layout document has no "viewport" meta element.
HTM-047ErrorViewport metadata "…" has a syntax error
HTM-048ErrorSVG Fixed-Layout Documents must have a "viewBox" attribute (on the outermost "svg" element).
HTM-051WarningFound Microdata semantic enrichments but no RDFa. EDUPUB recommends using RDFa Lite.
HTM-052ErrorThe property "region-based" is only allowed on nav elements in Data Navigation Documents.
HTM_054ErrorCustom attribute namespace ("…") must not include the string "…" in its domain.
HTM_055UsageThe "…" element should not be used (discouraged construct)
HTM_056ErrorViewport metadata has no "…" dimension (both "width" and "height" properties are required)
HTM_057ErrorViewport "…" value must be a positive number or the keyword "device-…"
HTM_058ErrorHTML documents must be encoded in UTF-8, but UTF-16 was detected.
HTM_059ErrorViewport "…" property must not be defined more than once, but found values […].
HTM_060aUsageEPUB reading systems must ignore secondary viewport meta elements in fixed-layout documents; viewport declaration "…" will be ignored.
HTM_060bUsageEPUB reading systems must ignore viewport meta elements in reflowable documents; viewport declaration "…" will be ignored.
HTM_061Error"…" is not a valid custom data attribute (it must have at least one character after the hyphen, be XML-compatible, and not contain ASCII uppercase letters).
HTM_062UsageSVG "xlink:href" attribute is deprecated; an "href" attribute should be used instead.
HTM_063UsageSVG "xlink:href" attribute value ("…") should be equal to the "href" attribute value ("…").

CSS: Stylesheets

CSS files and style elements: forbidden properties, encodings, fonts and syntax.

CodeDefault severityMessage
CSS-001ErrorThe "…" property must not be included in an EPUB Style Sheet.
CSS-002ErrorEmpty or NULL reference found.
CSS-003WarningCSS document is encoded in UTF-16. It should be encoded in UTF-8 instead.
CSS-004ErrorCSS documents must be encoded in UTF-8, detected …;
CSS-005UsageConflicting alternate style tags found: ….
CSS-006UsageCSS selector specifies fixed position.
CSS-007InfoFont-face reference "…" refers to non-standard font type "…".
CSS-008ErrorAn error occurred while parsing the CSS: ….
CSS-015ErrorAlternative style sheets must have a title.
CSS-019WarningCSS font-face declaration has no attributes.
CSS-028UsageUse of Font-face declaration.
CSS-029UsageFound CSS class name "…" but no "…" property was declared in the package document.
CSS-030ErrorThe package document declares media overlays styling class names but no CSS was found in the content document.

NCX: NCX (EPUB 2 table of contents)

The legacy NCX table of contents.

CodeDefault severityMessage
NCX-001ErrorNCX identifier ("…") does not match OPF identifier ("…").
NCX-004UsageNCX identifier ("dtb:uid" metadata) should not contain leading or trailing whitespace.
NCX-006UsageEmpty "text" label in the NCX document

MED: Images, audio and media overlays

Image formats and headers, and synchronised audio (media overlays).

CodeDefault severityMessage
MED-003ErrorPicture "img" elements must reference core media type resources, but found resource "…" of type "…".
MED-004ErrorImage file header may be corrupted.
MED-005ErrorMedia Overlay audio reference … to non-standard audio type … found.
MED-008ErrorThe time specified in the clipBegin attribute must not be after clipEnd.
MED-009ErrorThe time specified in the clipBegin attribute must not be the same as clipEnd.
MED_007ErrorPicture "source" elements must define a "type" attribute when they reference foreign resources; found resource "…" of type "…".
MED_010ErrorEPUB Content Documents referenced from a Media Overlay must specify the "media-overlay" attribute.
MED_011ErrorEPUB Content Document referenced from multiple Media Overlay Documents.
MED_012ErrorThe "media-overlay" attribute does not match the ID of the Media Overlay that refers to this document.
MED_013ErrorMedia Overlay Document referenced from the "media-overlay" attribute does not contain a reference to this Content Document.
MED_014ErrorMedia overlay audio file URLs must not have a fragment, but found '#…'.
MED_015UsageMedia overlay text references must be in reading order. Text target "…" is before the previous link target in … order.
MED_016WarningMedia Overlays total duration should be the sum of the durations of all Media Overlays documents.
MED_017WarningURL fragment should indicate an element ID, but found '#…'.
MED_018WarningURL fragment should be an SVG fragment identifier, but found '#…'.

ACC: Accessibility

Accessibility checks on content documents (most are suppressed by default).

CodeDefault severityMessage
ACC-004SuppressedHtml "a" element must have text.
ACC-005SuppressedTable heading cells should be identified by "th" elements for accessibility.
ACC-006SuppressedTables should include a "thead" element for accessibility.
ACC-007SuppressedContent Documents do not use "epub:type" attributes for semantic inflection.
ACC-009UsageMathML should either have an "alttext" attribute or "annotation-xml" child element.
ACC-011UsageSVG hyperlink has no accessible name
ACC-012SuppressedTable elements should include a caption element.

OBS: Obsolete features

Features that still work but are outdated.

CodeDefault severityMessage
OBS-001UsageUsage of … is outdated.

INF: Information

Notes about EPUBCheck itself.

CodeDefault severityMessage
INF-001InfoRule … is under review and its severity may change in a future release. See the discussion at …

CHK: EPUBCheck configuration

Problems with EPUBCheck's own custom message file, not with the EPUB.

CodeDefault severityMessage
CHK-001ErrorThe custom message overrides file was not found.
CHK-002ErrorUnrecognized custom message id … encountered in message overrides file "…".
CHK-003ErrorUnrecognized custom message severity "…" encountered in message overrides file "…".
CHK-004ErrorThe custom message contains too many parameters in message overrides file "…".
CHK-005ErrorThe custom suggestion contains too many parameters in message overrides file "…".
CHK-006ErrorUnable to parse the custom format parameter in message overrides file "…".
CHK-007ErrorError encountered while processing custom message file "…": "…".
CHK-008ErrorError encountered while processing an item "…"; skip other checks for the item.

Retired message IDs

These IDs still exist in EPUBCheck's list of messages but have no text and are suppressed by default, so EPUBCheck never reports them unless a custom message file turns them on.

ACC-001, ACC-002, ACC-003, ACC-008, ACC-010, ACC-013, ACC-014, ACC-015, ACC-016, ACC-017, CSS-009, CSS-010, CSS-011, CSS-012, CSS-013, CSS-016, CSS-017, CSS-020, CSS-021, CSS-022, CSS-023, CSS-024, CSS-025, HTM-006, HTM-008, HTM-012, HTM-013, HTM-014, HTM-014a, HTM-015, HTM-016, HTM-017, HTM-018, HTM-019, HTM-020, HTM-021, HTM-022, HTM-023, HTM-024, HTM-027, HTM-028, HTM-029, HTM-033, HTM-036, HTM-038, HTM-049, HTM-050, HTM_053, MED-001, MED-002, MED_006, NAV-002, NCX-002, NCX-003, NCX-005, OPF-008, OPF-009, OPF-019, OPF-020, OPF-046, OPF-056, OPF-058, OPF-059, OPF-068, OPF-069, RSC-018, RSC-023, SCP-001, SCP-002, SCP-003, SCP-004, SCP-005, SCP-006, SCP-007, SCP-008, SCP-009, SCP-010

Source and licence

Message texts and default severities come from EPUBCheck 5.4.0, the W3C's EPUB validator, released under the BSD-3-Clause licence. Copyright © 2007 Adobe Systems Incorporated. Copyright © 2008 IDPF. Copyright © 2017 W3C (MIT, ERCIM, Keio, Beihang). github.com/w3c/epubcheck

Causes and fixes are written by EpubCC. Codes without an explanation show only the official message and are not offered to search engines until we write one. EpubCC is not affiliated with the W3C.