diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarder.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarder.java
index 1e12a3b6c91fae8df146896fd5b4d355f4ab5023..20cbfb80bb55043fc45d650886d0d40a771d6176 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarder.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarder.java
@@ -80,11 +80,15 @@ class EingangForwarder {
 
 	public void forward(GrpcRouteForwarding grpcRouteForwarding, List<IncomingFileGroup> attachments, List<IncomingFile> representations) {
 		var future = performGrpcCall();
+		sendEingang(grpcRouteForwarding, attachments, representations);
+		requestObserver.onCompleted();
+		waitForCompletion(future);
+	}
+
+	private void sendEingang(GrpcRouteForwarding grpcRouteForwarding, List<IncomingFileGroup> attachments, List<IncomingFile> representations) {
 		sendRouteForwarding(grpcRouteForwarding);
 		sendAttachments(attachments);
 		sendRepresentations(representations);
-		requestObserver.onCompleted();
-		waitForCompletion(future);
 	}
 
 	Future<GrpcRouteForwardingResponse> performGrpcCall() {
@@ -268,11 +272,11 @@ class EingangForwarder {
 	static class DelegatingOnReadyHandler implements Runnable {
 
 		private final ClientCallStreamObserver<GrpcRouteForwardingRequest> requestStream;
-		private final AtomicReference<Runnable> delegate = new AtomicReference<>();
+		private final AtomicReference<Runnable> delegateRef = new AtomicReference<>();
 		private final AtomicBoolean done = new AtomicBoolean(false);
 
 		public void setDelegate(Runnable onReadyHandler) {
-			this.delegate.set(onReadyHandler);
+			this.delegateRef.set(onReadyHandler);
 		}
 
 		public void stop() {
@@ -285,7 +289,7 @@ class EingangForwarder {
 				if (Thread.currentThread().isInterrupted()) {
 					break;
 				}
-				var delegate = this.delegate.get();
+				var delegate = delegateRef.get();
 				if (delegate != null) {
 					delegate.run();
 				}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarderTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarderTest.java
index 49798fe14b7f7f464616e5931d222ca970c07df5..aacedd3854bd7071ae24829070cf1ffeca71b4de 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarderTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarderTest.java
@@ -183,6 +183,14 @@ class EingangForwarderTest {
 
 			verify(serviceStub).routeForwarding(getResponseObserverFromForwarder());
 		}
+
+		@Test
+		void shouldReturnFutureOfResponseObserver() {
+			var result = forwarder.performGrpcCall();
+
+			var expectedFuture = ReflectionTestUtils.getField(getResponseObserverFromForwarder(), "future", CompletableFuture.class);
+			assertThat(result).isSameAs(expectedFuture);
+		}
 	}
 
 	@Nested
@@ -1194,7 +1202,7 @@ class EingangForwarderTest {
 		}
 
 		private Runnable getDelegateFromOnReadyHandler() {
-			return (Runnable) ReflectionTestUtils.getField(onReadyHandler, "delegate", AtomicReference.class).get();
+			return (Runnable) ReflectionTestUtils.getField(onReadyHandler, "delegateRef", AtomicReference.class).get();
 		}
 	}
 
@@ -1209,8 +1217,4 @@ class EingangForwarderTest {
 	private void setRequestObserverInForwarder(ClientCallStreamObserver<GrpcRouteForwardingRequest> requestObserver) {
 		ReflectionTestUtils.setField(forwarder, "requestObserver", requestObserver);
 	}
-
-	private void setForwardFutureInForwarder(CompletableFuture<Void> future) {
-		ReflectionTestUtils.setField(forwarder, "forwardFuture", future);
-	}
 }