SCORM.data.set('cmi.core.score.scaled') failedcmi.core.score.scaled mixes a SCORM 1.2 path (cmi.core.score.*) with a SCORM 2004-only leaf (scaled). It doesn't exist in either edition as written.
SCORM 1.2's cmi.core.score only ever had three children: raw, min, max — a 0–100 number. SCORM 2004 added scaled (a normalized 0–1 score) when it introduced the wider cmi.score model, but that model lives at cmi.score, not cmi.core.score — 2004 dropped the core branch entirely. So cmi.core.score.scaled isn't a 1.2 element that's merely unsupported, and it isn't the 2004 path either: it's a path that has never existed in either edition, and the LMS rejects the write. Wrapper facades that expose a single SCORM.data.set(key, value) over both versions often let course code pick any element name free-hand, so the call reaches the API, fails, and the wrapper reports a bare "failed" without surfacing the underlying SCORM error code.
Course scoring logic written against SCORM 2004 conventions (a 0–1 scaled score) reused in a SCORM 1.2 package without translating it to raw/min/max — common when a shared scoring module targets both versions, or when a course was ported from 2004 to 1.2 and only the manifest was updated.
On a SCORM 1.2 package, the CMI tab shows cmi.core.score with only raw/min/max as writable children — there's no scaled node to set. The Transcript tab's SetValue row for this element shows result false; the Console tab has the wrapper's own "failed" line if that's what you're chasing.
On a SCORM 1.2 package, drop scaled and write cmi.core.score.raw (plus min/max) instead — 1.2 expects a 0–100 number there, not a 0–1 fraction, so convert (multiply/divide by 100) at the point the value is written, not throughout the course logic.
If the package is genuinely SCORM 2004, the fix is different: use cmi.score.scaled, dropping core entirely — SCORM 2004 has no cmi.core branch at all, so cmi.core.score.scaled is wrong there too, just for the opposite reason.
Open the package in SCORM Lab to see this error fire in the Transcript or Console tab. It runs in your browser, and nothing is uploaded unless you choose to share it.
Still stuck after the fix? Bring the package to a SCORM consult.