diff --git a/src/main/java/org/olat/notifications/NotificationsManagerImpl.java b/src/main/java/org/olat/notifications/NotificationsManagerImpl.java
index bf513b721f56adb94114f3046acf21a3d48c536c..d27a6406d96d65eaf45f192151fec2e80bdfc817 100644
--- a/src/main/java/org/olat/notifications/NotificationsManagerImpl.java
+++ b/src/main/java/org/olat/notifications/NotificationsManagerImpl.java
@@ -613,15 +613,24 @@ public class NotificationsManagerImpl extends NotificationsManager implements Us
 	 * subidentifier.
 	 */
 	private Publisher getPublisher(String resName, Long resId, String subidentifier, boolean forUpdate) {
+
 		StringBuilder q = new StringBuilder();
 		q.append("select pub from ").append(PublisherImpl.class.getName()).append(" pub ")
-		 .append(" where pub.resName=:resName and pub.resId = :resId and pub.subidentifier = :subidentifier");
+		 .append(" where pub.resName=:resName and pub.resId = :resId");
+		if(StringHelper.containsNonWhitespace(subidentifier)) {
+			q.append(" and pub.subidentifier=:subidentifier");
+		} else {
+			q.append(" and (pub.subidentifier='' or pub.subidentifier is null)");
+		}
 		
 		TypedQuery<Publisher> query = DBFactory.getInstance().getCurrentEntityManager()
 				.createQuery(q.toString(), Publisher.class)
 				.setParameter("resName", resName)
-				.setParameter("resId", resId.longValue())
-				.setParameter("subidentifier", subidentifier);
+				.setParameter("resId", resId.longValue());
+
+		if(StringHelper.containsNonWhitespace(subidentifier)) {
+			query.setParameter("subidentifier", subidentifier);
+		}
 		if(forUpdate) {
 			query.setLockMode(LockModeType.PESSIMISTIC_WRITE);
 		}