Using blob storage for scorm package

Hello Community,
I’m using the latest release of overhangio/openedx-scorm-xblock and when i’m trying to view the scorm package in LMS it’s giving me cross-site reference error and for one scorm package it gives me “Unable to acuire API access” and below errors, please help!!:

0:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - AICCComm - intReCheckLoadedInterval=250
1:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - AICCComm - intReCheckAttemptsBeforeTimeout=240
2:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - ----------------------------------------
3:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - ----------------------------------------
4:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - In Start - Version: 3.8.2 Last Modified=05/22/2020 08:56:27
5:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - Browser Info (Netscape 5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36)
6:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - URL: https://edxcontainer.blob.core.windows.net/edxdev/scorm/85fd6e8aade9452e84e8ba0beca0e5cd/f1d91002af5b89f1a73c88fcb3f9481c764371a0/index_lms_html5.html
7:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - ----------------------------------------
8:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - ----------------------------------------
9:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - In ClearErrorInfo
10:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - GetQueryStringValue Element ‘StandAlone’ Not Found, Returning: empty string
11:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - GetQueryStringValue Element ‘ShowDebug’ Not Found, Returning: empty string
12:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - strStandAlone= strShowInteractiveDebug=
13:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - Standard From Configuration File - SCORM
14:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - Using Standard From Configuration File - SCORM
15:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - In LMSStandardAPI strStandard=SCORM
16:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - Calling Standard Initialize
17:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - In SCORM_Initialize
18:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - In SCORM_ClearErrorInfo
19:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - Grabbing API
20:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - In SCORM_GrabAPI
21:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - Searching with improved ADL algorithm
22:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - In SCORM_GetAPI
23:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - SCORM_GetAPI, searching opener
24:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - In SCORM_ScanParentsForApi, win=https://edxcontainer.blob.core.windows.net/edxdev/scorm/85fd6e8aade9452e84e8ba0beca0e5cd/f1d91002af5b89f1a73c88fcb3f9481c764371a0/launcher.html#
25:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - Error grabbing 1.2 API-SecurityError:Blocked a frame with origin “https://edxcontainer.blob.core.windows.net” from accessing a cross-origin frame.
26:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - Unable to acquire SCORM API:
27:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - SCORM_objAPI=object
28:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - In InitializeExecuted, blnSuccess=false, strErrorMessage=Error - unable to acquire LMS API, content may not play properly and results may not be recorded. Please contact technical support.
29:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - ERROR - LMS Initialize Failed
30:Fri May 22 2020 10:18:21 GMT-0400 (Eastern Daylight Time) - In DisplayError, strMessage=Error - unable to acquire LMS API, content may not play properly and results may not be recorded. Please contact technical support.
31:Fri May 22 2020 10:19:08 GMT-0400 (Eastern Daylight Time) - In IsLoaded, returning -false
32:Fri May 22 2020 10:19:08 GMT-0400 (Eastern Daylight Time) - In IsLoaded, returning -false
33:Fri May 22 2020 10:19:09 GMT-0400 (Eastern Daylight Time) - AICCComm - IFrameLoaded
34:Fri May 22 2020 10:19:09 GMT-0400 (Eastern Daylight Time) - AICCComm - In GetAICCURL

Did you ever solve this? I am hitting the very same issue.

1 Like

This is an issue that is caused by your Scorm package: basically, the Scorm package, which runs in an iframe, attempts to access the parent window. Since the iframe is loaded from the MinIO domain name, it cannot access the parent window, which runs in the LMS or the CMS domain name.

There are different ways to address this: you could customize the storage backend or proxy calls to MinIO. None of these solutions are trivial to implement. I have addressed these issues for a customer, but unfortunately I do not have time at the moment to implement a generic solution.

Anyway, these solutions are only workarounds for a dirty runtime implementation of your Scorm packages, and the actual fix should almost certainly be made upstream…

This is helpful, thank you - I will ask the scorm course creator about the implementation.

Hi @regis!

I’m facing the same issue and I didn’t understand both workarounds you provide. Could you provide us with the specific solution that you applied to your customer?