thoughtasylumTOOLBOX Preview Guides Use offline Automate Feedback

Guides › E-learning

Why won't my course work in the LMS?

A learning management system (LMS) says “invalid package”, or the course launches but never completes, loses the learner’s place, or reports the wrong score. The LMS rarely says why. These tools open the package, run it in a test LMS in your browser and decode what it saves, so you can find the cause before you upload again. Nothing is uploaded.

1. Check the package

Drop the ZIP on the Package Inspector. It says whether it’s SCORM 1.2, SCORM 2004, cmi5 or AICC, and lists errors and warnings. The usual reasons an LMS refuses a package:

  • The course was zipped inside a folder, so imsmanifest.xml isn’t at the top of the ZIP.
  • A file the manifest lists, or a launch file, isn’t in the ZIP.
  • A page links to a file that isn’t there.

Got a version that worked? Compare with another version says what changed in the course in words (a SCO added or removed, a different launch file or mastery score, a change from SCORM 1.2 to 2004), lists errors in the other version, then the files added, removed and changed, and the manifest’s differences line by line.

2. Play it in a test LMS

Drop the same ZIP on the Package Player and press Launch. It answers the course’s calls as an LMS would and logs every one. Look for:

  • A failed call, shaded as an error with its message, such as a score of 120 where SCORM 1.2 wants 0 to 100.
  • No completed or passed status ever being set, which is why the LMS shows it as incomplete.
  • An exit that isn’t suspend, so the next launch starts a new attempt instead of resuming.

Close it and launch again to test resuming. Only open packages you trust: the content runs on this site’s address.

3. See what it saved

Copy cmi.suspend_data from the Player’s stored values (or from the LMS) into the Suspend Data Decoder. It undoes URL-encoding, LZ-String compression and Base64, shows the JSON inside, and gives the size as a share of each SCORM version’s limit. A value that’s cut short at the limit won’t decode at all, which is the classic cause of a course that forgets where the learner was.

Session times are in SCORM 1.2’s HHHH:MM:SS.SS or SCORM 2004’s PT1H2M3S form; Durations in the Timestamp Converter turns either into words.

4. For xAPI and cmi5 courses

Paste the statements a course sends (the Player lists them for cmi5) into the xAPI Statement Validator. It finds what a Learning Record Store rejects: a missing actor or verb, a verb id that isn’t an IRI, a scaled score outside −1 to 1, a bad duration. Tick cmi5 rules to check the registration, session id and order of statements too.

5. Captions and simple content

If a player rejects the captions, or they drift out of step, check the .srt or .vtt file in the Caption Checker. It finds overlapping or backwards times and text too fast to read, and can shift or stretch every time and convert between the two formats.

If the “course” is only a PDF or a video that needs a completion record, the SCORM Wrapper packs it into a SCORM 1.2 ZIP that any LMS takes, and the Inspector and Player can check that too.

All 62 guides, grouped by what they help with.

Saved you a few minutes? Say thanks with a coffee.

Something wrong or unclear in this guide? Report it or suggest a guide.

↑ ↓ move↵ openesc close