diff --git a/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java b/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java
index a14da32762a958d186bcf4d4a94e1f8a94e8590f..f8d705d36b4b7cf9496d46a4e404e400169a65d2 100644
--- a/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java
+++ b/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java
@@ -41,6 +41,8 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.gui.control.generic.iframe.DeliveryOptions;
+import org.olat.core.gui.control.generic.messages.MessageController;
+import org.olat.core.gui.control.generic.messages.MessageUIFactory;
 import org.olat.core.logging.AssertException;
 import org.olat.core.util.CodeHelper;
 import org.olat.core.util.Formatter;
@@ -208,7 +210,9 @@ public class ScormRunController extends BasicController implements ScormAPICallb
 			}
 		} else if (source == chooseScormRunMode) {
 			doLaunch(ureq, true);
-			scormDispC.activate();
+			if(scormDispC != null) {
+				scormDispC.activate();
+			}
 		}
 	}
 
@@ -244,6 +248,13 @@ public class ScormRunController extends BasicController implements ScormAPICallb
 		startPage.contextPut("isassessable", Boolean.valueOf(isAssessable));
 		main.setContent(startPage);
 	}
+	
+	private void doSetMissingResourcesWarning(UserRequest ureq) {
+		String text = translate("error.cprepoentrymissing.user");
+		MessageController missingCtrl = MessageUIFactory.createWarnMessage(ureq, getWindowControl(), null, text);
+		listenTo(missingCtrl);
+		main.setContent(missingCtrl.getInitialComponent());
+	}
 
 	private void doLaunch(UserRequest ureq, boolean doActivate) {
 		ureq.getUserSession().getSingleUserEventCenter()
@@ -254,16 +265,21 @@ public class ScormRunController extends BasicController implements ScormAPICallb
 			// instance
 			// of this controller.
 			// need to be strict when launching -> "true"
-			RepositoryEntry re = ScormEditController.getScormCPReference(config, true);
-			if (re == null)
-				throw new AssertException("configurationkey 'CONFIG_KEY_REPOSITORY_SOFTKEY' of BB CP was missing");
+			RepositoryEntry re = ScormEditController.getScormCPReference(config, false);
+			if (re == null) {
+				doSetMissingResourcesWarning(ureq);
+				return;
+			}
 			cpRoot = FileResourceManager.getInstance().unzipFileResource(re.getOlatResource());
 			addLoggingResourceable(LoggingResourceable.wrapScormRepositoryEntry(re));
 			// should always exist because references cannot be deleted as long
 			// as
 			// nodes reference them
-			if (cpRoot == null)
-				throw new AssertException("file of repository entry " + re.getKey() + " was missing");
+			if (cpRoot == null) {
+				doSetMissingResourcesWarning(ureq);
+				logError("File of repository entry " + re.getKey() + " was missing", null);
+				return;
+			}
 		}
 		// else cpRoot is already set (save some db access if the user opens /
 		// closes / reopens the cp from the same CPRuncontroller instance)
diff --git a/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_de.properties
index 1108b6dd64fd878f08b11fbf228721748e869320..79b172b0a36de745ac9bc892c743b8995dfa5dcc 100644
--- a/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_de.properties
@@ -36,7 +36,8 @@ command.showscorm=Lernmodul starten
 condition.accessibility.title=Zugang
 cutvalue.label=Notwendige Punktzahl f\u00FCr 'bestanden'
 cutvalue.validation=Geben Sie eine Ganzzahl ein
-error.cprepoentrymissing=Der SCORM-Lerninhalt, den Sie anzeigen m\u00F6chten, wurde in der Zwischenzeit in der Ablage der Lernressourcen gel\u00F6scht 
+error.cprepoentrymissing=Der SCORM-Lerninhalt, den Sie anzeigen m\u00F6chten, wurde in der Zwischenzeit in der Ablage der Lernressourcen gel\u00F6scht
+error.cprepoentrymissing.user=Der SCORM-Lerninhalt den Sie anzeigen m\u00F6chten existiert nicht mehr. Bitte kontaktieren Sie ihren Kursbetreuer.
 error.launch=SCORM-Lerninhalt konnte nicht gestartet werden.
 error.noreference.long=F\u00FCr "{0}" muss in der Konfiguration ein SCORM-Lerninhalt im Tab "Lerninhalt" ausgew\u00E4hlt werden.
 error.noreference.short=Es ist noch kein SCORM-Lerninhalt f\u00FCr "{0}" ausgew\u00E4hlt.
diff --git a/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_en.properties
index 3d167a7615065fcb94522063869d02e07d5acd50..949a48036f2f4d2c23b6bad3c2396f09c45b6384 100644
--- a/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/scorm/_i18n/LocalStrings_en.properties
@@ -43,6 +43,7 @@ condition.accessibility.title=Access
 cutvalue.label=Score needed to pass
 cutvalue.validation=Please enter an integer
 error.cprepoentrymissing=This SCORM learning content was deleted in the meantime within the storage folder of learning resources.
+error.cprepoentrymissing.user=The SCORM learning content you were trying to access doesn't exist anymore. Please contact your course coach.
 error.launch=Unable to start SCORM learning content.
 error.noreference.long=For "{0}" you have to select a SCORM learning content in the tab "Learning content" within the configuration section.
 error.noreference.short=No SCORM learning content selected for "{0}" yet.