EPUB FixerKDP upload error scanner

EPUB error guide

OPF_030 unique-identifier was not found

How OPF_030 happens when the package unique-identifier points to a missing metadata id, and when that OPF metadata link can be repaired safely.

1. Example report output

What the OPF_030 report should show.

A useful OPF_030 report should show the broken package pointer and the identifier entries that could or could not satisfy it.

EPUBCheck message

ERROR(OPF-030): OEBPS/content.opf(-1,-1): The unique-identifier "uid" was not found.

KDP / Previewer wording

The package metadata is invalid or the publication identifier cannot be resolved.

EPUB Fixer report

Package field unique-identifier="uid" has no matching dc:identifier id, with one candidate book-id.

Do this next

Align the package value only if book-id is the single intended publication identifier.

Do not do this

Do not create a new ISBN, UUID, or retailer id just to make OPF_030 disappear.

If the OPF has several ISBN, UUID, retailer, or draft identifiers, choose manually instead of letting an automatic repair pick one.

2. Next step

Do not edit title or author to fix OPF_030.

This error is about an internal OPF id relationship. The visible title, author, and KDP listing fields can be correct while the package identifier still fails.

Upload scan

Use this when you have not inspected content.opf.

The report can list the package unique-identifier value and every dc:identifier entry in the metadata section.

Manual check

Use this when multiple identifiers exist.

Confirm whether the published book should use the ISBN, UUID, retailer id, platform id, or another existing identifier.

Formatter handoff

Use this when the source project owns metadata.

Ask the formatter to align the package unique-identifier with the intended metadata identifier in the export source.

3. Concrete path example

The broken OPF_030 link is inside content.opf.

The package value must match a real dc:identifier id exactly.

Message: ERROR(OPF-030): The unique-identifier "uid" was not found
Package: <package unique-identifier="uid">
Missing: <dc:identifier id="uid">
Found:   <dc:identifier id="book-id">urn:uuid:...</dc:identifier>
Fix:     point to book-id only if it is the intended publication id

Do not invent an ISBN or choose between several identifiers just to clear the validator message.

Quick decision

Fix the link to the identifier, not the visible book metadata.

OPF_030 is a relationship error inside content.opf. The title, author, and KDP form fields can look fine while the package identifier link is still broken.

Scan first

You are not sure which identifier the package names.

Scan the OPF to see the package unique-identifier value and every dc:identifier entry before editing metadata.

Safe fix

There is one clear UUID or ISBN entry.

Align the package value and the dc:identifier id only when that metadata entry is clearly the publication identifier.

Manual decision

Several identifiers could be valid.

ISBN, UUID, retailer id, draft id, and platform id are publishing choices. The tool should not pick between them automatically.

Start here

Check the package tag and the metadata id together.

OPF_030 is not about the title or author text shown to readers. It means the OPF package says one metadata id identifies the book, but that id cannot be found where validators expect it.

What it means

The OPF says 'this metadata entry identifies the book', but the entry it names is missing, renamed, capitalized differently, or has no id attribute.

Can it be fixed automatically?

This can often be fixed by aligning the package unique-identifier with one existing dc:identifier, or by adding the missing id attribute to the clear publication identifier already in the metadata.

What to check next

Open content.opf or package.opf and find the unique-identifier value on the package tag.

What not to assume

Do not choose between conflicting ISBN, UUID, retailer, draft, or platform identifiers automatically. Also do not invent an ISBN or assume KDP's listing metadata replaces the identifier inside the EPUB file.

Common situations

Read OPF_030 as one of these metadata states.

The fix depends on whether the identifier is missing, misspelled, or ambiguous.

The package names an id that does not exist.

Example: unique-identifier="uid" appears on the package tag, but no dc:identifier has id="uid".

If one dc:identifier clearly identifies the book, align the package value or add the missing id to that entry.

The id exists with different capitalization.

BookId and bookid can look equivalent to a person but fail an exact OPF check.

Use one exact id value in both places after confirming it points to the intended identifier.

The identifier text exists but has no id attribute.

The OPF may contain a UUID or ISBN value, but the package cannot reference it because the id is absent.

Add an id only when that identifier is the single clear publication identifier.

The OPF contains several plausible identifiers.

A converted file may carry an ISBN, an old UUID, a retailer id, and a draft id.

