InstructionalEngineer

SCORM Not Tracking? – 12 Fixes for Completion and Score Problems

By Instructional EngineerSCORM, xAPI and LMS8 min read

SCORM Not Tracking? – 12 Fixes for Completion and Score Problems - 3D Animation

The learner swears they finished, but the certificate never showed up. Your LMS insists the course is "incomplete," or worse, "not attempted," and the help desk ticket lands on your desk with the word URGENT in the subject line. Sound familiar? SCORM not tracking is one of the most common problems in eLearning, and it almost always comes down to a short list of causes. Where do you look first, and how do you fix it for good?

When SCORM is not tracking, the cause is usually a mismatch between what the course sends and what the LMS expects, or a course session that ends before its final data is saved. Start by checking the course's completion trigger and reporting status in your authoring tool, then the LMS's own completion settings for that activity. Next, confirm learners exit in a way that lets the course save, and that nothing blocks the launch window. Then check the technical causes: package structure, version, suspend data, score format, hosting and timeouts. Testing the package in a neutral environment such as SCORM Cloud quickly tells you whether the problem lives in the course or in the LMS.

How Do You Diagnose SCORM Not Tracking?

Diagnose it by splitting the problem in half: is the course failing to send the right data, or is the LMS failing to store or display it? Everything else follows from that answer.

The fastest way to split it is to upload the same package to a neutral SCORM test environment, run through it, and read the debug log. That log shows every call the course makes: when it initialized, which values it set, whether it committed and whether it terminated. If the log shows "completed" being set and committed, the course is fine and your LMS settings are the suspect. If the log never shows completion, the course is the suspect.

Then reproduce the learner's path exactly: same browser, same device, same way of exiting. Many "random" tracking failures turn out to be one specific exit habit. Rustici Software's SCORM 1.2 overview for developers is handy here, because it explains what each call in that debug log is supposed to do.

12 Fixes for SCORM Completion and Score Problems

Work through these in order, since the first five solve most cases and don't require a developer.

1. Check the completion trigger in the authoring tool

Every authoring tool asks what makes a course complete: viewing a number of slides, passing a quiz, or both. If the trigger is "pass the quiz" and the course has no graded quiz, or the quiz isn't set to report, the course will never send completion. Open the source file, check the tracking settings, and republish if needed.

2. Match the reporting status to your LMS

In SCORM 1.2, completion and pass/fail share one field, so your tool might send "passed" while your LMS rule waits for "completed," or the reverse. Ask your LMS administrator which status the completion rules and reports actually look for, then choose the matching status pair in your publish settings (for example, completed/incomplete instead of passed/failed).

3. Check the LMS's own activity settings

LMS platforms layer their own rules on top of SCORM. Look for completion requirements, a required minimum score, a mastery score that overrides the course's own status, and rules that require every SCO to report. A mastery score set in the LMS can turn a learner's pass into a fail, or the other way around, without the course doing anything wrong.

4. Make sure the course actually finishes its session

A course saves its final data with a commit call and closes with a finish or terminate call. If the learner closes the browser tab before those calls go through, the last score or completion can be lost. Give learners a clear Exit button, tell them to use it, and make sure the final slide doesn't require one more click to trigger completion.

5. Stop pop-up blockers and window problems

When a course opens in a new window, a pop-up blocker can stop it from launching or break its connection to the LMS window that holds the SCORM API. Learners see the course, but nothing reports back to the LMS. Allow pop-ups for the LMS domain, or switch the activity to open in the same window or a frame if your LMS offers that option.

6. Fix the zip structure

The imsmanifest.xml file has to sit at the root of the zip, not inside a folder. This happens constantly when someone unzips a package to look inside, then zips the folder instead of its contents. Some LMS platforms reject the upload; others accept it and then fail at launch without a clear error.

7. Match the SCORM version to the LMS settings

A SCORM 2004 package uploaded where the LMS expects 1.2, or a 2004 edition the LMS only partly supports, can launch fine and then fail to report. Check the version in the manifest, check what your LMS supports, and republish to the version that works best there.

8. Watch the suspend data limit

