Breaking Changes in Engine 21.1


Note: If you are upgrading from a version of Engine before 20.1, please see this Breaking Changes for 20.1 article. Everything in that article will apply as well.

Deprecation Notice

This is the last release in which the following are supported:

  • V1 API
  • Legacy player (has not been the default player since 2016.1)
  • Internet Explorer -- all versions (version 8 and below and all versions for Media Content are already not supported)

You should evaluate your current usage of these deprecated features and start planning for how to migrate away from them before the next major Engine release.

Things Changed or Removed in Engine 21.1

Removed Support for IE 9 & 10 and PlayerInternetExplorerCompatibilityMode

In previous versions, the setting PlayerInternetExplorerCompatibilityMode could be used to force Internet Explorer into various compatibility modes when the player launched. With our drop of support for versions before IE 11, this is no longer useful, and so has been removed.

Removed Package Properties Editor

The Package Properties Editor is no longer available in this version of Engine. After upgrading to 21.1, configuration changes that would have been made through the Package Properties Editor should be made through either the configuration file or the configuration API.

Package Property Presets that would have been set through the Package Property Editor can no longer be set. The following integration method was also removed as it is no longer used:


The following integration methods, which allowed the default values for each package property to be overridden, were removed. If you were using these methods to change the default to a constant value, you should modify your upgrade configuration file to have this default value before running the Upgrade tool. Otherwise, please reach out to support for advice on migrating more complicated logic.

  • DefaultShowFinishButton()
  • DefaultShowCloseItem()
  • DefaultShowHelp()
  • DefaultShowProgressBar()
  • DefaultUseMeasureProgressBar()
  • DefaultShowCourseStructure()
  • DefaultCourseStructureStartsOpen()
  • DefaultShowNavBar()
  • DefaultShowTitleBar()
  • DefaultEnableFlowNav()
  • DefaultEnableChoiceNav()
  • DefaultDesiredWidth()
  • DefaultDesiredHeight()
  • DefaultDesiredFullScreen()
  • DefaultCourseStructureWidth()
  • DefaultScoLaunchType()
  • DefaultPlayerLaunchType()
  • DefaultIntermediateScoSatisfiedNormalExitAction()
  • DefaultIntermediateScoSatisfiedSuspendExitAction()
  • DefaultIntermediateScoSatisfiedTimeoutExitAction()
  • DefaultIntermediateScoSatisfiedLogoutExitAction()
  • DefaultIntermediateScoNotSatisfiedNormalExitAction()
  • DefaultIntermediateScoNotSatisfiedSuspendExitAction()
  • DefaultIntermediateScoNotSatisfiedTimeoutExitAction()
  • DefaultIntermediateScoNotSatisfiedLogoutExitAction()
  • DefaultFinalScoCourseSatisfiedNormalExitAction()
  • DefaultFinalScoCourseSatisfiedSuspendExitAction()
  • DefaultFinalScoCourseSatisfiedTimeoutExitAction()
  • DefaultFinalScoCourseSatisfiedLogoutExitAction()
  • DefaultFinalScoCourseNotSatisfiedNormalExitAction()
  • DefaultFinalScoCourseNotSatisfiedSuspendExitAction()
  • DefaultFinalScoCourseNotSatisfiedTimeoutExitAction()
  • DefaultFinalScoCourseNotSatisfiedLogoutExitAction()
  • DefaultDisableRightClick()
  • DefaultPreventWindowResize()
  • DefaultStatusDisplay()
  • DefaultScoreRollupMode()
  • DefaultStatusRollupMode()
  • DefaultApplyRollupStatusToSuccess()
  • DefaultFirstScoIsPretest()
  • DefaultWrapScoWindowWithApi()
  • DefaultFinishCausesImmediateCommit()
  • DefaultInternetExplorerCompatibilityMode()
  • DefaultDebugToCapture()
  • DefaultCaptureHistory()
  • DefaultCaptureHistoryDetailed()
  • DefaultCommMaxFailedSubmissions()
  • DefaultCommCommitFrequency()
  • DefaultInvalidMenuItemAction()
  • DefaultAlwaysFlowToFirstSco()
  • DefaultLogoutCausesPlayerExit()
  • DefaultResetRunTimeData()
  • DefaultOfflineSynchMode()
  • DefaultValidateInteractionResponses()
  • DefaultLookaheadSequencerMode()
  • DefaultScoreOverridesStatus()
  • DefaultAllowCompleteStatusChange()
  • DefaultScaleRawScore()
  • DefaultRollupEmptySetToUnknown()
  • DefaultReturnToLmsAction()
  • DefaultUseQuickLookaheadSequencer()
  • DefaultForceDisableRootChoice()
  • DefaultRollupRuntimeAtScoUnload()
  • DefaultForceObjectiveCompletionSetByContent()
  • DefaultInvokeRollupAtSuspendAll()
  • DefaultCompletionStatOfFailedSuccessStat()
  • DefaultSatisfiedCausesCompletion()
  • DefaultMakeStudentPrefsGlobalToCourse()
  • DefaultLaunchCompletedRegsAsNoCredit()
  • DefaultIsCompletionTracked()
  • DefaultSatisfactionTracked()
  • DefaultIsScoreTracked()
  • DefaultIsIncompleteScoreMeaningful()
  • DefaultIsIncompleteSatisfactionMeaningful()
  • DefaultSuspendDataMaxLength()
  • DefaultTimeLimit()
  • DefaultIsAvailableOffline()

