Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

Table of Contents

Troubleshooting Steps

This is the common order to troubleshoot broken Scorm courses:

  1. Check the Scorm version (see below)
  2. Check the SCOId and Resource Id for invalid characters (see No Error (infinite loading) or "No Links Specified" in the LMS, fixed in 4.3.0)
  3. Check the SCOManifest.js and ensure a SCOId is mapped (see Manifest Mapping below)
  4. Check the browser's Console for errors and Network tab for external calls and or errors.
    1. Note: Sometimes, Scorm course will cancel a web request and then re-request it.  This is very common, and hasn't been known to cause any issues (and can be reasonably ignored as the problem):
      Image Added
  5. Check the Scorm calls by debugging the Scorm course via the browser's Sources tab and setting break points in API.LMSGetValue and API.LMSSetValue (see Debugging API Calls below)

Potential Pitfalls

Compression

...

In the <metadata> tag there will be a <schemaversion> which should be 1.2.  If the version is incorrect, the client/vendor must re-package the course using the correct version:

Debugging API Calls

There have been instances where although a Scorm package version is seen as correct (with <schemaversion> 1.2) the package still uses other version standards.  They must be checked against https://scorm.com/scorm-explained/technical-scorm/run-time/run-time-reference/#section-2

Check the Scorm calls by debugging the Scorm course via the browser's Sources tab and setting break points in API.LMSGetValue and API.LMSSetValue:

Image Added

The cmiElementName must match one of the switch cases.  For example, the Scorm 1.2 standard is cmi.core.lesson_status but the cmiElementName shows as cmi.success_status (the Scorm 2004 standard).  This means the package was generated/compiled incorrectly, and must be bounced back to the client/vendor.

Additionally, ensure the API is reachable (as seen in the next step Manifest Mapping).  This can be quickly checked as the console will output an API Not found error. With the Scope set to top in the Console, type API to view the object and check for values:
Image Added

If the mapping is null, check the SCOManifest.js (see next section).

Old Manifest Mapping

When the SCORM course is imported into the LMS, a number of files get generated including a manifest (SCOManifest.js).  This file is used to map the SCO Id, and other information desired (Currently supports: mastery score, time limit, and launch data.  See: SCORM Data Model).

...

Code Block
languagejs
firstline1
linenumberstrue
var myAPI = getAPIHandle();
if (!myAPI) { console.log("Mapping: Could not find API"); }
else{ console.log("APIFOUND");
myAPI.SCOIDMapping = {};
myAPI.SCOManifestMapping = {};
myAPI.SCOIdFromManifest = '__6g7FD8imvYA_course_id_RES';
myAPI.SCODataFromManifest = {"id":"__6g7FD8imvYA_course_id_RES","timelimitaction":"ContinueNoMessage"};
}

Testing the Package Externally

Sometimes, normal troubleshooting in the LMS may not yield any explicit errors, and the package must be verified outside of the LMS. This can be tested on the Scorm Cloud.

Create a SCORM Cloud account

...

Course Is Not Viewable By Students

There is currently an issue on 4.2.x with the importScorm command, caused by 

Jira Legacy
serverSystem JIRA
serverId23f523ea-1678-3ca2-a1e8-2de53fd3b74a
keyCOREDEV-4936
.  To fix this: 

  • After running importScorm, navigate to the course itself (final link).
  • Before changing the template to the SCORM course template as you normally do, you need to Edit > Links > Publish the link.
    Image Modified
  • Then you can change the template to the proper SCORM template. (Edit > Page > Change Template)

Currently the SCORM templates (at least SCORM.Course.Simple.cshtml) don't seem to be aware of this and so no error is shown anywhere in the console or network trace.