diff --git a/src/main/java/org/olat/ims/qti21/QTI21Service.java b/src/main/java/org/olat/ims/qti21/QTI21Service.java
index 566f95e5da3e6a7a8c33076c847b80ac8662db2d..e4465d5d4a25617af92bdc1f26ba716e57125cdd 100644
--- a/src/main/java/org/olat/ims/qti21/QTI21Service.java
+++ b/src/main/java/org/olat/ims/qti21/QTI21Service.java
@@ -96,10 +96,12 @@ public interface QTI21Service {
 	
 	/**
 	 * Load the assessmentTest based on the imsmanifest.xml found in the resource
-	 * directory.
+	 * directory. Return null if the imsmanifest.xml is not found.
 	 * 
-	 * @param resourceDirectory
-	 * @return
+	 * @param resourceDirectory The directory where is the package
+	 * @param replace If true updates the cache
+	 * @param debugInfo If true writes more infos 
+	 * @return The resolved assessment test or null if the imsmanifest.xml was not found.
 	 */
 	public ResolvedAssessmentTest loadAndResolveAssessmentTest(File resourceDirectory, boolean replace, boolean debugInfo);
 	
diff --git a/src/main/java/org/olat/ims/qti21/manager/QTI21ServiceImpl.java b/src/main/java/org/olat/ims/qti21/manager/QTI21ServiceImpl.java
index 133f9f0986569c651e02ed4544a52990346139de..de4a1dd201112b72037bc84b19368fdbb3fa7716 100644
--- a/src/main/java/org/olat/ims/qti21/manager/QTI21ServiceImpl.java
+++ b/src/main/java/org/olat/ims/qti21/manager/QTI21ServiceImpl.java
@@ -293,6 +293,9 @@ public class QTI21ServiceImpl implements QTI21Service, UserDataDeletable, Initia
 	@Override
 	public ResolvedAssessmentTest loadAndResolveAssessmentTest(File resourceDirectory, boolean replace, boolean debugInfo) {
         URI assessmentObjectSystemId = createAssessmentObjectUri(resourceDirectory);
+        if(assessmentObjectSystemId == null) {
+        	return null;
+        }
 		File resourceFile = new File(assessmentObjectSystemId);
 		if(replace) {
 			ResolvedAssessmentTest resolvedAssessmentTest = internalLoadAndResolveAssessmentTest(resourceDirectory, assessmentObjectSystemId);
@@ -367,17 +370,22 @@ public class QTI21ServiceImpl implements QTI21Service, UserDataDeletable, Initia
 	@Override
 	public URI createAssessmentObjectUri(final File resourceDirectory) {
 		final String key = resourceDirectory.getAbsolutePath();
-		return resourceToTestURI.computeIfAbsent(key, (directoryAbsolutPath) -> {
-			File manifestPath = new File(resourceDirectory, "imsmanifest.xml");
-			QTI21ContentPackage	cp = new QTI21ContentPackage(manifestPath.toPath());
-			try {
-				Path testPath = cp.getTest();
-				return testPath.toUri();
-			} catch (IOException e) {
-				log.error("", e);
-				return null;
-			}
-		});
+		try {
+			return resourceToTestURI.computeIfAbsent(key, (directoryAbsolutPath) -> {
+				File manifestPath = new File(resourceDirectory, "imsmanifest.xml");
+				QTI21ContentPackage	cp = new QTI21ContentPackage(manifestPath.toPath());
+				try {
+					Path testPath = cp.getTest();
+					return testPath.toUri();
+				} catch (IOException e) {
+					log.error("", e);
+					return null;
+				}
+			});
+		} catch (RuntimeException e) {
+			log.error("", e);
+			return null;
+		}
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
index 6e0716aeef503ab7a328764d4b16e4c697001790..9a27dab82be533bc34cae02734c902e715a9e5b8 100644
--- a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
@@ -241,7 +241,7 @@ public class AssessmentTestDisplayController extends BasicController implements
 		FileResourceManager frm = FileResourceManager.getInstance();
 		fUnzippedDirRoot = frm.unzipFileResource(testEntry.getOlatResource());
 		resolvedAssessmentTest = qtiService.loadAndResolveAssessmentTest(fUnzippedDirRoot, false, false);
-		if(resolvedAssessmentTest.getRootNodeLookup().extractIfSuccessful() == null) {
+		if(resolvedAssessmentTest == null || resolvedAssessmentTest.getRootNodeLookup().extractIfSuccessful() == null) {
         	mainVC = createVelocityContainer("error");
 		} else {
 			currentRequestTimestamp = ureq.getRequestTimestamp();
@@ -269,10 +269,6 @@ public class AssessmentTestDisplayController extends BasicController implements
 		}
         
         mainPanel = putInitialPanel(mainVC);
-        
-        OLATResourceable sessionOres = OresHelper
-        		.createOLATResourceableInstance(AssessmentTestSession.class, candidateSession.getKey());
-        CoordinatorManager.getInstance().getCoordinator().getEventBus().registerFor(this, getIdentity(), sessionOres);
 	}
 	
 	private void immediateEndTestSession(UserRequest ureq) {