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 calls that matter, in order
- Initialize (
LMSInitializein 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.entryorcmi.entry: “resume” for a returning learner, otherwise “ab-initio” or empty), for the bookmark (lesson_locationorlocation) 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) andcmi.success_status(passed or failed). The score goes inscore.raw, and in SCORM 2004 alsocmi.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_datais where the course saves the learner's place, and the exit value (cmi.core.exitorcmi.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 (
LMSFinishin 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_datain 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.
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.
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 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. 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.

Error 403 on a first launch, explained and rated Normal. 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.