diff --git a/src/main/java/org/olat/core/servlets/HeadersFilter.java b/src/main/java/org/olat/core/servlets/HeadersFilter.java
index e916e77026bf8b37335eeb1e6349ff0b0cb05ef6..333a7e90bab02372d9bac0df3dfe1a622b824d7f 100644
--- a/src/main/java/org/olat/core/servlets/HeadersFilter.java
+++ b/src/main/java/org/olat/core/servlets/HeadersFilter.java
@@ -64,7 +64,9 @@ public class HeadersFilter implements Filter {
 
 	@Override
 	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
-		if(securityModule == null) {
+		if(securityModule == null || edubaseModule != null
+				|| analyticsModule != null || card2BrainModule != null
+				|| openMeetingsModule != null) {
 			CoreSpringFactory.autowireObject(this);
 		}
 		addSecurityHeaders(response);
@@ -230,8 +232,9 @@ public class HeadersFilter implements Filter {
 	}
 	
 	private void appendOpenMeetingsUrl(StringBuilder sb) {
-		if(!openMeetingsModule.isEnabled()) return;
-		appendUrl(sb, openMeetingsModule.getOpenMeetingsURI().toString());
+		if(openMeetingsModule != null && openMeetingsModule.isEnabled()) {
+			appendUrl(sb, openMeetingsModule.getOpenMeetingsURI().toString());
+		}
 	}
 	
 	private void appendGoogleAnalyticsUrl(StringBuilder sb) {
@@ -241,13 +244,15 @@ public class HeadersFilter implements Filter {
 	}
 	
 	private void appendEdubaseUrl(StringBuilder sb) {
-		if(!edubaseModule.isEnabled()) return;
-		appendUrl(sb, edubaseModule.getLtiBaseUrl());
+		if(edubaseModule != null && edubaseModule.isEnabled()) {
+			appendUrl(sb, edubaseModule.getLtiBaseUrl());
+		}
 	}
 	
 	private void appendCard2BrainUrl(StringBuilder sb) {
-		if(!card2BrainModule.isEnabled()) return;
-		appendUrl(sb, card2BrainModule.getVerifyLtiUrl());
+		if(card2BrainModule != null && card2BrainModule.isEnabled()) {
+			appendUrl(sb, card2BrainModule.getVerifyLtiUrl());
+		}
 	}
 	
 	private void appendUrl(StringBuilder sb, String urlString) {
diff --git a/src/main/java/org/olat/search/ui/SearchInputController.java b/src/main/java/org/olat/search/ui/SearchInputController.java
index 86c3084a5b48a0a887bc8a74be3417c87a60f392..196b387b347ab972389a379ed3dd8adc2d85c1f9 100644
--- a/src/main/java/org/olat/search/ui/SearchInputController.java
+++ b/src/main/java/org/olat/search/ui/SearchInputController.java
@@ -471,7 +471,9 @@ public class SearchInputController extends FormBasicController implements Generi
 			condQueries = getCondQueryStrings(condSearchStrings, parentCtxt, docType, rsrcUrl);
 			SearchResults searchResults = searchClient.doSearch(query, condQueries, ureq.getIdentity(), ureq.getUserSession().getRoles(), firstResult, maxReturns, true);
 
-			if (firstResult == 0 && searchResults.size() == 0 && StringHelper.containsNonWhitespace(query) && !query.endsWith(FUZZY_SEARCH)) {
+			if(searchResults == null) {
+				getWindowControl().setWarning(translate("search.service.unexpected.error"));
+			} else if (firstResult == 0 && searchResults.size() == 0 && StringHelper.containsNonWhitespace(query) && !query.endsWith(FUZZY_SEARCH)) {
 				// result-list was empty => first try to find word via spell-checker
 				if (doSpellCheck) {
 					Set<String> didYouMeansWords = searchClient.spellCheck(searchString);
@@ -485,7 +487,7 @@ public class SearchInputController extends FormBasicController implements Generi
 				}
 			}
 			
-			if(firstResult == 0 && searchResults.getList().isEmpty()) {
+			if(firstResult == 0 && searchResults != null && searchResults.getList().isEmpty()) {
 				showInfo("found.no.result.try.fuzzy.search");
 			}
 			return searchResults;