diff --git a/.gitignore b/.gitignore
index 892b5f00c80bb5552fb41b42e67d90dabf7bdc7e..6a8fd526ec8c6c600fd616bca2a7893d2dee5d3e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@ target/
 
 .attach**
 .factorypath
+.vscode*
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteService.java
index de6b7301d5cf04f7ddcb2779a90397cf97103fce..8eef88537cb6531e47ee8f012576ade2725c7a52 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteService.java
@@ -26,17 +26,37 @@ package de.ozgcloud.alfa.common.clientattribute;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.alfa.common.GrpcUtil;
+import de.ozgcloud.alfa.common.errorhandling.FunctionalException;
 import de.ozgcloud.vorgang.grpc.clientAttribute.ClientAttributeServiceGrpc.ClientAttributeServiceBlockingStub;
+import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttribute;
+import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttributeValue;
 import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcUpdateClientAttributeRequest;
+import lombok.extern.log4j.Log4j2;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
 @Service
+@Log4j2
 class ClientAttributeRemoteService {
 	@GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT)
 	private ClientAttributeServiceBlockingStub service;
 
-	void resetPostfachNachricht(GrpcUpdateClientAttributeRequest request) {
-		service.update(request);
+	void setBooleanReadOnlyClientAttribute(String vorgangId, String clientName, String attributeName) {
+		try {
+			service.update(buildRequest(vorgangId, false, clientName, attributeName));
+		} catch (FunctionalException e) {
+			LOG.error("Error on resetting new Postfachnachrichten.", e);
+		}
 	}
 
+	GrpcUpdateClientAttributeRequest buildRequest(String vorgangId, boolean value, String clientName, String attributeName) {
+		return GrpcUpdateClientAttributeRequest.newBuilder()
+				.setVorgangId(vorgangId)
+				.setAttribute(
+						GrpcClientAttribute.newBuilder().setValue(
+								GrpcClientAttributeValue.newBuilder().setBoolValue(value).build())
+								.setClientName(clientName)
+								.setAttributeName(attributeName)
+								.build())
+				.build();
+	}
 }
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeService.java
index b64a40cab936be2d548e684e8e54e316b4b0eafc..474d1f82362fbb360c6b593e5b85ccfe05090400 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeService.java
@@ -23,40 +23,21 @@
  */
 package de.ozgcloud.alfa.common.clientattribute;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttribute;
-import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttributeValue;
-import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcUpdateClientAttributeRequest;
+import lombok.RequiredArgsConstructor;
 
 @Service
+@RequiredArgsConstructor
 public class ClientAttributeService {
 
 	public static final String HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME = "hasNewPostfachNachricht";
 	static final String ORIGINAL_CLIENT_NAME = "OzgCloud_NachrichtenManager";
 
-	@Autowired
-	private ClientAttributeRemoteService remoteService;
+	private final ClientAttributeRemoteService remoteService;
 
 	public void resetPostfachNachricht(String vorgangId) {
-		remoteService.resetPostfachNachricht(buildResetNewPostfachNachricht(vorgangId));
-	}
-
-	GrpcUpdateClientAttributeRequest buildResetNewPostfachNachricht(String vorgangId) {
-		return buildRequest(vorgangId, false, HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME);
-	}
-
-	private GrpcUpdateClientAttributeRequest buildRequest(String vorgangId, boolean value, String attributeName) {
-		return GrpcUpdateClientAttributeRequest.newBuilder()
-				.setVorgangId(vorgangId)
-				.setAttribute(
-						GrpcClientAttribute.newBuilder().setValue(
-										GrpcClientAttributeValue.newBuilder().setBoolValue(value).build())
-								.setClientName(ORIGINAL_CLIENT_NAME)
-								.setAttributeName(attributeName)
-								.build())
-				.build();
+		remoteService.setBooleanReadOnlyClientAttribute(vorgangId, ORIGINAL_CLIENT_NAME, HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME);
 	}
 
 }
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteServiceTest.java
index e655914cae2c9abfd0ec2dfe8cea3a2e669ba404..7d03ee5e50e176fb942836fcb5fc9b6942be5184 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteServiceTest.java
@@ -23,32 +23,103 @@
  */
 package de.ozgcloud.alfa.common.clientattribute;
 
+import static org.assertj.core.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
 
+import de.ozgcloud.alfa.common.errorhandling.FunctionalException;
+import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory;
 import de.ozgcloud.vorgang.grpc.clientAttribute.ClientAttributeServiceGrpc.ClientAttributeServiceBlockingStub;
