Hi,
For some time now inn our Adapt e-learning, randomly users complain that they get stuck in the e-learning authored by Adapt. Its not the case for the majority. For a while now pulling our hairs, we narrowed the issue to the cmi.suspend_data in the database. Below is what a working session looks like and one that does not. Can anyone help us understand why this may be happening?
Definitely do no use sentences for the `_id` property. Please try following the convension in Adapt of using codes such as co-100, a-100, b-100, c-100. The suspend data, the place on the LMS where the course state is stored, has limited space, only 4kb. It is possibly the case that you're exhausing the suspend data limit.
Thanks for your reply, we'll look into using codes for the _'id' property.
That said, I don't think our problem is related to that. From what I see, suspend data is around 1200 bytes now, so there's plenty of free space to use.
From my testing, this seems to be somehow related to the "a" property inside suspend data. Unfortunately, I have not been able to locate anything dealing with this property in the code. I am not really familiar with Adapt code, so I may be looking at the wrong places. If you can point me in the right direction that would be great.
I say that the problem seems related to the "a" property because I found that this data looks different in working and nonworking attempts.
So, I tested editing suspend data for a non-working entry in the database, removing the "a" property altogether. After opening the course again, I see the "a" property regenerated, this time with the correct values, and now the user can take the course.
Another test that worked was copying a value from a working session: when I replace some of the values inside "a", that chapter works again.
Suspend data is also ASCII text, so you may have issues with some of the characters.
The a property is for the assessment.
https://github.com/adaptlearning/adapt-contrib-assessment/blob/8a4cbc7ed3fe25ee819f4733c9436080795bf375/js/assessment.js#L302-L311
Hi Oliver,
Thanx for this!!!! In a team discussion we wonder if the suspend data been sent is either incorrect or its missing/dropping some? For example a page has 5 test questions but only 3 get stored and somehow "Jams" the elearning. So the elearning isnt able to load correctly and all you see is the adapt loader. If you delete the users attempt the e-learning works again? So we know its the suspend data, but we dont know why this happens as its random. Do you have any theories to this?
Not realy, not without seeing the course I'm afraid. This is the first occurance of such a bug, so I'd need to be able to debug it to see what's going on.
It suggests to me that the save/restore functionality of spoor isn't reading your non-ascii characters correctly and is missing restoring some of the components.
It's hard to tell.
Hi Oliver,
I quite happy to share the elearning.zip for you to download? I also have a testsite but Ill need an ipadress. Is there a way to contact you via email? Our developer wrote this if it sheds light on anything. As I said this happens randomly. 99% of users have no issue. The other theory is possibly overload on the server database?
Hi Oliver,
We have reached a conclusion that what your saying seems to be the root of our problem. We never really thought of the Article/component titles as IDs that should be ASCII characters. We have long swedish titles and its seems when the algorithm is compressing/shrinking the data to save space it does not always do this correctly as we have some special characters.
We read more here: https://scorm.com/blog/avoid-special-characters-in-scorm-runtime-data/
So were changing this and Ill report back if the issue resolves or continues. Thanx for the insight though it helped alot.
regards,
Winston
Hi Oliver,
Even though I changed the IDs I can still replicate the issue. Can you see these logs to see if you notice anything?
https://cloud.scorm.com/sc/guest/ViewDebugLog?logId=fdbeca3f-0346-4618-ab2b-4a455e491c40&courseTitle=Hj%C3%A4rt-lungr%C3%A4ddning+Vuxen
Thanx,
Can you try with https://github.com/adaptlearning/adapt-contrib-spoor/pull/237 please
SOLVED!!!!!
The pain of duplicating Articles that already have an assesment (ID) name. We had 2 articles with identical Assesments when the article was copied. I never thought to check the article that didnt matter as it did not have test questions in it. So we had duplicate assements with the same assesment id. iF THE SUSPEND_DATA caught the right one you were ok, but if caught the wrong one the e-learning freezes. This could be replicated in Scormcloud also provided you tried many attempts before the elearning stopped working.
Now using unique ids (names) in the assement this solved the issue. things to chck if you should experience this is
- ASCII character compliance
- Check for Duplicate ids
- Suspend data size does not exceed 4096 characters