Can not launch content - Configuration data is missing or incorrect. Please try again

Feb 09, 2015

Hi 

We are using storyline2 and trying to publish the xAPI tracking data to our LRS. It is hosted in cloud.  Based on the tincap api document on articulate support site, we have created the launch parameters. 

 https://en-uk.articulate.com/tincanapi/

However no matter what we try it keeps giving error - Configuration data is missing or incorrect. 

Can anyone take a look at our launch parameters and see what are we missing.

https://s3.amazonaws.com/santoshjha/articulate/LRSTEST/story.html?endpoint= http%3A%2F%2Flearninglocker.aziksa.com%2Fdata%2FxAPI%2F&auth= ZDgzMTFiMGVjZGZhNDk4Yjc4ZjUxZDYyZjc3N2NhZTQyZWRjZDgxODpmZjMwMDlhYjlmMWI2NzZjZGI5MjVmOTBiN2I0ZmMwMzNjMDQ1MTQz&actor=%7B%22name%22%3A%20%5B%22Vinay%20Prabhu%22%5D%2C%20%22mbox%22%3A%20%5B%22mailto%3Avinay%40aziksa.com%22%5D%7D&activity_id= 6R1Au4exQU5_course_id&registration=760e3480-ba55-4991-94b0-01820dbd23a2

Regards

12 Replies
Ashley Terwilliger-Pollard

Hi Santosh, 

If the URL string sent to the Tin Can API content by your Learning Management System (LMS) is incorrect or invalid, you'll encounter the following error message:

Configuration data is missing or incorrect

To resolve this issue, ensure that your LMS is sending the correct URL string for Tin Can API content. Have you checked in with your LMS team? 

Andrew Downes

Learning Locker doesn't support beta versions of the Tin Can specification, so activity ids that aren't valid IRIs will cause problems. In fact, you shouldn't need to pass the activity id to Storyline, so you can actually delete "&activity_id= 6R1Au4exQU5_course_id" from your url. 

I pulled that out and tried your url and hit this error in the console:

"Mixed Content: The page at 'https://s3.amazonaws.com/santoshjha/articulate/LRSTEST/story.html?endpoint=…ay%40aziksa.com%22%5D%7D&registration=760e3480-ba55-4991-94b0-01820dbd23a2' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://learninglocker.aziksa.com/data/xAPI/activities/state?method=GET'. This request has been blocked; the content must be served over HTTPS."

What this means is: if your content is on HTTPS, your LRS should be on HTTPS too

I tried adding an "s" to the "http" in your endpoint URL (I have no idea if your Learning Locker installation supports https) and the error goes away but the content doesn't load with no error.

Solution: Using a free SCORM Cloud account's HTTPS endpoint (without the activity id parameter) does work and the content plays so I recommend you test your Storyline content using that. 

Mirko Haaser

I am having a very similar problem: not being able to integrate the tin can exported storyline content into my LMS with posting to a learning locker LRS. The message is the same: "Configuration data is missing or incorrect. Please try again.". I tried namely this:

  1. Store the content on FTP that is accessible via HTTP and uploading it to S3
  2. Make sure that content and LRS are both on https
  3. Reentered all URL and other data and double checked the manually composed und encoded URL params.

When i use a Learning Locker as LRS i get that message above. When i upload the content to SCORM Cloud, I can see the content (Hurray) but there is nothing being posted back to SCORM Cloud. The guys at Wax LRS are currently having problems activating my free plan so I could not test it against that LRS.

If i track network traffic (via Chrome plugin), I see no traffic going out despite to my content location. Namely not towards the defined LRS endpoint. This is strange. Any idea on that?

Andrew Downes

For uploaded content, SCORM Cloud added a number of additional query-string parameters specific to SCORM Cloud; this is nothing to worry about and they aren't used by Storyline itself. 

Does the content work if you host the content outside of SCORM Cloud and use the launch url to point it at the SCORM Cloud LRS? 

