403 error referencing /data/swf/

Nov 08, 2011

This problem has been reported in articulate forums back as far as 2007, maybe earlier.  There is a published workaround.  I have followed the published workaround and added a Presenter photo which displays properly.  The 403 (or 404) reference to /data/swf/ still occurs.  It makes no difference if <enablephoto> is true or false.

I am working with a client that has a secure server configured not to respond to requests such as the one above which the server interprets as an attempt to read all the file names in the folder /data/swf/.  The result of the server not responding with 403 or 404 to this directory read request is:  Presenter waits for a minute to timeout and is unresponsive to the student.

I'd appreciate any workaround to remove this reference.

Thanks,

23 Replies
Sam Carter

Brian Batt said:

Hi Sam,

The issue should not be occurring if you added the photo as recommended by the workaround.  Are you sure that you're not seeing a cached version of the project?  Also, did you check the folder permissions on the server side for the swf folder?


I do understand these issues should not be occurring per the workaround... that is why I implemented the workaround / Presenter photo.  Disappointing results.

As per the folder permissions question, I am running the test to demo the illegal file reference using cloud.scorm.com which is a public domain testing utility.  With each test, I delete the prior course completely, and upload a new course.  It is very unlikely that this is a caching issue given that I purge the flash and html cache locally, and upload a new course with each test.

Sam Carter

Brian Batt said:

Hi Sam,

Can you try putting an empty index.html file in the data/swf folder?

Let's assume that your suggestion clears the 403 error.  Adding an empty index.html file is another item I must manually edit in the published result.  This adds to the growing list of items that need to be manually edited, such as changing autoplayduration="5" to autoplayduration="1" in a half-dozen files because Engage doesn't support a 1-second play duration.

I would really appreciate a solution which would allow me to republish without another manual edit.  One more manual edit may not sound like much to ask, but often, a course needs a revision six or twelve months later.  Documenting all these "easy" manual fixes which vary from course to course creates pitfalls and problems for the quality of the delivered product.

Here's a suggestion...  Can I place an empty index.html somewhere in the C:/Program Files/Articulate/ folder so it will be automatically copied?  That way, I'll only have to document the fixes I've installed in /Program Files/ whenever I build a new system disk instead of every time I publish a course.

Brian Batt

Hi Sam,

Typically, you can add a modified file to the following location:

C:\Program Files (x86)\Articulate\Presenter\players\core

However, the data/swf folder is specific to each project & is not generated from a folder template.  Thus, you will have to add that manually.

Just so you know, it's not Articulate that is giving you these errors, but your Web server that's expecting an index file.  Most web servers will ignore these types of errors and proceed with opening the content.  Thus, it may be worth contacting the guys over at scorm.com to see if there's anything they can do on the server side.

Sam Carter

Just so you know, it's not Articulate that is giving you these errors, but your Web server that's expecting an index file.  Most web servers will ignore these types of errors and proceed with opening the content.  Thus, it may be worth contacting the guys over at scorm.com to see if there's anything they can do on the server side.


This is a misinterpretation of the problem reported in this thread.  If you look at first causes of the problem, Articulate is referencing /data/swf/ which the server can interpet as either a reference to a default file (e.g., index.htm, or whatever), or if no default file found, a directory read.  The problem this thread is about refers to a secure client server which does not respond to unauthorized requests like /data/swf/ with either 404 or 403 errors.  Articulate then waits for 1 minute before timing out.  So let me be clear:  I don't mind the 404 Not Found or 403 Authorization required errors.  The error I am reporting is Articulate issuing what amounts to an illegal directory read and waiting one minute for an error response from the server before proceeding.  The course locks up for one minute after issuing a request which requires an error response from the server that never comes.

Your second point, scorm.com is just a testing server which conveniently demonstrates Articulate's directory read request of /data/swf/.  Mentioned earlier, the client production server is a secure server and doesn't respond to directory read requests like /data/swf/.  There is nothing they are going to do on the server side to change things.

Brian Batt

Hi Sam,

I just ran 3 trace logs on the same content item that was located on the SCORM Cloud, Dropbox, and a private server.  The SCORM Cloud site was the only one that displayed the 401 error.  

I tried some other workarounds with my content & I wasn't able to get past the 401 errors in the SCORM Cloud.  Thus, it's a server setting that is causing the issue.

Joe Donnelly

Hey Sam and Brian, 

Sorry for the confusion.  We do have a disconnect here and I just want to figure out if I can help in any way.  Brian seems to think the issue is the SCORM Cloud, you do not, that is why I started there.

I just saw the screenshot from above with the debugger below it and Brian's trace log comment and it seemed like something we should take a look at.  I hesitate to make broad assertions about whether something works or not without seeing the course in action.  

If you would like for me to take a look at the course, I would be happy to.  If I see anything out of the ordinary, I can escalate the issue to our development team to see if there is something we can do on our side, or if there is a path that I can set Brian on.

Thank you,

Joe

Sam Carter

Joe Donnelly said:

Hey Sam and Brian, 

Sorry for the confusion.  We do have a disconnect here and I just want to figure out if I can help in any way.  Brian seems to think the issue is the SCORM Cloud, you do not, that is why I started there.

I just saw the screenshot from above with the debugger below it and Brian's trace log comment and it seemed like something we should take a look at.  I hesitate to make broad assertions about whether something works or not without seeing the course in action.  

