There are a couple of reasons why uploading an H5P content file or installing or upgrading an H5P content type may fail. The two most frequent ones are:
- The content that you want to upload requires a library that is not yet installed on your platform. This one was covered in a separate post already.
- The content that you want to upload or the library that you want to install or upgrade requires a newer version of H5P’s core than the one that is available on your platform.
The second case occurs less frequent than the first one. It will call your attention by showing you a message like this:
What should I do?
The message essentially tells you what to do: Install a later version of the H5P plugin that (in this case) ships with version 1.27 of H5P core. That call to action makes perfectly sense if you are using H5P with one of the plugins for WordPress, Drupal or Moodle. It is not, however, if you are using a different H5P integration, e.g. Lumi or moodle’s custom H5P integration into moodle core, Edlib, other plugins for other platforms, or …
The respective maintainers of those other H5P integrations will need to ship the new version of H5P core, and they may also need to change some code of their H5P integration to make that work. Once that is done, the process will also be simple, but differ depending on what you are using, e.g.
- update the H5P plugin for ILIAS,
- update Lumi, or
- go to moodle’s site administration, there to H5P setting and change what they call H5P framework handler to a newer version
But what happened?
If you study the post about the H5P architecture, you will note that H5P has different layers: At the bottom there’s a host platform with some form of H5P integration. That’s WordPress with the H5P plugin for instance, or moodle with its custom H5P integration in moodle’s core. At the top, there are H5P (content) libraries. Those most often are the content types that you are using. And in between, there’s the H5P core.
The H5P core offers a common set of functions that H5P (content) libraries can use for different purposes. That set of function will vary over time. Some functions may get removed, others will get added, and sometimes the way the functions need to be called changes. The same is true in the other direction to the H5P integration. It may need to be changed to support some updated feature in H5P core.
So, when you want to upload H5P content or when you install an H5P library, then these know what version of H5P core can satisfy their needs that they have for running. If those requirements cannot be met because your platform is running an older version, they tell you. That’s the whole secret.
When writing these lines, the version of the CKEditor that is used in H5P core was updated to version 5 requiring some changes. Shortly, the addition of “theming” features to H5P core may also require to increase the version number of H5P core. If that is the case, then running content types that use the “theming” features will require that newer version of H5P core – and H5P integrations will need to be adjusted accordingly.