diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java
index 4e92bd3640450d3765176046aced08900e257a79..eb5ca4944d9df2355897eea04660a2a21c57bdaa 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java
@@ -25,6 +25,7 @@ package de.ozgcloud.operator.keycloak.user;
 
 import java.util.Optional;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import de.ozgcloud.operator.keycloak.KeycloakGenericRemoteService;
@@ -55,6 +56,10 @@ class KeycloakUserPreconditionService {
 			return groupError;
 		}
 
+		if (!userHasEmail(user)) {
+			return Optional.of(String.format("User Email does not yet exist"));
+		}
+
 		return Optional.empty();
 	}
 
@@ -78,4 +83,10 @@ class KeycloakUserPreconditionService {
 				.map(groupName -> String.format("Group %s for realm %s does not exist yet", groupName, realm))
 				.findAny();
 	}
+
+	boolean userHasEmail(OzgCloudKeycloakUser user) {
+		String email = user.getSpec().getKeycloakUser().getEmail();
+		return !StringUtils.isEmpty(email);
+	}
+
 }
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionServiceTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionServiceTest.java
index 1800a5a8d2d84a9e76f61d80d64288b08f024a8d..1ca6e80975e0766071fe6683d9308461234f8de7 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionServiceTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionServiceTest.java
@@ -90,17 +90,57 @@ class KeycloakUserPreconditionServiceTest {
 			assertThat(response).isPresent();
 		}
 
+		@Test
+		void shouldReturnErrorIfUserDoesNotHaveEmail() {
+			var user = OzgCloudKeycloakUserTestFactory.create();
+			doReturn(true).when(service).realmExists(REALM);
+			doReturn(Optional.empty()).when(service).clientsExists(any(), any());
+			doReturn(Optional.empty()).when(service).groupsExists(any(), any());
+			doReturn(false).when(service).userHasEmail(user);
+
+			var response = service.getPreconditionErrors(user);
+
+			assertThat(response).isPresent();
+		}
+
 		@Test
 		void shouldReturnEmptyIfRealmExists() {
+			var user = OzgCloudKeycloakUserTestFactory.create();
+			doReturn(true).when(service).userHasEmail(user);
 			doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
 			doReturn(Optional.empty()).when(service).clientsExists(any(), any());
 			doReturn(Optional.empty()).when(service).groupsExists(any(), any());
 
-			var response = service.getPreconditionErrors(OzgCloudKeycloakUserTestFactory.create());
+			var response = service.getPreconditionErrors(user);
+
+			assertThat(response).isEmpty();
+		}
+
+		@Test
+		void shouldReturnEmptyIfuserHasEmail() {
+			var user = OzgCloudKeycloakUserTestFactory.create();
+			doReturn(true).when(service).userHasEmail(user);
+			doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
+			doReturn(Optional.empty()).when(service).clientsExists(any(), any());
+			doReturn(Optional.empty()).when(service).groupsExists(any(), any());
+
+			var response = service.getPreconditionErrors(user);
 
 			assertThat(response).isEmpty();
 		}
 
+		@Test
+		void shouldCheckuserHasEmail() {
+			var user = OzgCloudKeycloakUserTestFactory.create();
+			doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
+			doReturn(Optional.empty()).when(service).clientsExists(any(), any());
+			doReturn(Optional.empty()).when(service).groupsExists(any(), any());
+
+			service.getPreconditionErrors(user);
+
+			verify(service).userHasEmail(user);
+		}
+
 		@Test
 		void shouldCheckIfKeycloakClientExists() {
 			doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
@@ -145,55 +185,87 @@ class KeycloakUserPreconditionServiceTest {
 	}
 
 	@Nested
-	class TestClientExists {
+	class TestuserHasEmail {
 
 		@Test
-		void shouldRespondMissingRealm() {
-			when(keycloakGenericRemoteService.getByClientId(any(), any())).thenReturn(Optional.empty());
-
-			var rsp = service.clientsExists(OzgCloudKeycloakUserTestFactory.create(), null);
+		void shouldResponduserHasEmail() {
+			var response = service.userHasEmail(OzgCloudKeycloakUserTestFactory.create());
 
-			assertThat(rsp).isPresent();
+			assertThat(response).isTrue();
 		}
 
 		@Test
-		void shouldReturnClientExists() {
-			when(keycloakGenericRemoteService.getByClientId(any(), any())).thenReturn(Optional.of(mock(ClientRepresentation.class)));
+		void shouldRespondWhenUserEmailIsEmpty() {
+			var user = OzgCloudKeycloakUserTestFactory.create();
+			user.getSpec().getKeycloakUser().setEmail("");
 
-			var rsp = service.clientsExists(OzgCloudKeycloakUserTestFactory.create(), null);
+			var response = service.userHasEmail(user);
 
-			assertThat(rsp).isEmpty();
+			assertThat(response).isFalse();
 		}
-	}
 
-	@Nested
-	class TestGroupsExists {
+		@Test
+		void shouldRespondWhenUserEmailIsNull() {
+			var user = OzgCloudKeycloakUserTestFactory.create();
+			user.getSpec().getKeycloakUser().setEmail(null);
 
-		private static final OzgCloudKeycloakUser user = OzgCloudKeycloakUserTestFactory.create();
+			var response = service.userHasEmail(user);
 
-		@BeforeEach
-		void init() {
-			doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
-			doReturn(Optional.empty()).when(service).clientsExists(any(), any());
+			assertThat(response).isFalse();
 		}
 
-		@Test
-		void shouldReturnMissingGroup() {
-			when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_1, OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(false);
+		@Nested
+		class TestClientExists {
+
+			@Test
+			void shouldRespondMissingRealm() {
+				when(keycloakGenericRemoteService.getByClientId(any(), any())).thenReturn(Optional.empty());
+
+				var rsp = service.clientsExists(OzgCloudKeycloakUserTestFactory.create(), null);
 
-			var rsp = service.getPreconditionErrors(user);
+				assertThat(rsp).isPresent();
+			}
 
-			assertThat(rsp).isPresent();
+			@Test
+			void shouldReturnClientExists() {
+				when(keycloakGenericRemoteService.getByClientId(any(), any())).thenReturn(Optional.of(mock(ClientRepresentation.class)));
+
+				var rsp = service.clientsExists(OzgCloudKeycloakUserTestFactory.create(), null);
+
+				assertThat(rsp).isEmpty();
+			}
 		}
 
-		@Test
-		void shouldReturnGroupExists() {
-			when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_1, OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(true);
-			when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_2, OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(true);
+		@Nested
+		class TestGroupsExists {
+
+			private static final OzgCloudKeycloakUser user = OzgCloudKeycloakUserTestFactory.create();
+
+			@BeforeEach
+			void init() {
+				doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
+				doReturn(Optional.empty()).when(service).clientsExists(any(), any());
+			}
+
+			@Test
+			void shouldReturnMissingGroup() {
+				when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_1,
+						OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(false);
+
+				var rsp = service.getPreconditionErrors(user);
+
+				assertThat(rsp).isPresent();
+			}
+
+			@Test
+			void shouldReturnGroupExists() {
+				when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_1, OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(true);
+				when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_2, OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(true);
 
-			var rsp = service.getPreconditionErrors(user);
+				var rsp = service.getPreconditionErrors(user);
 
-			assertThat(rsp).isEmpty();
+				assertThat(rsp).isEmpty();
+			}
 		}
 	}
 }