The following integration method related to the Package Properties Editor was also removed:

  • GetScormEngineUtilsUrl()

The V1 /{tenant}/courses/{courseId}/packagePropertiesLink endpoint will now return a 404.

The following configuration settings related to the Package Properties Editor were also deleted:

  • RusticiEngineScriptsUrl/ScormEngineScriptsUrl
  • UseCompressedJavascript
  • X_PackagePropertiesFirst
  • PackagePropertiesLocation

Removed Web Controls (.NET only)

The following .NET Web Controls were removed:

  • ActivityTreeControl
  • FilesystemImportControl
  • FromScratchImportControl
  • HttpImportControl
  • ImportControl
  • LaunchHistoryControl
  • LegacyImportControl
  • UploadImportControl
  • UploadImportControl2

The following integration methods, which were used by the Web Controls, were removed:

  • PerformPostUploadActions()
  • GetFilePathToContent()

Switched default error code for an expired token

Previously an expired token would return a 500 error code unless X_Use403ResponseForExpiredToken was set to true. Now, a 403 response will always be returned for expired tokens and X_Use403ResponseForExpiredToken has been deleted.

Removed old Offline integration methods

The following integration methods were used by the offline extension in older versions, but are no longer used, and were removed in this release:

  • OfflineGetCatalog()
  • OfflineGetExternalPackageId()
  • OfflineGetExternalRegistrationId()
  • OfflineGetZippedPackageUrl()

Removed legacy integration methods

  • GetWebPathToContent()

Removed cache settings

ConfigurationCacheMaxEntries and ConfigurationCacheSeconds have been removed, as the configuration cache has been replaced with a more general cache. See "Caching" section in the setup and installation docs for available settings.


Require playerConfigurationUrl.json file for Remote Deliver deployments

For those using our RemoteDeliverPageUrl setting in order to configure Engine to launch the player page from a location other than its default in the Engine web application, there is a new requirement. In order to close a security vulnerability in how we pass the configuration url to the player, we now create the path to that relative to the player page itself.


This works fine for all normal deployments, but for those using RemoteDeliverPageUrl, where the player page is on a completely different domain/server from Engine, it will not work. To work around this, there is now a file, playerConfigurationUrl.json, in the /player folder that is deployed on the remote server. This will need to be modified to include the appropriate playerConfigurationUrl property value that points back to the page in Engine (eg, ""). At runtime, for these remote deployments, Engine will retrieve this JSON file to determine what url to use to retrieve the player configuration data.

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request
Powered by Zendesk