diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java
index db26374cff6271e52d5e849333c310331f8805a0..c2fd46c03f8287fb439135a2af996dd25478ff58 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java
@@ -164,7 +164,7 @@ public class AssessmentTestComposerController extends MainLayoutBasicController
 	private SelectItemController selectQItemCtrl;
 	private DialogBoxController confirmDeleteCtrl;
 	private StepsMainRunController importTableWizard;
-	private final LayoutMain3ColsController columnLayoutCtr;
+	private LayoutMain3ColsController columnLayoutCtr;
 	
 	private File unzippedDirRoot;
 	private VFSContainer unzippedContRoot;
@@ -217,6 +217,12 @@ public class AssessmentTestComposerController extends MainLayoutBasicController
 		}
 		
 		addLoggingResourceable(LoggingResourceable.wrapTest(testEntry));
+	
+		if(!checkResolvedAssessmentTest()) {
+			VelocityContainer errorVC = createVelocityContainer("error");
+			putInitialPanel(errorVC);
+			return;
+		}
 		
 		// test structure
 		menuTree = new MenuTree("atTree");
@@ -354,6 +360,20 @@ public class AssessmentTestComposerController extends MainLayoutBasicController
 		partEditorFactory(ureq, selectedNode);
 	}
 	
+	private boolean checkResolvedAssessmentTest() {
+		ResolvedAssessmentTest resolvedObject;
+		try {
+			resolvedObject = qtiService.loadAndResolveAssessmentTest(unzippedDirRoot, false, true);
+			if(resolvedObject == null) {
+				return false;
+			}
+			return resolvedObject.getRootNodeLookup().extractIfSuccessful() != null;
+		} catch (Exception e) {
+			logError("QTI 2.1 AssessmentTest is corrupted: " + testEntry, e);
+			return false;
+		}
+	}
+	
 	private void updateTreeModel(boolean forceReload) {
 		resolvedAssessmentTest = qtiService.loadAndResolveAssessmentTest(unzippedDirRoot, forceReload, true);
 		menuTree.setTreeModel(new AssessmentTestEditorAndComposerTreeModel(resolvedAssessmentTest));
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_content/error.html b/src/main/java/org/olat/ims/qti21/ui/editor/_content/error.html
new file mode 100644
index 0000000000000000000000000000000000000000..2793c9fa15ba2524d63e03de200d662e442674b2
--- /dev/null
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/_content/error.html
@@ -0,0 +1 @@
+<div class="o_error">$r.translate("error.assessment.test")</div>
\ No newline at end of file
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties
index 648dd81a5099340f0b3f5f19f8b351ac3aef3d1f..06af8155e964140a0b2c9fdc54acc7ab6755dcd6 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties
@@ -24,6 +24,7 @@ delete.testPart=Wollen Sie den Test-Part mit allen Fragen wirklich l\u00F6schen?
 dy=dx
 editor.sc.title=Single choice
 editor.unkown.title=Unbekanntes interaction
+error.assessment.test=Die Datei konnte nicht gelesen werden. Sie ist entweder korrupt oder mit dem falschen Format gespeichert.
 error.cannot.create.section=Sie k\u00F6nnen hier keine Sektion erstellen.
 error.cannot.delete=Sie d\u00FCrfen diese Ressource nicht l\u00F6schen.
 error.double=$org.olat.ims.qti21.ui\:error.double
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties
index fd79b4173be02f2aff8eb6fb5f247ceac34515ca..ff6d8a27d964e0c643111038b1356980c414b901 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_en.properties
@@ -24,6 +24,7 @@ delete.testPart=Do you really want to delete the test part along with all its qu
 dy=dx
 editor.sc.title=Single choice
 editor.unkown.title=Unkown interaction
+error.assessment.test=The file cannot be interpreted. It seems corrupted or with the wrong format.
 error.cannot.create.section=A section cannot be created everywhere\!
 error.cannot.delete=You cannot delete this object.
 error.double=$org.olat.ims.qti21.ui\:error.double
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties
index cb5c9a2e179c6b2c317ee5bb059aa3b2fab8d19f..ddbd5473317bb8ddb573d6c10c08bdf502d4c289 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_fr.properties
@@ -10,6 +10,7 @@ delete.section=$org.olat.ims.qti.editor\:delete.section
 delete.testPart=Voulez-vous vraiment effacer cette partie du test et toutes les questions qu'elle contient?
 editor.sc.title=Choix simple
 editor.unkown.title=Interaction inconnue
+error.assessment.test=Le fichier n'a pas pu \u00EAtre lu. Il semble soit corrompu soit au mauvais format.
 error.cannot.create.section=Vous ne pouvez pas cr\u00E9er une section ici.
 error.cannot.delete=Vous ne pouvez pas effacer cet \u00E9l\u00E9ment.
 error.double=$org.olat.ims.qti21.ui\:error.double