Forum Discussion
Seeking technical Expert Help/Consultation: Intermittent SCORM 1.2 Completion Failures in TalentLMS
Hello Articulate Community,
We are a medical e-learning company facing a persistent and business-critical issue with our SCORM 1.2 courses created in Storyline 360. For over a year, we've had intermittent failures where users complete a course, but their progress is not registered in our LMS, TalentLMS.
After a months-long, exhaustive investigation with TalentLMS support, we're still without a definitive root cause or a stable solution. We are hoping to leverage the deep expertise in this community to get a fresh perspective on the problem.
Our Setup
- Authoring Tool: Articulate Storyline 360 (kept up-to-date)
- Publishing Format: SCORM 1.2
- LMS: TalentLMS
- Completion Trigger: Typically triggered by reaching the final slide of the course.
- Primary Environment: The issue is most prevalent on the TalentLMS iOS mobile app, but it has also been reported by users on web browsers (Android tablet).
The Core Problem
Users successfully navigate through an entire course, including passing all quizzes, and reach the final "Course Complete" slide. However, in TalentLMS, the course remains marked as "incomplete" or at "0% progress". For the user to get a completion, they often have to relaunch and retake the entire course, at which point it usually works. This is causing significant user frustration and a heavy support load for our team.
Summary of the Long Investigation with TalentLMS
Our troubleshooting history is extensive and can be broken down into two main phases.
Phase 1: The "SCORM Caching Bug"
- Initial Diagnosis: For months, the issue was investigated. TalentLMS initially suspected our SCORM file's authoring.
- The Breakthrough: The support agent discovered that the mobile app was caching old versions of SCORM courses. When a course was updated on the server and reassigned to a user, the app would load the old, cached version from the device. This old version would fail to send completion logs correctly because it was no longer the active version in the course unit.
- The Resolution: TalentLMS acknowledged this as a bug on their end. They released updated versions of their iOS (v4.4.19) and Android (v4.4.18) apps, which were designed to automatically detect when a SCORM file has been updated and download the new version, preventing the caching issue.
- Outcome: The issue seemed resolved, and the ticket was closed.
Phase 2: The "Regression" & New Evidence
- The Return: A few months later, the exact same user-facing issue reappeared.
- Critical New Finding: Unlike the first time, the affected users were all newly registered users. This is a crucial detail because these users had no previous course history, expired certificates, or older course versions cached on their devices. This new evidence invalidates the original "caching" theory as the sole cause of the problem.
- TalentLMS's Final Conclusion: After further extensive testing, the TalentLMS team managed to replicate the failure once on an iOS device. Their final conclusion is that the root cause lies within our SCORM package itself. They claim that, intermittently, the package fails to send the necessary completion commands (e.g., LMSCommit) to the LMS.
- TalentLMS's Recommendation: Their primary recommendation is to modify our courses to add a user-initiated "Exit" or "Finish" button on the final slide. They theorize that an explicit onClick event is more reliable for triggering the completion command than the onLoad event of the final slide.
Where We Stand Now
We are skeptical that this is purely an authoring issue, given that the problem is intermittent and platform-specific (primarily iOS). If it were a fundamental flaw in the SCORM package, we would expect it to fail consistently across all platforms.
We have created a new test course that sends a completion command on both the click of the "next" button on the penultimate slide and on the load of the final slide, and have asked TalentLMS to test its reliability.
Our Questions for the Articulate Community
- Completion Trigger Reliability: Is there a known difference in reliability between triggering completion via Storyline's built-in "when timeline reaches end" or "when slide is visited" versus a user-initiated button click? Why might a click be more robust, especially on mobile devices?
- iOS/Mobile App Quirks: Are there known best practices or common pitfalls when publishing SCORM 1.2 content from Storyline specifically for use within an LMS's native iOS wrapper app? Could there be issues with how the app's webview handles JavaScript events like onLoad vs. onClick?
- Debugging SCORM Communication: What are the best methods for debugging the SCORM API communication between a Storyline course and an LMS, particularly on a locked-down mobile device? Is it possible to add custom JavaScript logging to the Storyline output to see precisely if and when commands like LMSCommit and SetStatus('completed') are being fired?
- TalentLMS Experience: Has anyone else in the community experienced similar intermittent completion issues with TalentLMS? If so, how did you resolve them?
We Are Open to Hiring an Expert
Given the significant business impact, we are also looking to hire an independent SCORM/Storyline consultant to perform an audit of our publishing profile, a sample course, and its SCORM output. If you have this level of deep technical expertise and are available for consulting work, please let us know.
Thank you for taking the time to read this detailed post. Any insights you can provide would be immensely appreciated.
Best regards,
1 Reply
- JudyNolletSuper Hero
I'm not a SCORM nor LMS expert, but I'll share a few related things I've learned over the years.
- When a course has more than one completion trigger, the course will use the trigger that runs first to mark completion. So it doesn't do any good to have a trigger on the final slide if there's already a trigger on the penultimate slide's Next button.
- It shouldn't matter whether a Completion trigger is run when something is clicked vs. a timeline "when." However, any trigger that runs "when the timeline ends" won't run if the user closes the browser or jumps to another slide before the timeline ends. So any timeline-based trigger on the last slide of a course should run when the timeline starts.
- Here's an experience from years ago with courses tracked via a quiz and using SCORM 1.2 in Saba: I had to add a slide after the Results slide to ensure that the data would be sent to the LMS. In other words, it didn't register properly if users exited the course from the Results slide. (BTW, I put a message on the Results Success layer that said something like, "To submit your score to the LMS, please click the Next button.")
I tell you this because putting the Completion trigger on the penultimate slide might be the answer.
Related Content
- 14 days ago
- 5 months ago