SCORM 1.2 allows 4,096 characters of suspend data, the field courses use to save progress. Long courses, branching scenarios and large numbers of tracked interactions can exceed it. Symptoms include broken resume, lost answers and, in some LMS platforms, errors that stop later data from saving. Republish as SCORM 2004 (3rd or 4th edition) for a much larger limit, or reduce what the course stores.

9. Check how the score is reported

Scores need sensible minimum and maximum values, and SCORM 2004's scaled score must fall between -1 and 1. A course that sends a raw score without a range, or a scaled score of 85 instead of 0.85, can show up as zero or be rejected. The debug log usually says so: in SCORM 2004, error 407 means a value is out of range and 406 means a type mismatch, while SCORM 1.2 reports a bad value as error 405 (incorrect data type). Check the score settings in the authoring tool and compare them with the actual values in the log.

10. Host the content on the same domain as the LMS

Browser security rules prevent a page on one domain from communicating with JavaScript on another. If your course files live on a different server than the LMS, the course may not find the SCORM API at all. Host the package inside the LMS, or use a proper cross-domain solution if your LMS or a vendor provides one.

11. Don't swap a live package without a plan

Replacing a course package while learners are partway through can reset attempts, orphan old data or create a second version that reports separately. Check how your LMS handles updates, schedule replacements for quiet periods, and tell in-progress learners what to expect.

12. Check LMS session timeouts

If a learner spends a long time in a course without the LMS page refreshing, the LMS login session can expire. The course keeps running, but its commits fail silently. Ask your LMS administrator about session length, and look for course or LMS settings that keep the session alive or commit data more often.

Which Fix Matches Your Symptom?

Use this table to jump to the most likely fix based on what learners and administrators are seeing.

SymptomMost likely fixes
Shows "incomplete" after the learner finished1, 2, 3, 4
Shows "not attempted" or never launches5, 6, 7, 10
Score shows as zero or blank9, 3
Learner restarts from the beginning8, 4, 12
Works for some learners, not others5, 4, 12
Broke after a course update11, 7

Before you change anything, save a copy of the current package and write down the current LMS settings. Tracking fixes are much easier when you can undo them.

What Should You Send When You Escalate?

Sometimes the fix is on the vendor's side, whether that's the LMS provider or the team that built the course. A clear report gets you a faster answer and fewer "can you send more details?" replies. Include these items every time:

SCORM Not Tracking? – 12 Fixes for Completion and Score Problems - 3D Cutaway Animation

That last item does the most work, because a debug log turns "it doesn't track" into "the course sets completed but never calls commit," which is a problem someone can actually fix. It also ends the finger-pointing between course vendor and LMS vendor, because the log shows exactly which side stopped talking.

Keep a short internal record of each issue and its fix, too, because patterns show up fast. If three courses from the same vendor fail the same way, you've found a publishing setting to correct at the source rather than a bug to chase one course at a time.

How Do You Keep SCORM Tracking Problems from Coming Back?

Prevent them with a standard test that every course passes before it goes live, since ten minutes per course saves hours of support tickets later.

  1. Publish with your team's standard settings: one SCORM version, one status pair, one completion trigger approach.
  2. Upload to a test area in the production LMS, not just a sandbox that might be configured differently.
  3. Launch as a test learner. Exit halfway using the browser's close button, then relaunch and confirm resume.
  4. Finish, fail the quiz once, retake and pass. Check status, score and completion date.
  5. Run the report your managers actually use and confirm the course appears correctly.

Most tracking problems are really integration problems: the course and the LMS each doing something reasonable that doesn't quite match. If you're responsible for the bigger picture, understanding how LMS integration works across content, users and data makes these mismatches much easier to spot early.

SCORM Not Tracking? Check the Handshake Before You Blame the Code

When SCORM is not tracking, the course and the LMS usually aren't broken; they're misunderstanding each other. Start with the settings that define "done" on both sides, then confirm the session ends cleanly, then work through the technical causes with a debug log in hand.

Try it on the course behind your most recent ticket: run it through the five-step test above, and note which fix solved it. Do that a few times and you'll have your own troubleshooting guide, written in the language of your LMS. And if a course still refuses to report after all twelve fixes, send it my way; stubborn tracking problems are a normal part of LMS integration work.

← All articles