diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java
index 0a120e71f6e69af9060f471df95714e3713ec328..d29313f6d3f2a57365c18b8551c74de3cb0ef705 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java
@@ -71,7 +71,7 @@ public class ExportBescheidService {
 	}
 
 	String getFullName(Bescheid bescheid) {
-		return userService.getById(bescheid.getSentInfo().getSentBy()).getFullName();
+		return userService.getFullNameById(bescheid.getSentInfo().getSentBy());
 	}
 
 }
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java
index a1748976b9fc32dbc5544b090722cad3484b0117..f43865c263c7aeb21d26f89d958b6e4c56dbf6fe 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java
@@ -1,5 +1,7 @@
 package de.ozgcloud.archive.common.user;
 
+import java.util.Optional;
+
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
@@ -12,14 +14,25 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor
 public class UserService {
 
+	private static final String SYSTEM_USER_ID_PREFIX = "system_";
+
 	@Qualifier(ArchiveManagerConfiguration.OZGCLOUD_USER_PROFILE_SERVICE_NAME) // NOSONAR
 	private final OzgCloudUserProfileService grpcOzgCloudUserProfileService;
 
 	@Qualifier(ArchiveManagerConfiguration.USER_PROFILE_MAPPER_NAME) // NOSONAR
 	private final UserProfileMapper mapper;
 
-	public UserProfile getById(String sentBy) {
-		return mapper.fromOzgUserProfile(grpcOzgCloudUserProfileService.getById(OzgCloudUserId.from(sentBy)));
+	public Optional<UserProfile> getById(String userId) {
+		return Optional.of(userId).filter(id -> !id.startsWith(SYSTEM_USER_ID_PREFIX))
+				.map(OzgCloudUserId::from)
+				.map(grpcOzgCloudUserProfileService::getById)
+				.map(mapper::fromOzgUserProfile);
+	}
+
+	public String getFullNameById(String userId) {
+		// TODO (Story offen) es soll der Name des Systems geliefert werden, wenn kein
+		// Mensch die Aktion ausgeführt hat
+		return getById(userId).map(UserProfile::getFullName).orElse("automatisch");
 	}
 
 }
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilder.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilder.java
index 3aebc7527cfcfa59f75e5a05cf058cf7f151ede7..f1d0c2ea4638917937aba71572fd95a54b252c16 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilder.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilder.java
@@ -6,6 +6,7 @@ import org.apache.commons.lang3.StringUtils;
 
 import de.ozgcloud.archive.common.command.ArchiveManagerCommand;
 import de.ozgcloud.archive.common.command.CommandWithPrevious;
+import de.ozgcloud.archive.common.user.UserProfile;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 
@@ -51,6 +52,6 @@ class AssignedUserChangeHistoryBuilder extends ChangeHistoryBuilder<AssignedUser
 
 	String getAssignedUserFullNameFromCommand(ArchiveManagerCommand command) {
 		var assignedUserId = getValueFromCommandBody(BODY_PROPERTY_ASSIGNED_USER, command);
-		return userProfileCache.getUserProfile(assignedUserId).getFullName();
+		return userProfileCache.getUserProfile(assignedUserId).map(UserProfile::getFullName).orElse("automatisch");
 	}
 }
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/UserProfileCache.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/UserProfileCache.java
index 5df9a38cb9a2c1daa9f29a4942bfc0382b23e7f2..0b5ed457cac691b6e0acaab103ec8ae0e9775fa5 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/UserProfileCache.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/UserProfileCache.java
@@ -2,6 +2,7 @@ package de.ozgcloud.archive.historie;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Optional;
 import java.util.function.Function;
 
 import de.ozgcloud.archive.common.user.UserProfile;
@@ -9,18 +10,19 @@ import de.ozgcloud.common.errorhandling.TechnicalException;
 import lombok.AccessLevel;
 import lombok.RequiredArgsConstructor;
 
