[Bug] H5P doesn't treat resource link ID as opaque as required by spec
Hi! I'm tried getting H5P working with Open edX via LTI 1.3.
But the integration failed.
Open edX logs suggested that H5P was submitting a malformed resource link id when calling the platform’s AGS endpoints. The value used by H5P had spaces where the actual resource id submitted during tool launch contained + characters.
ID in resource_link claim in tool launch: "https://purl.imsglobal.org/spec/lti/claim/resource_link": { "id": "block-v1:OpenedX+M101+2026+type@lti_consumer+block@1811877d79304c11b0ca1c6335de07a1"
Resource link ID used by H5P during grade submission: block-v1:OpenedX M101 2026 type@lti_consumer block@1811877d79304c11b0ca1c6335de07a1.
This caused parsing to fail in Open edX:
opaque_keys.InvalidKeyError: <class 'opaque_keys.edx.locator.CourseLocator'>: OpenedX M101 2026 type@lti_consumer block@1811877d79304c11b0ca1c6335de07a1
the LTI 1.3 spec requires resource link ID to be treated as "Opaque".
id (REQUIRED). Opaque identifier for a placement of an LTI resource link within a context that MUST be a stable and locally unique to the deployment_id.
This means that H5P should have used the exact same ID during submission, that it received during tool launch.