diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java
index 0f524556962a312e15d92f9a1c4ecece030216c2..78c0e789cd03bd2d02b363d51ffc0805d4017840 100644
--- a/src/main/java/org/olat/course/run/RunMainController.java
+++ b/src/main/java/org/olat/course/run/RunMainController.java
@@ -30,6 +30,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.logging.log4j.Logger;
 import org.olat.core.commons.fullWebApp.LayoutMain3ColsController;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
@@ -118,6 +119,8 @@ import org.springframework.beans.factory.annotation.Autowired;
  */
 public class RunMainController extends MainLayoutBasicController implements GenericEventListener, Activateable2 {
 
+	private static final Logger log = Tracing.createLoggerFor(RunMainController.class);
+
 	public static final String REBUILD = "rebuild";
 	public static final String ORES_TYPE_COURSE_RUN = OresHelper.calculateTypeName(RunMainController.class, CourseModule.ORES_TYPE_COURSE);
 	private final OLATResourceable courseRunOres; //course run ores for course run channel 
@@ -825,11 +828,20 @@ public class RunMainController extends MainLayoutBasicController implements Gene
 		if (currentNodeController != null && !currentNodeController.isDisposed() && !navHandler.isListening(currentNodeController)) {
 			currentNodeController.dispose();
 		}
-		currentNodeController = nclr.getRunController();
 		updateLastUsage(nclr.getCalledCourseNode());
-		Component nodeComp = currentNodeController.getInitialComponent();
-		contentP.setContent(nodeComp);
-		addToHistory(ureq, currentNodeController);
+		try {
+			currentNodeController = nclr.getRunController();
+			Component nodeComp = currentNodeController.getInitialComponent();
+			contentP.setContent(nodeComp);
+			addToHistory(ureq, currentNodeController);
+		} catch (Exception e) {
+			log.error("Error on course node clicked! repositoryEntry={}, node={}, selectedNode={}, subTreeListener={}"
+					, course.getCourseEnvironment().getCourseGroupManager().getCourseEntry().getKey()
+					, nclr.getCalledCourseNode().getIdent()
+					, nclr.getSelectedNodeId()
+					, nclr.isHandledBySubTreeModelListener());
+			log.error("", e);
+		}
 		
 		// set glossary wrapper dirty after menu click to make it reload the glossary
 		// stuff properly when in AJAX mode