diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapper.java
index 840740752266df48db870f1f77073a1cf04fd85e..27440d18d53c6dcda34512d1ddbfdfab8f433a86 100644
--- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapper.java
+++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapper.java
@@ -40,6 +40,8 @@ public class MantelantragZustaendigeStelleMapper implements FormBasedMapper {
 	static final String HAUSANSCHRIFT_ORT_FIELD = "zust_ort";
 	static final String TELEFON_FIELD = "telefon";
 
+	static final String FAILURE_MESSAGE = "Failed mapping Zustaendigestelle of Mantelantrag";
+
 	private final Environment environment;
 	private Set<String> xtaIdentifiers;
 
@@ -67,7 +69,7 @@ public class MantelantragZustaendigeStelleMapper implements FormBasedMapper {
 		try {
 			return adaptFormDataWithPossibleException(formData);
 		} catch (TechnicalException exception) {
-			LOG.warn("Mantelantrag is invalid: %s".formatted(exception.getMessage()));
+			logWarning("%s: %s".formatted(FAILURE_MESSAGE, exception.getMessage()));
 			return formData;
 		}
 	}
@@ -113,12 +115,20 @@ public class MantelantragZustaendigeStelleMapper implements FormBasedMapper {
 
 	private void verifyOneMatchingIdentifier(List<Integer> matchingSlots) {
 		if (matchingSlots.size() != 1) {
-			throw new TechnicalException(
-					"Found %d matching nachrichtenbroker addresses! Expected one of '%s'."
-							.formatted(matchingSlots.size(), Strings.join(xtaIdentifiers, ',')));
+			var message = "Found %d matching nachrichtenbroker addresses! Expected one of '%s'."
+					.formatted(matchingSlots.size(), Strings.join(xtaIdentifiers, ','));
+			if (matchingSlots.isEmpty()) {
+				throw new TechnicalException(message);
+			} else {
+				logWarning("Unexpected Zustaendigestelle in Mantelantrag: %s".formatted(message));
+			}
 		}
 	}
 
+	void logWarning(String message) {
+		LOG.warn(message);
+	}
+
 	private List<Integer> getMatchingSlots(Map<String, Object> fieldMap) {
 		return IntStream.range(0, 3)
 				.filter(slotIndex -> xtaIdentifiers.contains(getXtaIdentifierOfSlot(fieldMap, slotIndex)))
diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapperTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapperTest.java
index e7b9d8009f1087cb274e2fe1e9459c038d18da04..0562249bab85de7991940357772246cf1c4fcc9f 100644
--- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapperTest.java
+++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapperTest.java
@@ -133,6 +133,18 @@ class MantelantragZustaendigeStelleMapperTest {
 
 			assertThat(resultFormData).isEqualTo(formData);
 		}
+
+		@DisplayName("should log warning with exception")
+		@Test
+		void shouldLogWarningWithException() {
+			var errorMessage = "some error";
+			doThrow(new TechnicalException(errorMessage)).when(mapper).adaptFormDataWithPossibleException(formData);
+			doNothing().when(mapper).logWarning(anyString());
+
+			mapper.parseFormData(formData);
+
+			verify(mapper).logWarning("%s: %s".formatted(FAILURE_MESSAGE, errorMessage));
+		}
 	}
 
 	@DisplayName("adapt form data with possible exception")
@@ -310,14 +322,17 @@ class MantelantragZustaendigeStelleMapperTest {
 					.isInstanceOf(TechnicalException.class);
 		}
 
-		@DisplayName("should throw if multiple slots match")
+		@DisplayName("should log warning if multiple slots match")
 		@Test
 		void shouldThrowIfMultipleSlotsMatch() {
 			fieldMap.put(getZustaendigeStelleName(0), IDENTIFIER2);
 			fieldMap.put(getZustaendigeStelleName(2), IDENTIFIER);
+			doNothing().when(mapper).logWarning(anyString());
+
+			mapper.findSlotIndex(fieldMap);
+
+			verify(mapper).logWarning(anyString());
 
-			assertThatThrownBy(() -> mapper.findSlotIndex(fieldMap))
-					.isInstanceOf(TechnicalException.class);
 		}
 	}