Storyline Timeout

Nov 12, 2013

How long will a Storyline course sit "idle" in an LMS before timing out? In other words, does Storyline have a heartbeat mechanism whereby the course communicates with the LMS every couple of minutes so that the session is preserved and the course completion status can be communicated to the LMS?

20 Replies
Justin Grenier

Good Morning, Terry.

To my knowledge, Storyline does not transmit a heartbeat to the LMS, although you could check for certain by enabling LMS Debug Mode, letting your course sit idle for a length of time, and examining the resulting logs for any communication during that time period.  Having said that, Storyline also does not set a timeout limit, so any timeouts would be controlled by the LMS.

Please let us know if you need anything else, and have a great day!

Henrik Clausen

It's an old thread that I'm reviving here, but we do have quite an issue with this. We're running Storyline eLearning lessons in SuccessFactors, which works just fine in all other areas. But the timeout is a problem:

After perhaps 20 or 30 minutes, the session times out, but the users get no indication of this. They can proceed in a lesson that was interrupted by a phone call or the boss calling a meeting. Then they dutifully complete the lesson when they have time, but it doesn't register as completed in SF - which generates quite a few support incidents for us.

Restarting to watch the entire lesson again works as expected, but is double effort.

If the user could get some kind of notification, or the lesson could shut down by itself to let the Resume feature take care of it, a major issue would be resolved.

Any workarounds or future improvements on this topic?

Henrik Clausen

OK, we're up against something slightly different, the 30 minute session timeout in SuccessFactors (that's the upper limit). This is something we easily hit if called out for a meeting (happened to me today), or if the lunch break gets a bit long.

This sits somewhere in the dialogue between the lesson and the LMS. We have been wondering if the lesson could shut down automatically so the user would be able to use the Resume functionality - I'd like some input on this.

For the moment, I've created a workaround with a couple of triggers in the last slide, to have a text box explaining the situation and the need to restart the lesson. This text box will only be visible if the Finish (Exit) button doesn't in fact close the lesson window.

Justin Grenier

Good Morning, Henrik.

I just wanted to point out that my previous response above was dead wrong, and I apologize for that.  Here is what I should have said.  So, it seems that SuccessFactors is timing out despite the keep-alive message being sent every 10 minutes.  You might want to check in with their Support Team and see if they are somehow expecting a different kind of communication to let them know that the course is still alive.

If this line of attack doesn't work out, could you insert a When Timeline reaches trigger on every slide to display the same explanatory text box at the 1,000-second mark (about 17 minutes)?

Good luck with your project!

Ashlee Rainwater

Hi Henrik, 

Did you find a way to make the lesson shut down automatically so that the user would be able to use the Resume functionality?

I ask because I am experiencing a similar situation. I am having an issue with learners being pulled away from the lessons (job interruptions), and then opening a second version of the lesson. This creates two opened versions of the same lesson, which causes an issue with reporting to the LMS. I was thinking that if I found a way to make the lessons automatically close upon an x amount of idle time the students would use the Resume functionality to reenter the lesson. This would prevent the multiple open versions issue. 

I am unsure the best way to accomplish this. Do you have any input?

Thanks for your help!!

 

Henrik Clausen

Hi Ashlee

Sorry for not coming back in a timely fashion - your problem certainly is related to mine, we have the same situation with business interruptions. We did not find a definite solution to it, and are mitigating the problem by telling users that they have to close the lesson manually in case of interruptions. This is contrary to the habit of most applications, and a bit hard to make a habit.

Interestingly, SuccessFactors and other web pages will time out and close by themselves after a period of inactivity. It would be quite a blessing if our eLearning lessons could do the same - then the Resume feature would take care of getting users back to where they were interrupted.

Leslie, could it be that Development is looking into this?

Justin Grenier

Good Morning, Ashlee and Henrik.

At the moment, we don't see that this is a bug in Storyline.  Here's why:

Storyline 2 will send a keep-alive message to the LMS every 10 minutes by default, and this keep-alive message includes Suspend Data that will help the LMS recover from a learner's session that has been suspended for any reason.  A great way to verify that this keep-alive message is happening is to enable LMS Debug Mode so that you can watch the communication flowing across the wire.

Although we can't support the modification of published output, Gerry hints here at how you might go about modifying the frequency of that keep-alive message.

You'll also find another conversation here on how you might configure a JavaScript Trigger to invoke an LMSCommit() upon the load of every slide, but this feels like overkill to me, and Storyline's default keep-alive message should be more than enough.

I'd recommend enabling LMS Debug Mode and using the resulting debug log to show the keep-alive message to your LMS Admin.  Perhaps they can explain to you why the LMS would time out in spite of that message.  ...and if you need any help interpreting those logs, please feel free to send us a copy for a closer look.

