Skip to content

How to read a SCORM Cloud debug log (what each line means)

Updated 16 October 2026

Quick answer

Each runtime line of a SCORM Cloud debug log is one call your course made, with SCORM Cloud's answer. Read it for four things:

  • Did the course connect? Look for Initialize near the top.
  • What status did it last send? Find the last status write (SetValue). The calls in order.
  • Did it finish? The log should end with Terminate.
  • Did SCORM Cloud refuse anything? Look for 'false' and an error number. What they mean.

Alder's test player shows the same calls in plain English, free, before you upload anything.

How to open it

Rustici's article Accessing Debug Logs in SCORM Cloud gives three ways. From the course sandbox, pick the launch you want to look at and its log opens. Or turn on the navigation bar in the course's settings, launch the course and click “View Debug”. Or use your browser's developer console on the player page. The log for one launch also has a link you can copy and send to someone.

The parts of one line

Lines run in the order the course made the calls. The course names a field in the SCORM data model (the list of things an LMS stores, such as cmi.completion_status), gives a value, and the line ends with what SCORM Cloud returned.

The parts of one debug log lineAn example line: at 10:02:14.310 the course called SetValue on cmi.completion_status with the value completed, and the LMS returned true. The time says when the call happened. SetValue says the course wrote something. cmi.completion_status is the field. completed is the value sent. Returned true means the LMS accepted it; false means it refused, and the error code says why.[10:02:14.310] SetValue('cmi.completion_status','completed') returned 'true'in 0 seconds[10:02:14.310]When the call happenedSetValueWhat the course did: here, wrote a valuecmi.completion_statusWhich field: finished or not'completed'The value the course sentreturned 'true'Accepted. 'false' means refused
An example line, written for this page in the shape SCORM Cloud uses.

The calls that matter, in order

  • Initialize (LMSInitialize in SCORM 1.2) starts the session. If there is no Initialize at all, the course never connected and SCORM Cloud records nothing: in our test, a launch without it left the completion “unknown” and the time at zero. See “Unable to acquire LMS API”.
  • The first reads (GetValue) ask whether this is a returning learner (cmi.core.entry or cmi.entry: “resume” for a returning learner, otherwise “ab-initio” or empty), for the bookmark (lesson_location or location) and for the saved progress (cmi.suspend_data).
  • The status writes (SetValue) are the ones that decide the record. SCORM 1.2 uses one field, cmi.core.lesson_status (passed, failed, completed or incomplete). SCORM 2004 splits it in two: cmi.completion_status (finished or not) and cmi.success_status (passed or failed). The score goes in score.raw, and in SCORM 2004 also cmi.score.scaled, where 0.8 means 80%. Find the last status write: that is what the course last told the LMS.
  • Saved progress and the exit value. cmi.suspend_data is where the course saves the learner's place, and the exit value (cmi.core.exit or cmi.exit) set to “suspend” asks the LMS to keep it for next time.
  • Commit asks the LMS to save now. Rustici's Deciphering Debug Logs says SCORM Cloud doesn't wait for it and saves on a timer instead (every 10 seconds by default). So a course that never commits looks fine there. In other LMSs, if the browser closes before such a course finishes, nothing from that session may be saved.
  • Terminate (LMSFinish in SCORM 1.2) ends the session. If the log stops without it, the course never said it was finished, and many LMSs keep only what was saved before that point.

When SCORM Cloud refuses a call

A refused write returns 'false'. The course can then call GetLastError, which returns a number that says why (0 means no error). Whatever that write tried to record is missing from the LMS. These are the ones we saw when we tested real courses on SCORM Cloud in September 2026:

  • 405 on cmi.suspend_data in SCORM 1.2. The saved progress was over 4,096 characters. SCORM Cloud refused it rather than shortening it, and kept the last save that fit, so the learner would lose their place. See the suspend_data limit.
  • 405 on question answers from Storyline. Storyline first sent each answer as long text; SCORM Cloud refused it, and Storyline then sent short letter codes, which were accepted. The answers were still recorded, as letter codes.
  • 406 on a SCORM 2004 identifier with spaces, such as a question's objective id. That one write is lost.
  • 403 on a SCORM 2004 GetValue of something not stored yet, such as saved progress on a first launch. That is the normal answer, and nothing is lost.

See the same calls in plain English (free)

Alder doesn't read SCORM Cloud's log. It keeps its own: when you run the course in Alder's test player, Alder plays the LMS and records every call, with a line that says what the call meant.

  1. Run the same path in Alder

    Open Alder, drop the zip, click “Launch the course” and take the same path the learner took in SCORM Cloud.

  2. Open the technical log

    Each row has a rating (Normal, Worth a look or Problem), the plain-English line, and under it the raw call with what it returned.

    Alder's call log: a score of 40, below the passing score of 80; then the course saved its progress data, 5,000 characters, 122% of the 4,096 limit, with the note that SCORM Cloud rejects a write this long with error 405; then LMSFinish, the course ended its session.
    Alder's SCORM 1.2 probe package. Alder's test LMS accepted the 5,000-character save, and its line warns that SCORM Cloud would refuse it.
  3. Look at the error rows

    A row with an error code says what the code means. Harmless ones, such as a SCORM 2004 read of a value that was never saved, stay marked Normal.

    Alder's call log for a SCORM 2004 course: GetValue of cmi.completion_threshold and of cmi.suspend_data each returned error 403, Data Model Element Value Not Initialized, both rated Normal; the course looked for saved progress and found none yet.
    Error 403 on a first launch, explained and rated Normal.
  4. Press “I’m done” for the findings

    Problems in the calls become findings: for example a course that never connected (RUNTIME-001), never finished (RUNTIME-003), or had data refused (RUNTIME-011). “Download log for your LMS admin” saves the whole log.

Alder's test LMS is more lenient than SCORM Cloud in places: in our tests it accepted Storyline's long-text answers and SCORM 2004 identifiers with spaces, which SCORM Cloud refused. If SCORM Cloud's log shows a refusal that Alder's doesn't, believe SCORM Cloud.

Logs in other LMSs

The calls are the same in any LMS, so the same reading works elsewhere. Docebo, for example, has a SCORM debugging option that shows the calls in the browser's console. To run a course without any LMS first, see how to test a SCORM package without an LMS.