Resolution: Cannot Reproduce
Affects Version/s: 1.8.3, 1.9.6
Fix Version/s: None
Affected Branches:MOODLE_18_STABLE, MOODLE_19_STABLE
I have been been able to reproduce the following issue on a MOODLE_19_WEEKLY CVS build updated every Thursday as well as another installation of Moodle hosted by Articulate technical support.
SCORMs are generated using Articulate Presenter '09 Update 4 (most recent released version) and consist of 10-15 slides with an embedded Quizmaker quiz on the last slide.
Articulate Presenter/Quizmaker attempts to set cmi.core.exit immediately upon starting the SCORM to "suspend". If cmi.core.exit is not already set to suspend (from stopping and restarting the SCORM), then any new attempts to set the value of cmi.core.exit will not be recorded by Moodle.
Viewing the SCORM in debug mode shows that the SCORM is sending the right value and that Moodle is not returning an error, however the database is not updated and the user is presented with a "suspended" graphic icon.
Altering the SCORM to not set cmi.core.exit to suspend upon initialization appears to have corrected the issue of SCORMs that are played from start to finish without exiting getting stuck in suspended mode. Comments in the lms/SCORMFunctions.js included with Articulate SCORMs indicate that they are setting the value initially to suspend as some LMSs will not store suspend_data otherwise.
This appears to be an implementation issue with Articulate's software, however as this is a popular software package, I'd recommend investigating this issue within Moodle to see if cmi.core.exit can be set to a changed value during playback of the SCORM.
I'm not familiar enough with the SCORM guidelines to know whether or not Moodle's response is correct--at the very least, Moodle should report an error in debug mode to let SCORM developers know that attempting to change the value during playback will not work.