diff --git a/src/main/java/org/olat/course/assessment/AssessmentMainController.java b/src/main/java/org/olat/course/assessment/AssessmentMainController.java
index bf2002bf26be458347f3be477fd1c08641efc40c..770ee1c8f6d49c4cbee0308cb635aa8caa048ee9 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentMainController.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentMainController.java
@@ -442,7 +442,7 @@ AssessmentMainController(UserRequest ureq, WindowControl wControl, StackedContro
 					// cast should be save, only assessable nodes are selectable
 					if((repoTutor && coachedGroups.isEmpty()) || (callback.mayAssessAllUsers() || callback.mayViewAllUsersAssessments())) {
 						identitiesList = getAllAssessableIdentities();
-						doUserChooseWithData(ureq, this.identitiesList, null, currentCourseNode);
+						doUserChooseWithData(ureq, identitiesList, null, currentCourseNode);
 					} else {
 						doGroupChoose(ureq);
 					}
@@ -705,6 +705,12 @@ AssessmentMainController(UserRequest ureq, WindowControl wControl, StackedContro
 					localUserCourseEnvironmentCache, initialLaunchDates, course, courseNode);
 			wrappedIdentities.add(aiw);
 		}
+		
+		if(userListCtr == null) {
+			//takes too long -> controller disposed
+			return;
+		}
+		
 		// Add the wrapped identities to the table data model
 		AssessedIdentitiesTableDataModel tdm = new AssessedIdentitiesTableDataModel(wrappedIdentities, courseNode, ureq.getLocale(), isAdministrativeUser, mode == MODE_USERFOCUS);
 		tdm.addColumnDescriptors(userListCtr, CMD_CHOOSE_USER, mode == MODE_NODEFOCUS || mode == MODE_GROUPFOCUS || mode == MODE_USERFOCUS);
diff --git a/src/main/java/org/olat/course/assessment/NewCachePersistingAssessmentManager.java b/src/main/java/org/olat/course/assessment/NewCachePersistingAssessmentManager.java
index f36b51f184ae767f1a90b55b777dfe89c8e3414f..f81899e959f3c292cde15a19c9db80cfe0a2764f 100644
--- a/src/main/java/org/olat/course/assessment/NewCachePersistingAssessmentManager.java
+++ b/src/main/java/org/olat/course/assessment/NewCachePersistingAssessmentManager.java
@@ -247,6 +247,18 @@ public class NewCachePersistingAssessmentManager extends BasicManager implements
 				for (Property property:loadedProperties) {
 					addPropertyToCache(m, property);
 				}
+				
+				//If property not found, prefill with default value.
+				if(!m.containsKey(ATTEMPTS)) {
+					m.put(ATTEMPTS, INTEGER_ZERO);
+				}
+				if(!m.containsKey(SCORE)) {
+					m.put(SCORE, FLOAT_ZERO);
+				}
+				if(!m.containsKey(LAST_MODIFIED)) {
+					m.put(LAST_MODIFIED, null);
+				}
+				
 				// we use a putSilent here (no invalidation notifications to other cluster nodes), since
 				// we did not generate new data, but simply asked to reload it. 
 				if (prepareForNewData) {