diff --git a/src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitSynchronizationException.java b/src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitSynchronizationException.java
index cc431ca257e3c6b6acc109c09154e128709694df..42944f0a41b1d5eb7cd1a724ab8e1792bc7da7de 100644
--- a/src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitSynchronizationException.java
+++ b/src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitSynchronizationException.java
@@ -5,4 +5,8 @@ public class OrganisationsEinheitSynchronizationException extends RuntimeExcepti
 	public OrganisationsEinheitSynchronizationException(String message) {
 		super(message);
 	}
+
+	public OrganisationsEinheitSynchronizationException(String message, Throwable cause) {
+		super(message, cause);
+	}
 }
diff --git a/src/main/java/de/ozgcloud/admin/organisationseinheit/SyncService.java b/src/main/java/de/ozgcloud/admin/organisationseinheit/SyncService.java
index e8c5a9ec12bf4c08076314dd6fb9e00b059edefe..a1c911a20d16d2cb4fdbbd707417180521c0bd9f 100644
--- a/src/main/java/de/ozgcloud/admin/organisationseinheit/SyncService.java
+++ b/src/main/java/de/ozgcloud/admin/organisationseinheit/SyncService.java
@@ -100,7 +100,8 @@ class SyncService {
 
 	Optional<String> addAsGroupInKeycloak(OrganisationsEinheit organisationsEinheit) {
 		if (organisationsEinheit.getParentId() != null) {
-			throw new OrganisationsEinheitSynchronizationException("Organisationseinheit %s has parent".formatted(organisationsEinheit.getOrganisationsEinheitId()));
+			throw new OrganisationsEinheitSynchronizationException(
+					"Organisationseinheit %s has parent".formatted(organisationsEinheit.getOrganisationsEinheitId()));
 		}
 		var addGroupData = organisationsEinheitMapper.toAddGroupData(organisationsEinheit);
 		return addGroupInKeycloak(addGroupData);
@@ -119,8 +120,7 @@ class SyncService {
 		try {
 			return Optional.of(keycloakRemoteService.addGroup(addGroupData));
 		} catch (ResourceCreationException e) {
-			LOG.error("Error adding group %s in Keycloak".formatted(addGroupData), e);
-			return Optional.empty();
+			throw new OrganisationsEinheitSynchronizationException("Error creating group %s in Keycloak".formatted(addGroupData), e);
 		}
 	}
 }
diff --git a/src/test/java/de/ozgcloud/admin/organisationseinheit/SyncServiceTest.java b/src/test/java/de/ozgcloud/admin/organisationseinheit/SyncServiceTest.java
index 8208bcef2381378656844cdcac5e81d395c28bce..3645e9934b395137998058d17f0ceb5d3ad865bb 100644
--- a/src/test/java/de/ozgcloud/admin/organisationseinheit/SyncServiceTest.java
+++ b/src/test/java/de/ozgcloud/admin/organisationseinheit/SyncServiceTest.java
@@ -603,6 +603,9 @@ class SyncServiceTest {
 	@Nested
 	class TestAddGroupInKeycloak {
 
+		private static final String FAILURE_MESSAGE = LoremIpsum.getInstance().getWords(5);
+		private final Throwable resourceCreationException = new ResourceCreationException(FAILURE_MESSAGE);
+
 		private final String keycloakId = GroupTestFactory.ID;
 		private final AddGroupData addGroupData = AddGroupDataTestFactory.create();
 
@@ -625,12 +628,11 @@ class SyncServiceTest {
 		}
 
 		@Test
-		void shouldReturnEmptyInCaseOfException() {
+		void shouldThrowExceptionInCaseOfResourceCreationException() {
 			givenAddGroupFailed();
 
-			var keycloakId = callService();
-
-			assertThat(keycloakId).isEmpty();
+			assertThatExceptionOfType(OrganisationsEinheitSynchronizationException.class).isThrownBy(this::callService)
+					.withMessage("Error creating group %s in Keycloak", addGroupData.toString()).withCause(resourceCreationException);
 		}
 
 		private void givenAddGroupSuccessful() {
@@ -638,7 +640,7 @@ class SyncServiceTest {
 		}
 
 		private void givenAddGroupFailed() {
-			when(keycloakRemoteService.addGroup(addGroupData)).thenThrow(new ResourceCreationException("Failure"));
+			when(keycloakRemoteService.addGroup(addGroupData)).thenThrow(resourceCreationException);
 		}
 
 		private Optional<String> callService() {