+import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcUpdateClientAttributeRequest;
 
 class ClientAttributeRemoteServiceTest {
-	@Nested
-	class TestResetNewPostfachNachricht {
-		@Spy
-		@InjectMocks
-		private ClientAttributeRemoteService service;
+	private static final String CLIENT_NAME = "OzgCloud_NachrichtenManager";
+	private static final String ATTRIBUTE = "hasNewPostfachNachricht";
+
+	@Spy
+	@InjectMocks
+	private ClientAttributeRemoteService service;
+
+	@Mock
+	private ClientAttributeServiceBlockingStub serviceStub;
 
-		@Mock
-		private ClientAttributeServiceBlockingStub serviceStub;
+	@Mock
+	private GrpcUpdateClientAttributeRequest request;
+
+	@Nested
+	class TestSetBooleanReadOnlyClientAttribute {
+		@BeforeEach
+		void mockBuildRequest() {
+			doReturn(request).when(service).buildRequest(VorgangHeaderTestFactory.ID, false, CLIENT_NAME, ATTRIBUTE);
+		}
 
 		@Test
 		void shouldCallServiceStub() {
-			service.resetPostfachNachricht(any());
+			callSetBooleanReadOnlyClientAttribute();
+
+			verify(serviceStub).update(request);
+		}
+
+		@Test
+		void shouldCatchFunctionalException() {
+			when(serviceStub.update(any())).thenThrow(new FunctionalException(() -> "Error"));
+
+			assertDoesNotThrow(() -> callSetBooleanReadOnlyClientAttribute());
+		}
+
+		private void callSetBooleanReadOnlyClientAttribute() {
+			service.setBooleanReadOnlyClientAttribute(VorgangHeaderTestFactory.ID, CLIENT_NAME, ATTRIBUTE);
+		}
+	}
+
+	@Nested
+	class TestBuildRequest {
+		@Test
+		void shouldHaveAttribute() {
+			GrpcUpdateClientAttributeRequest request = callBuildRequest();
+
+			assertThat(request.getAttribute()).isNotNull();
+		}
+
+		@Test
+		void shouldHaveVorgangId() {
+			GrpcUpdateClientAttributeRequest request = callBuildRequest();
+
+			assertThat(request.getVorgangId()).isEqualTo(VorgangHeaderTestFactory.ID);
+		}
+
+		@Test
+		void shouldHaveAttributeName() {
+			GrpcUpdateClientAttributeRequest request = callBuildRequest();
+
+			assertThat(request.getAttribute().getAttributeName()).isEqualTo(ClientAttributeService.HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME);
+		}
+
+		@Test
+		void shouldHaveClientName() {
+			GrpcUpdateClientAttributeRequest request = callBuildRequest();
+
+			assertThat(request.getAttribute().getClientName()).isEqualTo(ClientAttributeService.ORIGINAL_CLIENT_NAME);
+		}
+
+		@Test
+		void shouldHaveAttributeValue() {
+			GrpcUpdateClientAttributeRequest request = callBuildRequest();
+
+			assertThat(request.getAttribute().getValue()).isNotNull();
+			assertThat(request.getAttribute().getValue().getBoolValue()).isFalse();
+		}
 
-			verify(serviceStub).update(any());
+		private GrpcUpdateClientAttributeRequest callBuildRequest() {
+			return service.buildRequest(VorgangHeaderTestFactory.ID, false, CLIENT_NAME, ATTRIBUTE);
 		}
 	}
 }
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeServiceTest.java
index a64de0d45bb61878de179263dc4a345206feefa0..7aa09d2fd336242a4e040febd154db99e45a5f78 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeServiceTest.java
@@ -23,8 +23,6 @@
  */
 package de.ozgcloud.alfa.common.clientattribute;
 
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import org.junit.jupiter.api.Nested;
@@ -34,12 +32,11 @@ import org.mockito.Mock;
 import org.mockito.Spy;
 
 import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory;
-import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcUpdateClientAttributeRequest;
 
 class ClientAttributeServiceTest {
 	@Spy
 	@InjectMocks
-	private ClientAttributeService service = new ClientAttributeService();
+	private ClientAttributeService service;
 	@Mock
 	private ClientAttributeRemoteService remoteService;
 
@@ -49,47 +46,8 @@ class ClientAttributeServiceTest {
 		void shouldCallRemoteService() {
 			service.resetPostfachNachricht(VorgangHeaderTestFactory.ID);
 
-			verify(remoteService).resetPostfachNachricht(any());
-		}
-	}
-
-	@Nested
-	class BuildRequest {
-
-		@Test
-		void shouldHaveAttribute() {
-			GrpcUpdateClientAttributeRequest request = service.buildResetNewPostfachNachricht(VorgangHeaderTestFactory.ID);
-
-			assertThat(request.getAttribute()).isNotNull();
-		}
-
-		@Test
-		void shouldHaveVorgangId() {
-			GrpcUpdateClientAttributeRequest request = service.buildResetNewPostfachNachricht(VorgangHeaderTestFactory.ID);
-
-			assertThat(request.getVorgangId()).isEqualTo(VorgangHeaderTestFactory.ID);
-		}
-
-		@Test
-		void shouldHaveAttributeName() {
-			GrpcUpdateClientAttributeRequest request = service.buildResetNewPostfachNachricht(VorgangHeaderTestFactory.ID);
-
-			assertThat(request.getAttribute().getAttributeName()).isEqualTo(ClientAttributeService.HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME);
-		}
-
-		@Test
-		void shouldHaveClientName() {
-			GrpcUpdateClientAttributeRequest request = service.buildResetNewPostfachNachricht(VorgangHeaderTestFactory.ID);
-
-			assertThat(request.getAttribute().getClientName()).isEqualTo(ClientAttributeService.ORIGINAL_CLIENT_NAME);
-		}
-
-		@Test
-		void shouldHaveAttributeValue() {
-			GrpcUpdateClientAttributeRequest request = service.buildResetNewPostfachNachricht(VorgangHeaderTestFactory.ID);
-
-			assertThat(request.getAttribute().getValue()).isNotNull();
-			assertThat(request.getAttribute().getValue().getBoolValue()).isFalse();
+			verify(remoteService).setBooleanReadOnlyClientAttribute(VorgangHeaderTestFactory.ID, ClientAttributeService.ORIGINAL_CLIENT_NAME,
+					ClientAttributeService.HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME);
 		}
 	}
 }