Guides
Plain-English guides to the SCORM, xAPI and cmi5 problems that stop courses completing, scoring or resuming in an LMS.
Completion and scores
Mastery score vs quiz passing score: why your LMS records the wrong result
When the mastery score in imsmanifest.xml differs from the quiz passing score, learners can pass in the course and fail in the LMS. How to spot it and fix it.
SCORM course not completing in the LMS: 4 fixes
Finished but still “incomplete” or “in progress” in the LMS? Check 4 things in order: completion goal, the status your LMS counts, the exit, the publish type.
LMS shows incomplete after passing the quiz: 3 fixes
Course still incomplete after a passed quiz? The 3 causes (Moodle’s “Require status”, an unreached results slide, no pass sent) and the fix for each.
LMS shows “failed” when the learner passed: who decided, and the fix
Learner passed the quiz but the LMS says failed? Find who decided “failed” (the LMS re-judging the score, or the course itself) and the fix for each.
Storyline "Report status to LMS as": which option to pick
Scored quiz: Passed/Failed or Passed/Incomplete. Slides or a trigger: Completed/Incomplete. Then check what your LMS counts, and test it before uploading.
Course marked complete too early (before finishing, or after failing the quiz)
Marked complete too early? Keep one tracking option, raise the slides or percentage target, and report Passed/Incomplete so a fail doesn’t count.
SCORM score not recording, or showing 0%, in the LMS
No score in the LMS? Track the course by the quiz with a scored results slide, or check which score field your LMS reads. See what your course sends, free.
How to see which settings a published SCORM package was built with
No project file? Read the pass mark, reporting status, tracking and resume settings back from the published Storyline, Rise or Captivate zip, and where each one is kept.
Specific LMSs
Works in SCORM Cloud but not in your LMS: what to check next
Works in SCORM Cloud, not your LMS? Find the rule your LMS applies differently (pass mark, completion, grade, window) and change that setting. Free check.
SuccessFactors SCORM not completing: the Storyline fix
SuccessFactors shows no progress or completion for a Storyline course? Tick “Launch player in new window” and republish. Steps, and when not to.
Moodle SCORM activity not marked complete (passed, mastery score, "Require status")
Tick Passed and Completed under Require status, and match the quiz pass mark to the mastery score. The two Moodle defaults that keep passers not complete.
Workday shows “failed” for a passed course: the fix
Learner passed but Workday Learning shows “failed”? Courses set to Completed/Incomplete are reported to do this. The fix in Storyline, Rise and Captivate.
Docebo not completing a Storyline or Rise course
Add an exit button that finishes the course and publish as SCORM 1.2 or 2004 3rd Edition: Docebo completes SCORM only when learners press Close.
Resume and progress
SCORM suspend_data 4,096 limit: how to check if your Storyline course is over
SCORM 1.2 only guarantees 4,096 characters of saved progress. How to see how much your Storyline course saves, what happens when it goes over, and how to fix it.
SCORM resume not working: why learners start from the beginning
Learners land on the first slide? Turn resume on, keep saved progress under SCORM 1.2’s 4,096 limit, and check the LMS isn’t forcing a new attempt.
Learners lose progress when they close the course window
Add an Exit button and make the course save as it goes: closing the tab can lose the last progress or the completion. How to check what your course saves.
Completions missing for some learners only
Most learners complete but a few don’t? Usually they closed the window, filled the saved progress, or came back after finishing. The fix for each.
Course starts a new attempt, or opens in review mode, on relaunch
Retakes and review mode are usually LMS settings; learners who left partway should resume. What to change, and how to see what learners will get next time.
Captivate course not resuming in the LMS ("Never Send Resume Data", "Set exit to normal")
Untick “Never Send Resume Data” (or “Set exit to normal after completion”) and republish. Where both live in Captivate, and how to spot them in the zip.
Opening, uploading and testing
“Unable to acquire LMS API”: what it means and how to fix it
The course can’t find the LMS, so nothing is recorded. The fix depends on where you see it: a local preview (expected), every learner (republish), or only some learners.
“Error initializing communications with LMS”: what it means and how to fix it
The course found the LMS, but the LMS refused to start its session, so nothing is recorded. Fixes for resume and relaunch, every-learner and some-learner cases.
“imsmanifest.xml not found” or “not a valid SCORM package”: fix the zip
imsmanifest.xml not found? Zip the course folder’s contents, not the folder, or upload the tool’s zip unchanged. Other causes, and a free check of your zip.
Nothing tracked: the LMS opens story.html instead of index_lms.html
A Storyline course plays in the LMS but records nothing? It may start on story.html, not index_lms.html. How to tell, the free fixes, and a free check.
SCORM course shows a blank screen or keeps loading in the LMS
SCORM course opens blank? Usually a missing file or a letter-case mismatch: republish and upload the zip unchanged. Flash, script and LMS causes too.
How to test a SCORM package without an LMS
Ways to test a SCORM zip before upload: SCORM Cloud, free in-browser players and validators, a free LMS, and Alder. What each one shows, and what it cannot tell you.
How to read a SCORM Cloud debug log (what each line means)
A SCORM Cloud debug log lists every call your course made. How to open it, what each part of a line means, which errors matter, and how to see the calls in plain English.
“Blocked a frame with origin … from accessing a cross-origin frame” in a SCORM course
The course and the LMS page are on different web addresses, so the browser blocks the course from reaching the LMS. What to check in hosting and launch setup.
SCORM error codes explained (101, 201, 301, 401, 403, 405...)
Look up a SCORM 1.2 or 2004 error code, see why 403 and 405 mean different things in each version, and what to do about the codes course authors hit most.
AI-built courses
Turn an AI-built HTML course into a SCORM package that tracks (Claude, ChatGPT, Cursor)
A course from Claude, ChatGPT or a coding agent is a web page. Add a manifest and a small script, zip it the right way, and check it before upload.
AI-built SCORM course plays but records nothing: fix the tracking code
Not attempted, stuck incomplete or no score after an AI tool wrote the SCORM code: the version mix-ups, refused values and missing finish to fix.
Send a quiz score and pass or fail to the LMS from JavaScript (SCORM 1.2 and 2004)
The calls, names and values a custom or AI-built quiz needs to report its score and result to the LMS in SCORM 1.2 and 2004, and how to check them free.
Test a SCORM package automatically with Playwright (for CI and AI coding agents)
A Playwright test that plays a SCORM course against a real SCORM runtime and fails when it stops reporting. Copy it, then check the zip in Alder before upload.
SCORM rules for Claude Code, Codex and Cursor: what to put in CLAUDE.md or AGENTS.md
Rules to give an AI coding agent that builds a SCORM course: one version, one script for the LMS, the right values, no outside files, and a test after each change.
Comparing tools
Alder vs SCORM Cloud: what each one tells you, and when to use both
SCORM Cloud runs your course like a real LMS and shows what it recorded. Alder checks it in your browser first and explains why, in your authoring tool’s terms.
Free SCORM validators and checkers compared: what each one checks
Free SCORM validators check the zip, and some play the course. What each one says it does, where Alder differs, and where another tool does more.