diff --git a/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java b/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java
index b82d90a28ae0eb643133b9e9d60da4f05c3cd86a..b88f84bdb586c6d6ceca4f970aa4b92dda13e62a 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java
@@ -310,7 +310,9 @@ public class FileUploadController extends FormBasicController {
 				fileEl.clearError();
 			} else if(metaDataCtr != null) {
 				String filename = fileEl.getUploadFileName();
-				if(!FileUtils.validateFilename(filename)) {
+				if(filename == null) {
+					metaDataCtr.getFilenameEl().setExampleKey("mf.filename.warning", null);
+				} else if(!FileUtils.validateFilename(filename)) {
 					String suffix = FileUtils.getFileSuffix(filename);
 					if(suffix != null && suffix.length() > 0) {
 						filename = filename.substring(0, filename.length() - suffix.length() - 1);
diff --git a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java
index a67e1a5e219a9088e0a44e6a73798f2592118ced..bba5000030c01bb284bddbb616a09adaba03c344 100644
--- a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java
+++ b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java
@@ -495,6 +495,8 @@ public class GTAManagerImpl implements GTAManager, DeletableGroupData {
 
 	@Override
 	public List<BusinessGroup> filterBusinessGroups(List<BusinessGroup> groups, GTACourseNode cNode) {
+		if(groups == null || groups.isEmpty()) return new ArrayList<>(1);
+		
 		List<BusinessGroup> filteredGroups = new ArrayList<>();
 
 		ModuleConfiguration config = cNode.getModuleConfiguration();
diff --git a/src/main/java/org/olat/ims/qti21/questionimport/CSVToAssessmentItemConverter.java b/src/main/java/org/olat/ims/qti21/questionimport/CSVToAssessmentItemConverter.java
index 959dd90652d3d7af58294dd5607ca3d5aae07580..34ef25e428ac5dacc2e04481b2b10be813db6450 100644
--- a/src/main/java/org/olat/ims/qti21/questionimport/CSVToAssessmentItemConverter.java
+++ b/src/main/java/org/olat/ims/qti21/questionimport/CSVToAssessmentItemConverter.java
@@ -334,12 +334,17 @@ public class CSVToAssessmentItemConverter {
 	
 	private void build() {
 		if(currentItem != null) {
-			String question = currentItem.getItemBuilder().getQuestion();
-			if(!StringHelper.isHtml(question)) {
-				question = "<p>" + question + "</p>";
+			try {
+				String question = currentItem.getItemBuilder().getQuestion();
+				if(!StringHelper.isHtml(question)) {
+					question = "<p>" + question + "</p>";
+				}
+				currentItem.getItemBuilder().setQuestion(question);
+				currentItem.getItemBuilder().build();
+			} catch (Exception e) {
+				log.error("", e);
+				currentItem.setHasError(true);
 			}
-			currentItem.getItemBuilder().setQuestion(question);
-			currentItem.getItemBuilder().build();
 		}
 	}
 	
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 efad27cece58dc2e0a36d1416683f8f0e0decacc..1c862478460845f07cf5b7b6b85f5790fa932984 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
@@ -713,12 +713,17 @@ public class AssessmentTestComposerController extends MainLayoutBasicController
 		TreeNode sectionNode = getNearestSection(selectedNode);
 		
 		String firstItemId = null;
+		boolean errorOnImport = false;
 		Map<AssessmentItemRef,AssessmentItem> flyingObjects = new HashMap<>();
 		try {
 			AssessmentSection section = (AssessmentSection)sectionNode.getUserObject();
-			
 			List<AssessmentItemAndMetadata> itemsAndMetadata = importPackage.getItems();
 			for(AssessmentItemAndMetadata itemAndMetadata:itemsAndMetadata) {
+				if(itemAndMetadata.isHasError()) {
+					errorOnImport = true;
+					continue;
+				}
+				
 				AssessmentItemBuilder itemBuilder = itemAndMetadata.getItemBuilder();
 				AssessmentItem assessmentItem = itemBuilder.getAssessmentItem();
 				AssessmentItemRef itemRef = doInsert(section, assessmentItem);
@@ -731,19 +736,24 @@ public class AssessmentTestComposerController extends MainLayoutBasicController
 				flyingObjects.put(itemRef, assessmentItem);
 			}
 		} catch (URISyntaxException e) {
-			showError("error.import.question");
+			errorOnImport = true;
 			logError("", e);
 		}
+		if(errorOnImport) {
+			showError("error.import.question");
+		}
 		
-		//persist metadata
-		doSaveAssessmentTest(flyingObjects);
-		doSaveManifest();
-		updateTreeModel(false);
+		if(firstItemId != null) {
+			//persist metadata
+			doSaveAssessmentTest(flyingObjects);
+			doSaveManifest();
+			updateTreeModel(false);
 		
-		TreeNode newItemNode = menuTree.getTreeModel().getNodeById(firstItemId);
-		menuTree.setSelectedNode(newItemNode);
-		menuTree.open(newItemNode);
-		partEditorFactory(ureq, newItemNode);
+			TreeNode newItemNode = menuTree.getTreeModel().getNodeById(firstItemId);
+			menuTree.setSelectedNode(newItemNode);
+			menuTree.open(newItemNode);
+			partEditorFactory(ureq, newItemNode);
+		}
 	}
 	
 	private AssessmentItemRef doInsert(AssessmentSection section, AssessmentItem assessmentItem)