Set of SCORM problems

Overview / TL;TR

In a sample of ~2,000 support requests, about 80 (4%) were related to this issue.

Course authors and instructors face recurring issues when using SCORM content in Open edX, especially in scenarios involving course copies, platform-wide settings, and completion tracking. These limitations create confusion, misaligned expectations, and unnecessary manual work.

Problem

There are three main issues affecting SCORM usage in Open edX today:

  1. Broken SCORM blocks after course copies

    When a course containing SCORM units is copied, the SCORM blocks in the new course instance often break. They display error messages instead of content, forcing authors to manually delete and recreate each SCORM block in the copy. This makes course reuse inefficient and error-prone.

  2. Inconsistent application of global course settings

    The course-wide setting for Maximum Attempts does not apply to SCORM blocks (or similar xblocks such as LTI). Instructors assume this setting will limit attempts for all activities in the course, but it only affects native Open edX problem types. This inconsistency creates confusion, unmet expectations, and potential misalignment with course assessment policies.

  3. Unreliable tracking of learner completion

    SCORM completion status in Open edX depends entirely on how the SCORM package is authored. If the SCORM file does not explicitly send a “completed” success status, Open edX will not display the activity as finished, even if learners complete the entire SCORM. This creates inaccurate progress indicators for learners and additional support work for instructors.

Together, these issues reduce trust in SCORM functionality within Open edX and increase the workload for instructors, authors, and course support staff.

Use Cases

  • As a course author, I need to copy courses with SCORM content without blocks breaking, in order to efficiently reuse existing course designs.

  • As an instructor, I need global course settings such as “Maximum Attempts” to apply consistently to SCORM and other external xblocks, in order to ensure course-wide policies are enforced.

  • As an instructional designer/SCORM creator, I need SCORM completion to be reliably tracked in Open edX, in order to accurately measure learner progress without requiring advanced technical configuration.

  • As a learner, I need SCORM activities to correctly record completion, in order to see an accurate reflection of my progress in the course.

Additional Notes / Future Direction

  • There is an ongoing proposal to include the SCORM XBlock as part of the official list of course components in Open edX.

  • Once SCORM is officially part of the installation set, some issues, such as the handling of Maximum Attempts, could be addressed by moving that configuration options into the settings of block itself.

    • A similar improvement path could be addressed for LTI XBlocks too.
2 Likes

@Santiago I think we should have corresponding issues in the repo.

I think that the first issue is probably related to this issue that I opened:

1 Like

For point 2: Maximum Attempts does not apply to SCORM blocks. This could be addressed through the proposal to relocate content-block settings from Advanced Settings back to individual XBlocks. In this case, we could add a Maximum Attempts field directly to SCORM blocks. Even if it is not possible to pass this value to the SCORM package itself, the LMS could still enforce the limit by controlling access to the iframe where the SCORM content is rendered.

For point 1: Ed already created a github issue in the SCORM repo: Export/Import and the SCORM XBlock · Issue #108 · overhangio/openedx-scorm-xblock · GitHub

An for point 3: I created the following github issue explaining the problem and proposing three possible solution that could be implemented separately or in group: Improve Reliability of SCORM Completion Tracking in Open edX · Issue #110 · overhangio/openedx-scorm-xblock · GitHub

1 Like