Why can updating a course break progress?
To update a SCORM course safely, match the method to the change. A typo fix can usually replace the content in place. A structural change — pages added, removed or reordered — can break resume for anyone part way through, because their saved bookmark and suspend data describe the old course. Decide which case you are in before uploading.
The underlying reason is that the LMS stores the learner's state, but only the content understands it. cmi.core.lesson_location in SCORM 1.2 (cmi.location in 2004) and cmi.suspend_data are strings the course wrote in its own format: a page number, a slide ID, a list of answered questions. The LMS hands those strings back on the next launch without knowing what they mean. If the new version of the course reads them differently, resume goes wrong.
LMSs also differ in how they treat a re-uploaded package. Some swap the files and keep every learner record attached. Some create a new version and start new attempts. Some ask you to choose. The same zip can therefore have very different effects depending on the platform and the option you pick.
Small fixes vs structural changes
Sort the update into one of two groups before anything else.
| Usually safe to replace in place | Risky for in-progress learners |
|---|---|
| Correcting text, typos and captions | Adding, removing or reordering pages or slides |
| Swapping an image or video for one of the same role | Adding or removing quiz questions |
| Fixing styling or layout | Changing the passing score or completion rule |
| Fixing a broken link | Splitting one SCO into several, or merging SCOs |
| Republishing from a different authoring tool or a new tool version |
The last item surprises people. A new version of an authoring tool can change how it formats suspend data even when the course content is identical, so treat a tool upgrade as a structural change until you have tested resume.
Replace in place or upload a new version?
For small fixes, replacing the content in place is usually right. Learners keep their records, in-progress attempts continue, and nobody has to start again. Check that your LMS's replace option really keeps existing attempts attached; the wording varies between platforms.
For structural changes, you have two reasonable choices:
- New version for new attempts only. Learners who have finished keep their completion. Learners in progress either finish on the old version or are moved to the new one with a fresh start. Many LMSs support this through their own versioning feature.
- Replace and reset. Everyone moves to the new version and in-progress learners restart. Simpler to manage, but it must be a deliberate decision, communicated in advance.
The option to avoid is replacing a structurally changed course in place and hoping. That is how learners end up resuming on a page that no longer exists, or finishing a course the LMS still shows as incomplete. The mechanisms are described in why SCORM completions go missing.
The manifest identifier question
The identifier attribute on the root manifest element, and the identifiers of the items inside it, are what some LMSs use to recognise a package as the same course. Change them and the platform may treat the upload as a brand new course with no history. Keep them and it may attach the new files to existing records.
Neither is right in every case; what matters is that the choice is deliberate:
- Keep identifiers the same for fixes you want applied to existing records.
- Consider new identifiers when the course has changed so much that old records should not carry over.
- Never change them by accident. Some authoring tools generate a new identifier on every publish unless you set one, so check the manifest of each new build.
The same issue appears, at larger scale, when moving a whole library between platforms; see migrating LMS without breaking your SCORM courses.
Testing resume before you publish
The one test that predicts whether an update will hurt learners is a resume test across versions:
- In a test environment, launch the old version as a test learner and stop half way, so a bookmark and suspend data are saved.
- Apply the update exactly as you plan to in production.
- Relaunch as the same learner and check where the course opens, whether earlier answers are remembered, and whether the course can still be completed.
- Finish it and confirm the LMS records completion and score.
If the course opens on the wrong page, errors, or cannot reach completion, in-progress learners will see the same. That is the signal to use a new version or a planned reset rather than replacing in place.
Telling learners about a reset
If in-progress learners will lose their place, tell them before the change, not after they notice. Say what changed, whether earlier completions still count, and how long the new version takes. For mandatory training, agree with whoever owns compliance whether a restart affects deadlines. A short message beforehand avoids a support queue afterwards.
Where SCORM Central fits
SCORM Central converts files you already have — PDF, PowerPoint, Word, or video — into SCORM 1.2, SCORM 2004, cmi5, or xAPI, and shows you the manifest, the full runtime log, and a conformance report on every build, so you can see exactly what a package will report before an LMS does. See how it works, or start with one file.