Please let us know if you need anything else, and have a great day!

Henrik Clausen

Hi Justin

I tried your approach with three different SCORM packages that users had reported problems with. In all three cases, the communication from the lesson to SuccessFactors was flawless, including the 10-minute interval keepalive updates, and the lesson was still alive and well after 45 minutes, completing as intended.

My conclusion is that our problem is probably caused by PC's being put into suspend or hibernate while the user is away, which causes a hard loss of communication and justified timeouts. We'll ask our users about that, and see if SuccessFactors can do something to mitigate it.

Thanks for your help tracking this one down. Much appreciated!

joe smith

Hi Justin,

In Presenter '13 and QM '13 I was familiar with the 10-minute "keep alive" message that the course sent to the LMS. 

However, after upgrading to Studio 360, I'm now seeing the following interactions take place about every 60 seconds: 

156:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In CommitData
157:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In ClearErrorInfo
158:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In IsLoaded, returning -true
159:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - Did not override time, saving incremental time
160:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In AccumulateTime dtmStart=Fri Apr 21 2017 16:12:55 GMT-0500 (Central Daylight Time) dtmEnd=Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) intAccumulatedMS=0
161:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - Accumulating Time
162:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - intAccumulatedMS=58584
163:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In SCORM_SaveTime intMilliSeconds=58584
164:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In SCORM_ClearErrorInfo
165:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In ConvertMilliSecondsIntoSCORMTime, intTotalMilliseconds = 58584, blnIncludeFraction = true
166:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - Separated Parts, intHours=0, intMinutes=0, intSeconds=58, intMilliseconds=584
167:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In ZeroPad intNum=0 intNumDigits=4
168:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - Returning - 0000
169:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In ZeroPad intNum=0 intNumDigits=2
170:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - Returning - 00
171:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In ZeroPad intNum=58 intNumDigits=2
172:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - Returning - 58
173:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - strCMITimeSpan=0000:00:58.58
174:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - returning 0000:00:58.58
175:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - strCMITime=0000:00:58.58
176:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - SCORM_CallLMSSetValue strElement=cmi.core.session_time, strValue=0000:00:58.58
177:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In SCORM_GrabAPI
178:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - SCORM_GrabAPI, returning
179:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - Calling LMSSetValue
180:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - strResult=true
181:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - Returning true
182:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In SCORM_CommitData
183:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In SCORM_ClearErrorInfo
184:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In SCORM_CallLMSCommit
185:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - In SCORM_GrabAPI
186:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - SCORM_GrabAPI, returning
187:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - Calling LMSCommit
188:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - strResult=true
189:Fri Apr 21 2017 16:13:54 GMT-0500 (Central Daylight Time) - Returning true

Any chance you could tell me what this is?  And what file/code in the published output is causing this to happen in Presenter 360 and QM360? 

Thanks for any help you can provide. 

Steven

joe smith

Hi Justin, 

Thanks so much for looking at this.  I had only been testing in HTML5.  But after receiving your response, I republished the quiz so that it would only work in Flash and the 60-second interaction is NOT happening in Flash.  So it appears that it's just an HTML5 issue. 

I've attached the entire debug log as requested. 

The problem for me with the extra communication is that the courses we deliver are compliance courses and by law we have to log someone out of a course if they've been inactive for a period of 20 minutes.  The way we determine a user's level of activity is by the calls sent out by the course.  If there are no calls made in a 20-minute period, then the LMS will close the course because that means the user hasn't submitted any answers for the quiz question (or clicked the Next button in Presenter to advance to the next slide).  

With the call being made every minute in HTML5, however, the LMS views that as the user being active which prevents the 20-minute inactivity log out from occurring.  

Thanks again for looking into this for me. I'll look forward to hearing what you discover.  And more importantly, how to prevent or change the timing of the communication happening every minute in HTML5. 

Best regards, 

Steven 

 

James Maloney

Hi Emily,

We are having the same problem as Steven Stark.  While in an Articulate Storyline 3 AICC course, there is a communication once every minute between the course content and the LMS.  Publishing it without HTML5 will probably resolve the issue, but not ideal for the future.  What did his support case show was the problem?

Thanks, James 

Leslie McKerchie

Hi James,

Sorry to hear that you've run into a similar issue.

Steven's issue was specific to Studio 360, specifically Quizmaker and a report was filed with our team for investigation and tracking. I do not see where we have a similar report for Storyline 3.

Would you be able to share your .story file with our support engineers here to take a look?

This discussion is closed. You can start a new discussion or contact Articulate Support.