diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java
index 5f9cfc050e48a12217c6c2bb51f754378a8350b6..372a0f5f197e2ddbc922d881c345f19b0d3e073a 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java
@@ -7,7 +7,9 @@ import org.springframework.stereotype.Service;
 
 import de.ozgcloud.alfa.common.GrpcUtil;
 import de.ozgcloud.bescheid.BescheidServiceGrpc.BescheidServiceBlockingStub;
+import de.ozgcloud.bescheid.GrpcBescheid;
 import de.ozgcloud.bescheid.GrpcGetBescheidDraftRequest;
+import de.ozgcloud.bescheid.GrpcGetBescheidDraftResponse;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
 @Service
@@ -21,7 +23,7 @@ class BescheidRemoteService {
 	public Optional<Bescheid> getBescheidDraft(String vorgangId) {
 		var request = buildGetBescheidDraftRequest(vorgangId);
 		var response = bescheidServiceStub.getBescheidDraft(request);
-		return Optional.ofNullable(bescheidMapper.fromGrpc(response.getBescheid(), vorgangId));
+		return getBescheidFromResponse(response).map(bescheid -> bescheidMapper.fromGrpc(bescheid, vorgangId));
 	}
 
 	GrpcGetBescheidDraftRequest buildGetBescheidDraftRequest(String vorgangId) {
@@ -30,4 +32,8 @@ class BescheidRemoteService {
 				.build();
 	}
 
+	Optional<GrpcBescheid> getBescheidFromResponse(GrpcGetBescheidDraftResponse response) {
+		return response.hasBescheid() ? Optional.of(response.getBescheid()) : Optional.empty();
+	}
+
 }
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java
index 94abc152a865c1d00144f7754bb0f9b7ded077eb..2671618ca8384dc7119815e353aa77ea092da361 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java
@@ -3,6 +3,8 @@ package de.ozgcloud.alfa.bescheid;
 import static org.assertj.core.api.Assertions.*;
 import static org.mockito.Mockito.*;
 
+import java.util.Optional;
+
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
@@ -36,8 +38,6 @@ class BescheidRemoteServiceTest {
 		void setUp() {
 			doReturn(request).when(service).buildGetBescheidDraftRequest(VorgangHeaderTestFactory.ID);
 			when(bescheidServiceStub.getBescheidDraft(request)).thenReturn(response);
-			when(bescheidMapper.fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID)).thenReturn(
-					bescheidDraft);
 		}
 
 		@Test
@@ -56,6 +56,8 @@ class BescheidRemoteServiceTest {
 
 		@Test
 		void shouldCallMapper() {
+			doReturn(Optional.of(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID)).when(service).getBescheidFromResponse(response);
+
 			service.getBescheidDraft(VorgangHeaderTestFactory.ID);
 
 			verify(bescheidMapper).fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID);
@@ -63,6 +65,9 @@ class BescheidRemoteServiceTest {
 
 		@Test
 		void shouldReturnBescheid() {
+			when(bescheidMapper.fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID)).thenReturn(
+					bescheidDraft);
+
 			var bescheidDraft = service.getBescheidDraft(VorgangHeaderTestFactory.ID);
 
 			assertThat(bescheidDraft).hasValue(this.bescheidDraft);
@@ -70,12 +75,19 @@ class BescheidRemoteServiceTest {
 
 		@Test
 		void shouldReturnEmpty() {
-			when(bescheidMapper.fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID)).thenReturn(null);
+			doReturn(Optional.empty()).when(service).getBescheidFromResponse(response);
 
 			var bescheidDraft = service.getBescheidDraft(VorgangHeaderTestFactory.ID);
 
 			assertThat(bescheidDraft).isEmpty();
 		}
+
+		@Test
+		void shouldGetBescheidFromResponse() {
+			service.getBescheidDraft(VorgangHeaderTestFactory.ID);
+
+			verify(service).getBescheidFromResponse(response);
+		}
 	}
 
 	@Nested
@@ -89,4 +101,22 @@ class BescheidRemoteServiceTest {
 		}
 	}
 
+	@Nested
+	class GetBescheidFromResponseTest {
+
+		@Test
+		void shouldReturnEmpty() {
+			var bescheid = service.getBescheidFromResponse(GrpcGetBescheidDraftResponse.getDefaultInstance());
+
+			assertThat(bescheid).isEmpty();
+		}
+
+		@Test
+		void shouldReturnBescheid() {
+			var bescheid = service.getBescheidFromResponse(GrpcGetBescheidDraftResponseTestFactory.create());
+
+			assertThat(bescheid).hasValue(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID);
+		}
+	}
+
 }
\ No newline at end of file