Text and data

How to Fix H5P Missing Required Library and Upload Errors

When importing interactive e-learning modules into Moodle, WordPress, or Canvas LMS, generic error notices such as "Missing required library" or "Invalid H5P package" often stall course deployments. Use H5P Package & Dependency Checker to inspect .h5p archives locally, review dependency hierarchies, detect missing assets, and export audit reports before upload.

Visual flow diagram showing H5P package ZIP inspection, manifest verification, dependency hierarchy resolution, and LMS upload validation.
H5P preflight workflow: extract package manifests, inspect library dependencies, verify embedded media files, and resolve Moodle and WordPress upload blockers.

What to run

Open H5P Package & Dependency Checker and drop your .h5p interactive package file into the upload zone.

Decompression and manifest analysis run completely in your browser using client-side JavaScript. Proprietary course materials, assessment question keys, and student media files are never transferred to remote servers.

The validator parses the root h5p.json manifest, validates the content/content.json task structure, and constructs a recursive dependency tree mapping all bundled library directories against declared library versions.

// Example h5p.json manifest structure
{
  "title": "Interactive Biology Quiz",
  "mainLibrary": "H5P.QuestionSet",
  "language": "en",
  "preloadedDependencies": [
    { "machineName": "H5P.QuestionSet", "majorVersion": 1, "minorVersion": 20 },
    { "machineName": "H5P.MultiChoice", "majorVersion": 1, "minorVersion": 16 },
    { "machineName": "H5P.JoubelUI", "majorVersion": 1, "minorVersion": 3 }
  ],
  "embedTypes": ["div", "iframe"]
}

How to read the result

Inspect the status banner and stat cards for Content Title, Bundled Libraries, Missing Dependencies, Missing Media Assets, and Upload Blockers.

Diagnose the "Missing required library" error. An .h5p package is a ZIP archive containing library folders named in the format {machineName}-{majorVersion}.{minorVersion}. When authoring content on newer platforms or H5P.com, modern library versions are often referenced. If those libraries are not bundled in the .h5p file and your target LMS does not have them pre-installed, LMS upload halts immediately.

Review the Dependency Tree tab. Any library node highlighted with a red MISSING badge indicates a library required by the parent content type that is absent from the package archive.

Check the Diagnostics & Errors tab for missing media notices. If an author referenced video or audio files in content/content.json but failed to bundle them into the content/ directory, the validator flags the exact missing filenames so you can re-export your package cleanly.

Common H5P LMS Import Errors, Root Causes & Fixes
LMS Error MessageRoot Cause in PackageActionable Fix
Missing required library: [LibraryName]Library referenced in h5p.json or a sub-library is not bundled in package and not installed on LMSBundle the library folder in the .h5p ZIP or have LMS administrator install the library via H5P Hub
Invalid H5P package: missing h5p.jsonThe root directory of the archive is missing h5p.json or files were zipped with an extra parent folder wrapperEnsure h5p.json and content/ are in the root of the ZIP file, not inside a nested subfolder
Invalid content parameters: content.json malformedSyntax error or truncated JSON inside content/content.jsonOpen content.json in JSON Formatter to repair brackets and quotation marks
Missing media file: [filename]Audio, video, or image file referenced in content.json is absent from content/ folderAdd the missing media file into the package content/ folder before distributing
Core API version incompatibleLibrary requires a newer H5P Core API version than supported by your LMS pluginUpgrade the Moodle or WordPress H5P plugin to the latest release

What to open next

If you need to validate or format raw JSON manifests extracted from your package, inspect them with JSON Formatter.

If your LMS course package includes course documentation or syllabus tables, convert document tables into spreadsheets with Word Tables to Excel.

If you encounter CSV export issues when transferring quiz grades or user lists, run your files through CSV Fixer.

Inside Moodle: Navigate to Content bank > Upload, select your validated .h5p file, and confirm import.

Stop when

Stop when Upload Blockers reaches zero and all required libraries display a BUNDLED status in the dependency tree.

Remember that while client-side validation ensures package integrity and self-contained dependencies, destination LMS platforms may have additional site-wide file size caps or restricted library permissions.

References

Use the linked specifications and product documentation to check behavior in your own environment.

Continue troubleshooting

Related tools

Frequently asked questions

Why does Moodle reject my H5P upload with "Missing required library"?

This occurs when an H5P module references a library that is not bundled inside the .h5p archive and has not yet been installed by your Moodle administrator in the site library repository.

How do I avoid the "extra parent folder" error when creating an H5P file manually?

When compressing an H5P package, select the files (h5p.json, content/, and library folders) directly and create the ZIP archive, rather than compressing the enclosing folder.

Can this tool be used with H5P packages created in WordPress or Canvas?

Yes. The .h5p package format is standardized across Moodle, WordPress, Canvas, Brightspace, and standalone H5P tools. All packages follow the same manifest and directory specification.

Need help with a tool or found a bug?

Report an issue directly to engineering. No accounts required — all client data remains private on your device.

Report an Issue →