Can I see your launch URL?

By the way, how are you generating your launch URL? By hand? This is normally something that should be done programmatically by your launch platform as the values are potentially different each time the content is launched. 

Mirko Haaser

Is there a documentation availabl of the URL parameters? Especially for the parameters that are

  1. required by tin can api / xapi?
  2. optional in the scope of tin can api / xapi?
  3. used only in the scope of storyline

The content works while being hosted on S3 and reports back to scorm cloud, see http://pastebin.com/j9nNG9ys

Currently i want to understand how a launch url and the structure has to be and want to implement a solution as a drupal 7 module für a custom build lms afterwards. So, yes. currently by hand and programmatically afterwards.

Andrew Downes

So, Tin Can API is a communication specification designed to be used for any learning experienced and doesn't actually specify a launch mechanism. Most learning experiences (classroom, job based, informal) aren't launched as such. 

What Storyline and other authoring tools follow is another document separate from Tin Can that provides a launch mechanism that can be used to launch javascript based e-learning content that'd to be tracked with Tin Can. 

The parameters specified by that launch mechanism are the ones above. 

SCORM Cloud adds parameters when launching content internally, but those parameters only work with SCORM Cloud. If you tried to use those parameters with another LRS or even with externally hosted content tracked to SCORM Cloud, you'd probably hit difficulties. Best thing is to pretend they aren't there. 

As Drupal is PHP, you should look at this Moodle (also PHP) launch plugin here: https://github.com/garemoko/moodle-mod_tincanlaunch/blob/ed10f51b6b354e26a49772aee848de708adef743/locallib.php#L221

I linked you to the specific function that generates the launch URL that the plugin redirects the user to. 

Mirko Haaser

I just wanted to give you a guick feedback on this: The launch of storyline content and reporting back to Learning Locker, Scorm Cloud and Wax LRS works perfectly. I had difficulties starting the content from S3 and reworked the launch url not from the blog post at learning locker (mentioned above) but from the launch url of scorm cloud (see pastebin above). It seems like storyline needs the actors objectType set to Agent / Group explicitly. 

This is the snippet that i use to generate the launch, based on the moodle snippet (thank you Andrew!):

 // Define the launch url. S3 made some problems (spinning wheel).
$launchurl = 'https://mydomain.com/tincan/storyline/test/story.html';

// Authentication
$endpoint = 'https://lrs.learninglocker.net/data/xAPI/';
$basiclogin = 'e2XXXXXXXXXXXXe53';
$basicpass = '3fXXXXXXXXXXXXXa3';
$basicauth = base64_encode($basiclogin.":".$basicpass);
$auth = 'Basic '. $basicauth;

// Generator the actor.
$actor = json_encode(array('account' => array ('homePage' => 'https://www.my-lms-site.com', 'name' => 'user id of account'), 'name' => 'Firstname Lastname', 'objectType' => 'Agent'));
$registrationuuid = 'my-registration-uuid'; // This could be used to track down the registration (a user taking part at a course).

// Assemble all values as array
$data = array(
"endpoint" => $endpoint,
"auth" => $auth,
"actor" => $actor,
"registration" => $registrationuuid,
);

// generate the url with help of the moodle function @https://github.com/garemoko/moodle-mod_tincanlaunch/blob/ed10f51b6b354e26a49772aee848de708adef743/locallib.php#L239
$url = $launchurl."?".tincanlaunch_http_build_query($newdata,
'',
'&'
);

So for other people having problems getting storyline content work with Learning Locker: 

  • Move your content to different location (FTP / S3)
  • double check the generated launch url
Andrew Downes

Thanks for sharing your final answer. 

I'm surprised that "Storyline needs the actors objectType set to Agent / Group explicitly" and wonder if this is a bug in Storyline or in the LRSs you tested against. This shouldn't be a required property. 

What happens when you don't include it? Does Storyline try to send data to the LRS and it gets rejected, or does it not even try?

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