Internet Connectivity - Problems with SCORM Cloud

Hi There, 

When I start a scorm course, the scorn player tries to reload the last state from the LRS (Where I finished the course at the last time, what were the values of the variables, etc.) 
If some kind of internet connection error occurs during this request, the scorm player simply restarts the course from the beginning. If I click on NEXT here, then the player tries to store the current state to the LRS. If the internet connection is back at this time, then it will store the current - empty - state to the LRS, so all of my previous progress will be lost!

Does anyone know why this happens and any ideas as to how to resolve it. 

Many Thanks

Neil Chandarana:

10 Replies
Ashley Terwilliger

Hi Neil,

I can't say that I've seen that behavior before, but I'm wondering if you've looked into this method here to let the user know that their connection has been lost and after enabling this feature, users will be alerted that their data cannot be committed to the LMS if an error occurs when the content is attempting to save their data to the LMS.

Ashley Terwilliger

Hi Neil,

I checked in with a colleague of mine for a bit further explanation. When a learner resumes a course that has been suspended previously, we ask the LMS to send us suspend_data that tells us where the learner left off on their previous attempt.  If the LMS is unable to send us this suspend data for some reason, we will assume that the learner is starting over from scratch, and yes, we will definitely send new suspend_data to them LMS at the end of the learner's second attempt, and this suspend_data will overwrite the original suspend_data.  This is by design, and there is no workaround that will cause us to *not* send new suspend_data to the LMS. If you'd like to see something to prevent that behavior I'd ask that you share your thoughts in the form of a feature request with our development team. 

katie noake

Hi Ashley,

Thanks for getting back to me.

We have exactly the same issue as Neil described above. With Tin Can the course communicates with the LRS. When the course sends a request to the LRS asking for the stored state, if some reason there is a connection error and the course does not get the response from the LRS, the user is taken back to the start of the course. If the user then presses 'Next', their new progress is stored.

When the course player asks for the state, we would like the player to only accept the response as valid if it has HTTP status 200 OK or 404 Not Found. If there is any other HTTP response status and therefore an error, we would like the course to ask for the data again.

We have a long course and this is a common issue for our users, do you know if there is a way for us to make the course perform a get request on the state more than once?