Choose manually based on the publishing workflow; do not let an automatic repair decide.

The identifier is present but belongs to the wrong metadata entry.

A file can contain a UUID, an ISBN, and a source-system id, but only one should identify this publication package.

Point unique-identifier to the publication id, not to a convenience id used by the export tool.

The OPF_030 metadata error text

OPF_030: The unique-identifier was not found.

Where OPF_030 shows up in the publishing check

EPUBCheck, Kindle Previewer, or KDP reads content.opf and finds a package unique-identifier value that does not match any dc:identifier id in the metadata section.

What it means

OPF_030 comes from a broken link inside content.opf.

The OPF says 'this metadata entry identifies the book', but the entry it names is missing, renamed, capitalized differently, or has no id attribute.

The package tag may reference unique-identifier="BookId" while metadata contains id="bookid", id="uid", or a dc:identifier with no id at all. This often happens after metadata cleanup, conversion, or manual OPF edits.

Before you edit

Match unique-identifier to a real dc:identifier id.

Do not choose a publishing identifier just to satisfy a validator. First see whether the OPF already contains one clear UUID or ISBN entry that the package was meant to reference.

  1. 1Open content.opf or package.opf and find the unique-identifier value on the package tag.
  2. 2Search the metadata section for a dc:identifier whose id exactly matches that value, including capitalization.
  3. 3If a dc:identifier exists with a different id, confirm whether it is the single intended book identifier before aligning the package value.
  4. 4If the identifier text exists but has no id attribute, add an id only when that entry is clearly the publication identifier.
  5. 5If there are several ISBN, UUID, retailer, platform, or draft identifiers, do not choose automatically; confirm which one should identify the published book.
  6. 6Validate again after changing the OPF because fixing OPF_030 can expose a separate package or metadata warning.

Why KDP checks it

Why KDP and EPUBCheck need this identifier.

EPUB 3.3 package rules

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

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?

When the OPF_030 metadata repair is safe.

When automatic repair is safe

This can often be fixed by aligning the package unique-identifier with one existing dc:identifier, or by adding the missing id attribute to the clear publication identifier already in the metadata.

When you need manual review

Do not choose between conflicting ISBN, UUID, retailer, draft, or platform identifiers automatically. Also do not invent an ISBN or assume KDP's listing metadata replaces the identifier inside the EPUB file.

Before / after example

Before: package unique-identifier="uid" but no dc:identifier id="uid" exists. After: the package and dc:identifier point to the same metadata entry. Before: metadata contains both an ISBN and a draft UUID with no clear intent; that should stop for manual choice.

Ready to retry?

Scan the OPF before adding a new identifier.

The scan can show whether the package points to a misspelled id, whether the dc:identifier is missing an id attribute, or whether several identifiers require a manual publishing decision.

Upload EPUB to scan

FAQ

Questions authors ask about OPF_030.

What does OPF_030 unique-identifier was not found mean?

It means the OPF package points to a unique identifier ID that does not exist in the metadata section. Validators cannot tell which dc:identifier should be treated as the book identifier.

Can this OPF_030 error be repaired automatically?

Often, yes, when there is one clear dc:identifier to align with the package unique-identifier. If the file contains conflicting ISBN, UUID, or retailer identifiers, the report should stop for manual review.

Will OPF_030 stop KDP upload even if the book opens locally?

Yes. A reading app may display the chapters, but KDP, Kindle Previewer, and EPUBCheck still need the OPF package metadata to identify the book consistently.

Where should I look for the broken identifier?

Look in content.opf or package.opf. The package tag names the unique-identifier, and the metadata section should contain a dc:identifier with the same id.

Should I create a new identifier?

Only when the existing metadata is clear and no conflicting identifier exists. If the file already contains multiple ISBN, UUID, or retailer identifiers, choose manually instead of creating another one.

Does KDP metadata fix OPF_030?

No. KDP's form fields do not repair the EPUB package file. The unique-identifier link has to be correct inside content.opf before the uploaded EPUB validates cleanly.

Is OPF_030 the same as a missing ISBN?

No. OPF_030 is about the OPF package pointing to a metadata id that cannot be found. The identifier can be a UUID or another valid publication identifier depending on the book workflow.

Related EPUB error guides