SCORM Lab · error library

Storyline output throwing on a null classList

Uncaught TypeError: Cannot read properties of null (reading 'classList')

A Storyline HTML5 player script reached for classList on an element that isn't in the page. Usually a missing or renamed player asset, or the SCO launched outside its own story.html frame.

What it means

This is a plain JavaScript exception from the player's own bundled JS, not a SCORM error code — there is no errorCode or diagnostic behind it, and it never touches the API. It means the player's boot script tried to grab a DOM node (a menu container, a chrome element, a slide layer) that its own markup hadn't put on the page yet, which almost always traces back to one of two causes: the package is missing files the player depends on (an incomplete unzip, a build step or LMS import that only copied part of the output — the html5/ subfolder, the player CSS, or files meta.xml-referenced assets pull in), or the SCO was loaded some other way than through the launch file the manifest actually points at (story.html, or whatever the course's own entry page is), so the player's asset-relative bootstrap never ran in the order it expects.

Which authoring tools produce it

Exclusively Articulate Storyline (360 and Storyline 3) HTML5 output — this is a symptom of that player's JS bundle specifically, not a general authoring-tool pattern.

How to confirm it in SCORM Lab

This never appears in the Transcript tab — it's not an API call, so there's no errorCode row for it. Check the Console tab: the stack trace names the player script that threw. Then check the Manifest preview for which file the package's default resource actually launches — if it isn't story.html (or the course's own equivalent entry page), that's the first thing to fix.

The fix

Re-export or re-zip straight from Storyline rather than hand-copying files out of its output folder — a manual copy is the most common way to silently drop a file the player depends on. If the export is already clean, confirm the manifest's launch resource points directly at story.html rather than an intermediate redirect page, and that nothing in the LMS import path strips or renames the html5/ subfolder.

Worth knowing

Different Storyline versions bundle their player differently, so the specific missing file varies by build — treat "something the player needs is missing or unreachable" as the diagnosis, not any one file name.

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.