Understanding SCORM Suspend Data Limits (and What to Do If You Hit Them)

Hey folks,

This is one of those things that rarely comes up - but when it does, it can cause some confusing behaviour, especially around course resume and bookmarking. Here’s a simple breakdown.

What is suspend_data?
In SCORM, suspend_data is used to store a learner’s state so they can resume where they left off. This can include things like lesson location, progress, and interaction state. When a learner exits and returns, the LMS sends that data back to the course so it can restore their session.

The important bit: data limits
SCORM itself defines limits on how much data can be stored in the suspend_data field, depending on the version:

  • SCORM 1.2: 4,096 characters

  • SCORM 2004 (2nd Edition): 4,000 characters

  • SCORM 2004 (3rd & 4th Edition): 64,000 characters

In practice, not all LMSs strictly enforce these limits - but many older or more rigid systems (especially with SCORM 1.2) still do.

How Compozer handles this
Compozer compresses suspend_data before sending it to the LMS. This significantly reduces the size of the data being stored, which means most courses won’t come anywhere near the limit - even in SCORM 1.2.

Because of this compression, if you ever inspect suspend_data in an LMS debug log, it will appear encoded and not human-readable. That’s expected behaviour.

What happens if you exceed the limit?
If the LMS enforces a limit and it’s exceeded, you may see issues like:

  • Learners not resuming in the correct place

  • Progress not being saved properly

  • In some cases, data being truncated or ignored

How to avoid it
If you’re working with a large or complex course, here are a few reliable ways to stay within limits:

  • Use SCORM 2004 (3rd or 4th Edition)
    If your LMS supports it, this is the easiest fix. The higher limit (64,000 characters) removes most practical constraints.

  • Break large courses into smaller modules
    This reduces how much state needs to be stored at any one time and is often better for learners anyway.

  • Be mindful of very interaction-heavy builds
    Courses with lots of tracked interactions or complex branching can increase suspend_data size over time.

In most cases, Compozer’s compression means you’ll never hit these limits. But if you’re seeing resume issues in larger builds - especially in SCORM 1.2 - this is one of the first things worth checking.