LMS Timeout Pop Up for Courses

User experience is very important to us.  However, there are times when we know that the learner has walked away from an online course and returns a few hours later. During that time, the LMS has timed out and the connection from the course to the LMS is not present.  

Articulate courses (Rise, Articulate, Storyline, etc) are still allowing the learner to continue the course without knowing that the LMS has timed out.  

Enhancement Request: In the LMS_Manifest file, can you build a javascript that will:

  1. At each slide, the course pings the LMS to make sure there is a connection
  2. If there is a connection, bookmarking is sent to the LMS
  3. If there is no connection, a pop up message come up. "You are not connected to your LMS.  You are required to log into your LMS and reopen the course.  If the issue persists, please contact your LMS Adminstrator."  
  4. Once the user clicks on OK on the message box, it will close the course.
  5. In addition, the course will not allow the user to move to the next slide.  It will also show a blank page or instead of #3 (pop up message) above, it can display the message on a default page that has no navigation.  We would not want the user to return to this page though.  It should go to the previously bookmarked page. 


5 Replies
Andrew Taylor

+1 to this. Our problem is that during an assessment, the user has no idea whether their connection to the LMS has been lost until several buffered questions later. Data from the buffered questions is not recorded and when the candidate comes back out then resumes the test, they are sent back several questions and have to answer them all again. And very often, there still isn't a stable connection to the LMS so they just encounter the same problem.

Joseph Francis

XML does not DO anything; it is designed to carry data - with a focus on what data is. The XML language has no predefined tags, does not carry any information about how data is to be displayed, and does not execute any scripts. 

imsmanifest is an XML file. It completely describes the content of your course to the LMS. It contains resources, which is a list of “parts” that make up the course; organizations, which are logical groupings of the resources into a hierarchical structure; metadata, which describes every piece in detail; and sequencing, which is a set of rules for each activity.

What you are looking for is a JavaScript trigger within your packaged Storyline file, which is executed at regular intervals (in your example, when each page loads). This is certainly within the realm of possibility, however, your primary problem is behavioral, not programmatic. An organization which allows its learners to "walk away" from an assessment and not return for several hours does not, IMHO, place a whole lot of value or emphasis on completing the assessment within a prescribed amount of time. It is akin to walking out of a live performance and returning several hours later, expecting the performers to pick up where you left off.

Andrew Taylor

In your lecture about our 'behavioural' problems, you've conflated the original post, which was about learning materials, with my reply, which is about assessment. We don't allow candidates to 'walk away' from assessments. The problem is an immediate one when the LMS connection is lost during an assessment, because Storyline buffers several slides in advance. If the connection is lost while they're viewing a buffered slide, all the answers to that and the subsequently buffered slides won't be recorded. Very frustrating for the candidates. And nothing to do with 'behaviour', thanks!

Joseph Francis

#2 is ideal and you could attain it yourself right now using a JavaScript trigger.

My "lecture" was, in part, to point out the lowest-hanging fruit as part of the troubleshooting process is to start with the learner's behaviour. Since in Andrew's case the issue isn't behavioural, the next step in the troubleshooting process would be to try firing a regular sets of pings to the server from within Storyline, to keep the session open. At the same time, you should be speaking with your LMS admin, to find out what the LMS session timeout is. Out-of-the-box, many LMS's would timeout the session after 20 minutes of inactivity (20 minutes of no communication with the LMS, not 20 minutes of not downloading any files). That number would be determined by the server the LMS was hosted on, so it would need to be changed on the server, then within the LMS.

Many cloud-hosted solutions do not allow the session timeout to be adjusted. In that case, you have to force the server to keep the session open by regularly pinging the LMS with dummy data. When I was doing this with another tool, I would have the course request the learner's current completion status, then re-upload it to the LMS. That would be enough to keep the session alive.

One of the client-side network debugging tools I use is Charles (https://www.charlesproxy.com/). You can watch the traffic as it flows between client and server, and see exactly when/if a connection is lost. Then you can figure out what your options are.

It's easy to say "Articulate should fix this problem for me." In many cases, they're not going to, simply because a) there isn't a huge demand for it, and b) the developer can fix the issue within Storyline. If you can demonstrate to Articulate that this is a show-stopper for everyone world-wide, you will get their attention. Otherwise, I would not hold my breath.