+//TODO OZG-7379 remove this cache
 @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
 class UserProfileCache {
 
-	private final Function<String, UserProfile> findUserProfileForUserId;
+	private final Function<String, Optional<UserProfile>> findUserProfileForUserId;
 
-	private final Map<String, UserProfile> cache = new HashMap<>();
+	private final Map<String, Optional<UserProfile>> cache = new HashMap<>();
 
-	public static UserProfileCache create(Function<String, UserProfile> findUserProfileForUserId) {
+	public static UserProfileCache create(Function<String, Optional<UserProfile>> findUserProfileForUserId) {
 		return new UserProfileCache(findUserProfileForUserId);
 	}
 
-	public UserProfile getUserProfile(String userId) {
+	public Optional<UserProfile> getUserProfile(String userId) {
 		if (!cache.containsKey(userId)) {
 			findAndAddToCache(userId);
 		}
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java
index 147ca0b8104ef487ecbbd00a89f2e82553476561..ba92dd3c508a289518b8160df9de749decfcc55c 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java
@@ -56,7 +56,7 @@ public class ExportKommentarService {
 	}
 
 	String getAuthorFullName(Kommentar kommentar) {
-		return userService.getById(kommentar.getCreatedBy()).getFullName();
+		return userService.getFullNameById(kommentar.getCreatedBy());
 	}
 
 	Stream<Kommentar> getKommentare(VorgangWithEingang vorgang) {
diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java
index f669cd73aac394bfa47e38306119d8b293ab0ab5..5a49d6dedd8c6a47a09016f93c459c4cc6d7739f 100644
--- a/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java
+++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java
@@ -61,6 +61,6 @@ public class ExportNachrichtService {
 	}
 
 	Optional<UserProfile> getUserProfile(PostfachMail postfachMail) {
-		return Optional.ofNullable(postfachMail.getCreatedBy()).map(userService::getById);
+		return Optional.ofNullable(postfachMail.getCreatedBy()).flatMap(userService::getById);
 	}
 }
diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/bescheid/ExportBescheidServiceTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/bescheid/ExportBescheidServiceTest.java
index 0967207e31d66893252502673a65eff3d642f4f4..70d8437e7174382319fa5665d27a580cec0d2c0a 100644
--- a/archive-manager-server/src/test/java/de/ozgcloud/archive/bescheid/ExportBescheidServiceTest.java
+++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/bescheid/ExportBescheidServiceTest.java
@@ -1,6 +1,7 @@
 package de.ozgcloud.archive.bescheid;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import java.util.List;
@@ -17,7 +18,6 @@ import org.mockito.Spy;
 
 import de.ozgcloud.archive.bescheid.BescheidExportData.BescheidExportDataBuilder;
 import de.ozgcloud.archive.common.binaryfile.BinaryFileService;
-import de.ozgcloud.archive.common.user.UserProfile;
 import de.ozgcloud.archive.common.user.UserProfileTestFactory;
 import de.ozgcloud.archive.common.user.UserService;
 import de.ozgcloud.archive.export.DokumentTypeTestFactory;
@@ -388,31 +388,25 @@ class ExportBescheidServiceTest {
 
 	@Nested
 	class TestGetFullName {
-		private final Bescheid bescheid = BescheidTestFactory.create();
-		private final UserProfile userProfile = UserProfileTestFactory.create();
-		private final String expectedFullName = UserProfileTestFactory.FULLNAME;
-
-		@BeforeEach
-		void mockUserService() {
-			when(userService.getById(SentInfoTestFactory.SENT_BY)).thenReturn(userProfile);
-		}
 
 		@Test
 		void shouldCallUserServiceGetbyId() {
 			callService();
 
-			verify(userService).getById(SentInfoTestFactory.SENT_BY);
+			verify(userService).getFullNameById(SentInfoTestFactory.SENT_BY);
 		}
 
 		@Test
 		void shouldReturnOptionalOfUserProfile() {
+			when(userService.getFullNameById(any())).thenReturn(UserProfileTestFactory.FULLNAME);
+
 			var fullName = callService();
 
-			assertThat(fullName).isEqualTo(expectedFullName);
+			assertThat(fullName).isEqualTo(UserProfileTestFactory.FULLNAME);
 		}
 
 		private String callService() {
-			return service.getFullName(bescheid);
+			return service.getFullName(BescheidTestFactory.create());
 		}
 	}
 }
diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserProfileTestFactory.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserProfileTestFactory.java
index e6a09868344fcb08c9d0d6c1d39dc8efaa3d90ff..3a95f87ffcfba03a8bf28caaef9906a1d647de14 100644
--- a/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserProfileTestFactory.java
+++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserProfileTestFactory.java
@@ -1,9 +1,12 @@
 package de.ozgcloud.archive.common.user;
 
+import java.util.UUID;
+
 import com.thedeanda.lorem.LoremIpsum;
 
 public class UserProfileTestFactory {
 
+	public static final String USER_ID = UUID.randomUUID().toString();
 	public static final String FIRSTNAME = LoremIpsum.getInstance().getName();
 	public static final String LASTNAME = LoremIpsum.getInstance().getName();
 	public static final String FULLNAME = String.format("%s %s", FIRSTNAME, LASTNAME);
diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserServiceTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserServiceTest.java
index bffe6873dd2293a9874272257df61e743b24a577..6c16bed05584191d01df3d737c2516911961a527 100644
--- a/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserServiceTest.java
+++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserServiceTest.java
@@ -1,10 +1,9 @@
 package de.ozgcloud.archive.common.user;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
-import java.util.UUID;
-
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
@@ -21,7 +20,7 @@ class UserServiceTest {
 	private UserService service;
 
 	@Mock
-	private GrpcOzgCloudUserProfileService grpcOzgCloudUserProfileService;
+	private GrpcOzgCloudUserProfileService grpcService;
 
 	@Mock
 	private UserProfileMapper mapper;
@@ -29,21 +28,20 @@ class UserServiceTest {
 	@Nested
 	class TestGetById {
 
-		private final String userId = UUID.randomUUID().toString();
 		private final OzgCloudUserProfile ozgCloudUserProfile = OzgCloudUserProfileTestFactory.create();
 
 		@Test
-		void shouldCallGrpcOzgCloudUserProfileService() {
-			callService();
+		void shouldCallUserProfileService() {
+			service.getById(UserProfileTestFactory.USER_ID);
 
-			verify(grpcOzgCloudUserProfileService).getById(OzgCloudUserId.from(userId));
+			verify(grpcService).getById(OzgCloudUserId.from(UserProfileTestFactory.USER_ID));
 		}
 
 		@Test
 		void shouldMap() {
-			when(grpcOzgCloudUserProfileService.getById(OzgCloudUserId.from(userId))).thenReturn(ozgCloudUserProfile);
+			when(grpcService.getById(OzgCloudUserId.from(UserProfileTestFactory.USER_ID))).thenReturn(ozgCloudUserProfile);
 
-			callService();
+			service.getById(UserProfileTestFactory.USER_ID);
 
 			verify(mapper).fromOzgUserProfile(ozgCloudUserProfile);
 		}
@@ -51,16 +49,27 @@ class UserServiceTest {
 		@Test
 		void shouldRetrunMappedUserProfile() {
 			var mappedUserProfile = UserProfileTestFactory.create();
-			when(grpcOzgCloudUserProfileService.getById(OzgCloudUserId.from(userId))).thenReturn(ozgCloudUserProfile);
+			when(grpcService.getById(any())).thenReturn(ozgCloudUserProfile);
 			when(mapper.fromOzgUserProfile(ozgCloudUserProfile)).thenReturn(mappedUserProfile);
 
-			var userProfile = callService();
+			var userProfile = service.getById(UserProfileTestFactory.USER_ID);
+
+			assertThat(userProfile).contains(mappedUserProfile);
+		}
+
+		@Test
+		void shouldReturnEmptyForSystemId() {
+			var result = service.getById("system_test");
 
-			assertThat(userProfile).isEqualTo(mappedUserProfile);
+			assertThat(result).isEmpty();
 		}
 
-		private UserProfile callService() {
-			return service.getById(userId);
+		@Test
+		void shoultNOTCallRemoteServiceForSystemId() {
+			service.getById("system_test");
+
+			verify(grpcService, never()).getById(any());
 		}
+
 	}
 }
diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportGrpcServiceITCase.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportGrpcServiceITCase.java
index 713288dd1158fab2bf9c57877ae729b067e02681..6125711b7cc907d3221f1ebdc1b8810118a37b24 100644
--- a/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportGrpcServiceITCase.java
+++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportGrpcServiceITCase.java
@@ -11,6 +11,7 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
 import java.util.Iterator;
+import java.util.Optional;
 import java.util.stream.Stream;
 import java.util.zip.ZipInputStream;
 
@@ -149,7 +150,7 @@ class ExportGrpcServiceITCase {
 					return null;
 				}).when(exportFileService).writeOzgFile(any(), any());
 
-				when(userService.getById(KommentarTestFactory.CREATED_BY)).thenReturn(UserProfileTestFactory.create());
+				when(userService.getById(KommentarTestFactory.CREATED_BY)).thenReturn(Optional.of(UserProfileTestFactory.create()));
 			}
 
 			@Test
diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportServiceITCase.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportServiceITCase.java
index 74b813c3d8ecb10ffd58e0dde14d1f25e818f977..9756006b9da3e0d313768b8151c537bdebdc706f 100644
--- a/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportServiceITCase.java
+++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportServiceITCase.java
@@ -1,11 +1,11 @@
 package de.ozgcloud.archive.export;
 
-import static de.ozgcloud.archive.common.XDomeaTestUtils.*;
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import java.io.ByteArrayOutputStream;
+import java.util.Optional;
 import java.util.UUID;
 import java.util.stream.Stream;
 
@@ -27,9 +27,7 @@ import de.ozgcloud.archive.historie.ExportHistorieService;
 import de.ozgcloud.archive.kommentar.ExportKommentarService;
 import de.ozgcloud.archive.kommentar.KommentarsExportDataTestFactory;
 import de.ozgcloud.archive.postfach.ExportNachrichtService;
-import de.ozgcloud.archive.postfach.PostfachMail;
 import de.ozgcloud.archive.postfach.PostfachMailExportDataTestFactory;
-import de.ozgcloud.archive.postfach.PostfachMailTestFactory;
 import de.ozgcloud.archive.vorgang.VorgangService;
 import de.ozgcloud.archive.vorgang.VorgangWithEingang;
 import de.ozgcloud.archive.vorgang.VorgangWithEingangTestFactory;
@@ -61,16 +59,15 @@ class ExportServiceITCase {
 	class TestWriteExport {
 
 		private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create();
-		private final PostfachMail postfachMail = PostfachMailTestFactory.createBuilder().id(createMongoDbObjectId()).build();
 		private final String userId = UUID.randomUUID().toString();
 
 		@BeforeEach
 		void setup() {
 			doReturn(vorgang).when(vorgangService).getVorgang(VorgangWithEingangTestFactory.ID);
-			doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(exportFileService).getRepresentations(vorgang);
-			doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(exportFileService).getAttachments(vorgang);
-			doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(binaryFileService).getFiles(postfachMail.getAttachments());
-			doReturn(UserProfileTestFactory.create()).when(userService).getById(userId);
+			doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(exportFileService).getRepresentations(any());
+			doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(exportFileService).getAttachments(any());
+			doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(binaryFileService).getFiles(any());
+			doReturn(Optional.of(UserProfileTestFactory.create())).when(userService).getById(any());
 			doNothing().when(exportFileService).writeOzgFile(any(), any());
 			when(exportHistorieService.createHistorienProtokollInformationTypes(vorgang)).thenReturn(Stream.empty());
 			when(exportKommentarService.createExportData(vorgang)).thenReturn(KommentarsExportDataTestFactory.create());
diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilderTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilderTest.java
index a29a29cb3408fb65e9329430d76efbd7967f9679..fc4f8daaaeeea051aeaab72abebd5bda209fe397 100644
--- a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilderTest.java
+++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilderTest.java
@@ -3,10 +3,12 @@ package de.ozgcloud.archive.historie;
 import static de.ozgcloud.archive.historie.AssignedUserChangeHistoryBuilder.*;
 import static de.ozgcloud.archive.historie.ChangeHistoryBuilderTest.*;
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Optional;
 import java.util.UUID;
 
 import org.junit.jupiter.api.BeforeEach;
@@ -22,7 +24,6 @@ import de.ozgcloud.archive.common.command.ArchiveManagerCommand;
 import de.ozgcloud.archive.common.command.CommandTestFactory;
 import de.ozgcloud.archive.common.command.CommandWithPrevious;
 import de.ozgcloud.archive.common.command.CommandWithPreviousTestFactory;
-import de.ozgcloud.archive.common.user.UserProfile;
 import de.ozgcloud.archive.common.user.UserProfileTestFactory;
 
 public class AssignedUserChangeHistoryBuilderTest {
@@ -191,28 +192,24 @@ public class AssignedUserChangeHistoryBuilderTest {
 	@Nested
 	class TestGetAssignedUserFullNameFromCommand {
 
-		private static final String USER_ID = UUID.randomUUID().toString();
-		private static final UserProfile USER_PROFILE = UserProfileTestFactory.create();
-		private final ArchiveManagerCommand command = previousCommand;
-
 		@BeforeEach
 		void init() {
-			when(builder.getValueFromCommandBody(BODY_PROPERTY_ASSIGNED_USER, previousCommand)).thenReturn(USER_ID.toString());
-			when(userProfileCache.getUserProfile(USER_ID)).thenReturn(USER_PROFILE);
+			doReturn(UserProfileTestFactory.USER_ID).when(builder).getValueFromCommandBody(any(), any());
+			doReturn(Optional.of(UserProfileTestFactory.create())).when(userProfileCache).getUserProfile(any());
 		}
 
 		@Test
 		void shouldGetUserIdFromCommand() {
 			callBuilder();
 
-			verify(builder).getValueFromCommandBody(BODY_PROPERTY_ASSIGNED_USER, command);
+			verify(builder).getValueFromCommandBody(BODY_PROPERTY_ASSIGNED_USER, previousCommand);
 		}
 
 		@Test
 		void shouldGetUserProfileForUserId() {
 			callBuilder();
 
-			verify(userProfileCache).getUserProfile(USER_ID);
+			verify(userProfileCache).getUserProfile(UserProfileTestFactory.USER_ID);
 		}
 
 		@Test
@@ -223,7 +220,7 @@ public class AssignedUserChangeHistoryBuilderTest {
 		}
 
 		private String callBuilder() {
-			return builder.getAssignedUserFullNameFromCommand(command);
+			return builder.getAssignedUserFullNameFromCommand(previousCommand);
 		}
 	}
 }
diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/UserProfileCacheTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/UserProfileCacheTest.java
index ecc3bce58268c6eb37896b0cbaffed22aa93bc81..23532a79da9443962dc1c0c9ce54923754e263d3 100644
--- a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/UserProfileCacheTest.java
+++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/UserProfileCacheTest.java
@@ -6,6 +6,7 @@ import static org.mockito.Mockito.*;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.UUID;
 import java.util.function.Function;
 
@@ -24,7 +25,7 @@ class UserProfileCacheTest {
 	private static final UserProfile EXPECTED_USER_PROFILE = UserProfileTestFactory.create();
 
 	@Mock
-	private Function<String, UserProfile> findUserProfileForUserId;
+	private Function<String, Optional<UserProfile>> findUserProfileForUserId;
 	@InjectMocks
 	private UserProfileCache cache;
 
@@ -43,7 +44,7 @@ class UserProfileCacheTest {
 
 		var userProfile = cache.getUserProfile(USER_ID);
 
-		assertThat(userProfile).isEqualTo(EXPECTED_USER_PROFILE);
+		assertThat(userProfile).contains(EXPECTED_USER_PROFILE);
 	}
 
 	@Test
@@ -52,7 +53,7 @@ class UserProfileCacheTest {
 
 		cache.getUserProfile(USER_ID);
 
-		assertThat(getUserProfileFromCache()).isEqualTo(EXPECTED_USER_PROFILE);
+		assertThat(getUserProfileFromCache()).contains(EXPECTED_USER_PROFILE);
 	}
 
 	@Test
@@ -70,7 +71,7 @@ class UserProfileCacheTest {
 
 		var userProfile = cache.getUserProfile(USER_ID);
 
-		assertThat(userProfile).isEqualTo(EXPECTED_USER_PROFILE);
+		assertThat(userProfile).contains(EXPECTED_USER_PROFILE);
 	}
 
 	@Test
@@ -82,17 +83,17 @@ class UserProfileCacheTest {
 	}
 
 	private void givenFindUserProfileForUserIdReturnsUserProfile() {
-		when(findUserProfileForUserId.apply(USER_ID)).thenReturn(EXPECTED_USER_PROFILE);
+		when(findUserProfileForUserId.apply(USER_ID)).thenReturn(Optional.of(EXPECTED_USER_PROFILE));
 	}
 
 	private void givenUserProfileIsInCache() {
-		var cache = new HashMap<String, UserProfile>();
-		cache.put(USER_ID, EXPECTED_USER_PROFILE);
+		var cache = new HashMap<String, Optional<UserProfile>>();
+		cache.put(USER_ID, Optional.of(EXPECTED_USER_PROFILE));
 		ReflectionTestUtils.setField(this.cache, "cache", cache);
 	}
 
 	@SuppressWarnings("unchecked")
-	private UserProfile getUserProfileFromCache() {
-		return ((Map<String, UserProfile>) Objects.requireNonNull(ReflectionTestUtils.getField(cache, "cache"))).get(USER_ID);
+	private Optional<UserProfile> getUserProfileFromCache() {
+		return ((Map<String, Optional<UserProfile>>) Objects.requireNonNull(ReflectionTestUtils.getField(cache, "cache"))).get(USER_ID);
 	}
 }
diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/VorgangChangeHistoryServiceTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/VorgangChangeHistoryServiceTest.java
index 912d0ad90b097a5e33b10391ec8853aec971a324..82aefe85047b8af815dfe30429de5607347e4cb5 100644
--- a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/VorgangChangeHistoryServiceTest.java
+++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/VorgangChangeHistoryServiceTest.java
@@ -7,6 +7,7 @@ import static org.mockito.Mockito.*;
 
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Optional;
 import java.util.function.Function;
 import java.util.stream.Stream;
 
@@ -225,7 +226,7 @@ public class VorgangChangeHistoryServiceTest {
 		private MockedStatic<UserProfileCache> staticUserProfileCache;
 
 		@Captor
-		private ArgumentCaptor<Function<String, UserProfile>> userProfileCacheArgCaptor;
+		private ArgumentCaptor<Function<String, Optional<UserProfile>>> userProfileCacheArgCaptor;
 
 		@Mock
 		private AssignedUserChangeHistoryBuilder builder;
diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/ExportKommentarServiceTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/ExportKommentarServiceTest.java
index 23c935ea6411aab4acd3d6aeee83b7291e3a8f30..708dfdc2b6eff5270d4cff2a2121f13ff177e381 100644
--- a/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/ExportKommentarServiceTest.java
+++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/ExportKommentarServiceTest.java
@@ -1,6 +1,7 @@
 package de.ozgcloud.archive.kommentar;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import java.util.List;
@@ -211,20 +212,17 @@ class ExportKommentarServiceTest {
 	@Nested
 	class TestGetAuthorFullName {
 
-		@BeforeEach
-		void init() {
-			when(userService.getById(KommentarTestFactory.CREATED_BY)).thenReturn(UserProfileTestFactory.create());
-		}
-
 		@Test
 		void shouldGetUser() {
 			service.getAuthorFullName(KommentarTestFactory.create());
 
-			verify(userService).getById(KommentarTestFactory.CREATED_BY);
+			verify(userService).getFullNameById(KommentarTestFactory.CREATED_BY);
 		}
 
 		@Test
 		void shouldReturnAuthorsFullName() {
+			when(userService.getFullNameById(any())).thenReturn(UserProfileTestFactory.FULLNAME);
+
 			var authorFullName = service.getAuthorFullName(KommentarTestFactory.create());
 
 			assertThat(authorFullName).isEqualTo(UserProfileTestFactory.FULLNAME);
diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/postfach/ExportNachrichtServiceTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/postfach/ExportNachrichtServiceTest.java
index 67fd22baf0f2b64cb7333fa9eca376bdea0f3d0c..dc99119f98e05e6622fa85070f4fbe379afe2e2c 100644
--- a/archive-manager-server/src/test/java/de/ozgcloud/archive/postfach/ExportNachrichtServiceTest.java
+++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/postfach/ExportNachrichtServiceTest.java
@@ -314,7 +314,7 @@ class ExportNachrichtServiceTest {
 
 			@BeforeEach
 			void mockUserService() {
-				when(userService.getById(postfachMail.getCreatedBy())).thenReturn(expectedUserProfile);
+				when(userService.getById(postfachMail.getCreatedBy())).thenReturn(Optional.of(expectedUserProfile));
 			}
 
 			@Test