diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java
index c17da17a68ff9510cbd0a20831847e13df594b56..707a4b5a02daeb6fddc8d59e77a92862fc69cd73 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java
@@ -69,6 +69,9 @@ public class KeycloakRealmReconciler implements Reconciler<OzgCloudKeycloakRealm
 			LOG.info("keep data");
 			return DeleteControl.defaultDelete();
 		}
+		if (!service.realmExists(realm.getMetadata().getName())) {
+			return DeleteControl.defaultDelete();
+		}
 		return deleteRealm(realm);
 	}
 
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
index c92e75c364d25a34b9b99c6d678d7bec02d3426a..1ebad4e77971f32a056acae546f20bba726c4fd6 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
@@ -87,4 +87,8 @@ class KeycloakRealmService {
 	public void deleteRealm(String realmName) {
 		remoteService.deleteRealm(realmName);
 	}
+
+	public boolean realmExists(String realmName) {
+		return keycloakGenericRemoteService.realmExists(realmName);
+	}
 }
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java
index 06e758f079a0e46cf2b1ceba00381683a700258f..e2eb0e9a1debf37dab96328083c157d61cbc83b8 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java
@@ -23,11 +23,9 @@
  */
 package de.ozgcloud.operator.keycloak.realm;
 
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.*;
 
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
@@ -49,6 +47,8 @@ class KeycloakRealmReconcilerTest {
 	@Mock
 	private KeycloakRealmService service;
 
+	private final String REALM = OzgCloudKeycloakRealmTestFactory.METADATA_NAMESPACE;
+
 	@DisplayName("Reconcile")
 	@Nested
 	class TestReconcile {
@@ -59,7 +59,7 @@ class KeycloakRealmReconcilerTest {
 
 			reconciler.reconcile(realm, null);
 
-			verify(service).createOrUpdateRealm(realm.getSpec(), OzgCloudKeycloakRealmTestFactory.METADATA_NAMESPACE);
+			verify(service).createOrUpdateRealm(realm.getSpec(), REALM);
 		}
 
 		@Test
@@ -93,7 +93,7 @@ class KeycloakRealmReconcilerTest {
 			void shouldNotCallService() {
 				reconciler.cleanup(realm, null);
 
-				verify(service, never()).deleteRealm(OzgCloudKeycloakRealmTestFactory.METADATA_NAMESPACE);
+				verify(service, never()).deleteRealm(REALM);
 			}
 
 			@Test
@@ -111,21 +111,50 @@ class KeycloakRealmReconcilerTest {
 			private final OzgCloudKeycloakRealm realm = OzgCloudKeycloakRealmTestFactory.create();
 
 			@Test
-			void shouldCallDeleteRealm() {
+			void shouldDeleteRealmIfRealmExists() {
+				when(service.realmExists(any())).thenReturn(true);
+
 				reconciler.cleanup(realm, null);
 
 				verify(reconciler).deleteRealm(realm);
 			}
 
 			@Test
-			void shouldReturnValueFromDeleteUser() {
+			void shouldReturnValueFromDeleteRealm() {
 				DeleteControl expected = DeleteControl.defaultDelete();
 				when(reconciler.deleteRealm(realm)).thenReturn(expected);
+				when(service.realmExists(any())).thenReturn(true);
 
 				DeleteControl response = reconciler.cleanup(realm, null);
 
 				assertThat(response).isEqualTo(expected);
 			}
+
+			@Test
+			void shouldCallRealmExists() {
+				reconciler.cleanup(realm, null);
+
+				verify(service).realmExists(realm.getMetadata().getName());
+			}
+
+			@Test
+			void shouldNotDeleteRealmIfRealmNotExists() {
+				when(service.realmExists(any())).thenReturn(false);
+
+				reconciler.cleanup(realm, null);
+
+				verify(reconciler, never()).deleteRealm(realm);
+			}
+
+			@Test
+			void shouldReturnDeleteControl() {
+				when(service.realmExists(any())).thenReturn(false);
+
+				var control = reconciler.cleanup(realm, null);
+
+				assertThat(control).usingRecursiveComparison().isEqualTo(DeleteControl.defaultDelete());
+			}
+
 		}
 
 		@DisplayName("test delete")
@@ -138,7 +167,7 @@ class KeycloakRealmReconcilerTest {
 			void shouldCallServiceDelete() {
 				reconciler.deleteRealm(realm);
 
-				verify(service).deleteRealm(OzgCloudKeycloakRealmTestFactory.METADATA_NAMESPACE);
+				verify(service).deleteRealm(REALM);
 			}
 
 			@Test
@@ -151,7 +180,7 @@ class KeycloakRealmReconcilerTest {
 			@Test
 			void shouldRescheduleOnError() {
 				doThrow(RuntimeException.class).when(service)
-						.deleteRealm(OzgCloudKeycloakRealmTestFactory.METADATA_NAMESPACE);
+						.deleteRealm(REALM);
 
 				var control = reconciler.deleteRealm(realm);
 
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
index 5d2da035924be16afec0f64718db93129d0ced41..872e9bb98038c987f96d69aab2f25c4128ca0ee7 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
@@ -232,4 +232,15 @@ class KeycloakRealmServiceTest {
 			verify(remoteService).deleteRealm(REALM_NAME);
 		}
 	}
+	@Nested
+	class TestRealmExists {
+
+		@Test
+		void shouldCallGenericRemoteServiceRealmExists() {
+			service.realmExists(REALM_NAME);
+
+			verify(keycloakGenericRemoteService).realmExists(REALM_NAME);
+		}
+	}
+	
 }