Forum Discussion
Decoding suspend_data Field: Is It Possible?
- 1 year ago
Yes, you can easily decode the suspend data. Rise uses the lzwCompress library. https://www.npmjs.com/package/lzwcompress
Here is a CodePen example on how you can decode it. https://codepen.io/John-Pinkster/pen/qBzENJR
Word of caution: don’t try and update this data as the Rise course logic will just override what you put in there.
Yes, you can easily decode the suspend data. Rise uses the lzwCompress library. https://www.npmjs.com/package/lzwcompress
Here is a CodePen example on how you can decode it. https://codepen.io/John-Pinkster/pen/qBzENJR
Word of caution: don’t try and update this data as the Rise course logic will just override what you put in there.
Thanks, this helps a lot!
By any chance you would know the data structure of the json data stored in the Suspended_Data as well? eg. which field(s) represents to what, etc?
Like "c" i would guess this is completion? And "c: 1" means the learner has completed this item? But what about "i" and "p"?
I'm trying to find out what causes the Continue button locked/or not showing/learner cannot proceed to the next chapter while completed all the required items for my learners and running into a dead end here. Continue buttons disappearing | Articulate - Community
First i thought it could be because the client end is getting a bad copy of the data/files from the LMS. Since this run into a dead end, i'm now trying to look and see what else could be the cause, or at least could give me some hints on where to look next... 😥
Attached is the suspend_data extracted from one of the cases. The learner is "stuck" at the end of the Chapter 10. I have gone through the chapter with the learner, all the interactive items/quiz have been completed. But it keep saying "Complete the previous knowledge checks to unlock this lesson"... (there are other cases as well, like the Continue button is not showing, or saying similar things.. asking user to complete previous items). Oh one thing, this happens only to some of the learner, not all the learner. Thanks in advance for anyone's help 🙏
- Brian_Caudill10 days agoCommunity Member
Hi HKJCHKJC a year late, but this is answerable and I think it solves your case.
Using the lzwcompress route JohnPinkster-19 pointed to, your attached suspend_data decodes cleanly. The structure is:
{ "v": 2, "d": [ …LZW codes… ], "cpv": "…" }
// d decompresses to:
{ "progress": { "lessons": { "<lessonIndex>": {
"c": 1, // complete
"p": 100, // percent progress
"i": { "<blockIndex>": { "c": 1,
"i": { "<itemIndex>": { "c": 1, "vp": 0 } } } } } } } }
So c = complete, p = percent, i = nested children (lesson → block → item). vp shows up on a few items and looks like video position in seconds, though I'd treat that one as an educated guess.
On your stuck learner issue your file says:
lessons with a record: 0, 10, 11, 12
no record at all for: 1, 2, 3, 4, 5, 6, 7, 8, 9
Lesson 11 is complete at 100%, and lesson 12 is in progress at 6%. But lessons 1–9 have no entry whatsoever.
That means the course logic is behaving correctly. Rise checks previous lessons for completion, finds nothing to check, and shows "Complete the previous knowledge checks to unlock this lesson." The learner really had finished the chapter they were currently in, just not the nine before it.
I think this also rules out your bad-copy-from-the-LMS theory. LZW doesn't degrade gracefully, meaning, a truncated or corrupted data string wont to decompress at all (won't be readable by the course), rather than losing a middle section. Yours decompressed fine and produced well-formed JSON, so the record data isn't damaged. It's intact and simply says those lessons were never completed.
That also fits your note that it only affects some learners. A per-learner navigation pattern (skipping ahead via the sidebar, a reset, or other bug in navigation) explains it, but a systemic delivery fault wouldn't. That would affect all learners.
What I'd check next: Can the affected learner(s) reach lessons 1–9 out of order in your navigation settings? Does anything in your workflow reset or replace a learner's record mid-course?
Related Content
- 1 month ago
- 1 year ago
- 6 months ago