If you would like for me to take a look at the course, I would be happy to.  If I see anything out of the ordinary, I can escalate the issue to our development team to see if there is something we can do on our side, or if there is a path that I can set Brian on.

Thank you,

Joe


Thanks Joe.  I don't think there is anything your development team needs to do.

Sam Carter

I've continued working on this problem and confirmed that the "401 Authentication Required" request appears ONLY when the quiz is added to the course.  It doesn't appear to have anything to do with the Presenter Photo in this case.

I published the quiz separately and tested it on the cloud LMS.  No 401 Authentication Required error references.  Presenter must generate this error reference when a quiz is added to the course.

As a last resort, I tried the suggestion of adding index.htm and index.html to the /data/swf/ folder in an attempt to catch the reference to /data/swf/ as a "default file".  The default files, if any, are a server configuration option.  I cannot speak for my client's server, but the scorm cloud server doesn't seem to have a default file.  Here's the error:

The scorm cloud LMS is operating correctly, generating the "401 Authorization Required" error.  It is not an error that the scorm cloud server doesn't assume a default file index.htm or index.html.

As a reminder, I am looking for ways to eliminate this error-generating path reference from Articulate courses.  My client's server doesn't behave as well as the scorm cloud and as a consequence, the course hangs waiting for a 60 second timeout following no-response from the server.

Any ideas on what to try next would be appreciated.

Sam Carter

I've attached a source zip file for a *very* small test file, two slides: intro slide that pauses, quiz slide.  No audio, no images.

The "401 Authentication Required" occurs when the user progresses from slide 1 to slide 2 which loads the quiz.

Publish these two slides to a server, then view player.html.  Click to slide 2, view the "401 Authentication Required" (or "403 Forbidden") with your choice of IE, Firefox, Chrome.  You will need to open a developer window: IE9: F12, Chrome: ctrl-shift-I, Firefox(with Firebug): F12.

IE 9 snapshot:

Chrome snapshot:

Firefox/Firebug:

Presenter has a similar, but resolvable bug if the "presenter photo" checkbox is selected without a photo.  This is not that problem, though it may be resolvable by selecting or deselecting some publish-time option in Presenter or Quizmaker.

I'll offer a $200 reward to anyone that can figure out a workaround which will eliminate the Presenter/Quizmaker reference to "/data/swf/".  Just contact me through PM.

David Burton

Sam,

I've been assigned to this issue and will follow up with you when I've completed my testing.

Please note, I was able to reproduce the 401 errors in TestTrack and my own web server. However, both servers did not lock me out of the presentation and allowed the quiz to load. I do understand a secure server could be configured to block all other incoming requests after issuing a 401 but would like to have you test this from your end (read below).

If a Presenter project is published to a directory path deeper than 256 characters, the embedded quiz path would be on the far end of this path. In this situation and without warning or notice, some of the files required to load the quiz will not get published, thus locking the presentation. Please test your original published content from your local computer to ensure the issue you are experiencing is not related.

Thank you for your cooperation! I will touch base with you shortly.

David Burton

Sam,

Since it's important a workaround is streamlined, it might take a bit longer to find a global option. With that said I have the following information for you.

The issue is reprodicible when:

1. You include the Presenter Panel in the Player Template, but you are using slide-level-presenters (selective presenters from the slide properties) and not every slide contains a presenter.

2. You include the Presenter Panel in the Player Template but are **not** using any presenters in the entire project, including selections made in the Slide properties (no presenter).

3. You have selected a single presenter from the publish dialog but the presenter selected does not have a photo associated with it.

If  you assign a single presenter with a photo from the publish dialog, the 401 error should not occur. Again and in my testing, it's when you add this presenter in the slide properties manager, the 401 error occurs.

So remember, if you are **not** using or do not need a presenter, make sure the presenter panel is **not** checked in the Player Properties --> Layout Tab.

Closing:

======

For some reason, I had to create a new Player Properties template from the project you supplied. I found when making the necessary changes noted above, they would not always get applied to the (In Project) template. To test what I have shared here, please use a new project to ensure our test results are the same. I used the Default Corporate Communications Template and then later modified this to resemble your template.

I am still looking for a global workaround to this issue. Thanks again for your patience.

Sam Carter

David,

I've tried to be specific about identifying two cases that Presenter will pull a reference to /data/swf/.  The are:

 1 - Choosing a presenter panel with no image.  This problem is documented and has known workarounds.

 2 - Loading the Quiz slide also generates the 401/403 error that has no workaround.  It doesn't seem to be related to the presenter photo.

I tried using the corporate communications template and retested.  I still get the 401/403 error when I click PLAY/PAUSE when moving from slide 1 to slide 2.  (Slide 2 has the Quiz).

David Burton

Sam,

Thank you for sharing your discovery. This issue has been resubmitted for further review.

Closing:

Although the server(s) I tested from are recording 401/403 errors, the content was always allowed to play without issue. The server you are accessing appears to block additional GET requests after issuing a 401/403; this seems to be the effect of an aggressive security protocol not seen very often in the public domain. I feel it's important to point this out because not all users will ever experience what you have (content locking up), unless they are accessing content served in a similar way or the content was not complete when uploaded to the server.

Thanks again, for helping to identify factors contributing to the 401/403 errors. I will be sure to follow up when I test what you have discovered.

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