In older version of the SCORM Engine (earlier that version 2008.1), we have had clients who have witnessed this behavior.
There is an ongoing issue with rolling up completions . In the SCORMRegistration table, there are duplicate entries for programs under specific users where the scorm_registration_id is different in the table. The update_by column is different as well.
One of the entries shows RecordResults.aspx and the other shows CentralInterface.launch.aspx. In every case when a rollup occurs the wrong registration_id is being referenced to get the scormactivityrt data and we don’t get completions on the items for specific users.
Any insight as to why there would be duplicate entries for a program in the scormregistration table like this?
essentially the webserver must be getting two http requests for launch and they run in tandem such that they both get "false" for doesregistrationexist and therefore try to both create a reg.
--The most important thing to do for this issue is to put a unique constraint on tyour externalreg (and externalpkg) keys. Of course, that will mean identifying duplicates and deleting the registration with the oldest update_by.
With the constraint in, you could see several different things in the browser...if the browser shows the first request, you should be good. Otherwise likely a launch error indicating a row with the same keys already exists.
In 2008.1 and later, we have code that will quietly handle the unique index error. So, if you run into this, maybe an upgrade would be the best bet.