diff --git a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java
index d5f1aa22a54acee33d98a9212725616fbae03111..1d355f5fd8d03b77f32b3104564f365a4c81a508 100644
--- a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java
+++ b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java
@@ -156,13 +156,14 @@ public class EingangStubReceiverStreamObserver implements StreamObserver<GrpcRou
 		if (Objects.isNull(currentFile)) {
 			throw new IllegalStateException("File content received before metadata.");
 		}
-		try {
-			pipedOutput.write(content.getContent().toByteArray());
-			if (content.getIsEndOfFile()) {
-				handleEndOfFile();
+		if (content.getIsEndOfFile()) {
+			handleEndOfFile();
+		} else {
+			try {
+				pipedOutput.write(content.getContent().toByteArray());
+			} catch (IOException e) {
+				throw new TechnicalException("Error when writing file content.", e);
 			}
-		} catch (IOException e) {
-			throw new TechnicalException("Error when writing file content.", e);
 		}
 	}
 
diff --git a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserverTest.java b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserverTest.java
index f4bacd0b2c16dc6db7749bfe7a49e6b20473aebf..d14d99362f0f9d61e80448a4a0a196137607ab55 100644
--- a/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserverTest.java
+++ b/forwarder/src/test/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserverTest.java
@@ -502,42 +502,61 @@ class EingangStubReceiverStreamObserverTest {
 				setCurrentFile(incomingFile);
 			}
 
-			@Test
-			@SneakyThrows
-			void shouldWriteContentToOutputStream() {
-				observer.storeFileContent(GrpcFileContentTestFactory.create());
+			@Nested
+			class TestOnEndOfFile {
 
-				verify(pipedOutput).write(GrpcFileContentTestFactory.CONTENT);
-			}
+				private GrpcFileContent fileContent = GrpcFileContentTestFactory.createBuilder().setIsEndOfFile(true).build();
 
-			@Test
-			void shouldCallHandleEndOfFile() {
-				doNothing().when(observer).handleEndOfFile();
-				var fileContent = GrpcFileContentTestFactory.createBuilder().setIsEndOfFile(true).build();
+				@BeforeEach
+				void setUp() {
+					doNothing().when(observer).handleEndOfFile();
+				}
+
+				@Test
+				void shouldCallHandleEndOfFile() {
+					observer.storeFileContent(fileContent);
+
+					verify(observer).handleEndOfFile();
+				}
 
-				observer.storeFileContent(fileContent);
+				@Test
+				@SneakyThrows
+				void shouldNotWriteContentToOutputStream() {
+					observer.storeFileContent(fileContent);
 
-				verify(observer).handleEndOfFile();
+					verify(pipedOutput, never()).write(any());
+				}
 			}
 
-			@Test
-			void shouldNotCallHandleEndOfFile() {
-				var fileContent = GrpcFileContentTestFactory.createBuilder().setIsEndOfFile(false).build();
+			@Nested
+			class TestOnNotEndOfFile {
 
-				observer.storeFileContent(fileContent);
+				private GrpcFileContent fileContent = GrpcFileContentTestFactory.createBuilder().setIsEndOfFile(false).build();
 
-				verify(observer, never()).handleEndOfFile();
-			}
+				@Test
+				@SneakyThrows
+				void shouldWriteContentToOutputStream() {
+					observer.storeFileContent(fileContent);
 
-			@Test
-			@SneakyThrows
-			void shouldThrowTechnicalExceptionOnIOException() {
-				doThrow(new IOException()).when(pipedOutput).write(any());
-				var fileContent = GrpcFileContentTestFactory.create();
+					verify(pipedOutput).write(GrpcFileContentTestFactory.CONTENT);
+				}
 
-				assertThrows(TechnicalException.class, () -> {
+				@Test
+				void shouldNotCallHandleEndOfFile() {
 					observer.storeFileContent(fileContent);
-				});
+
+					verify(observer, never()).handleEndOfFile();
+				}
+
+				@Test
+				@SneakyThrows
+				void shouldThrowTechnicalExceptionOnIOException() {
+					doThrow(new IOException()).when(pipedOutput).write(any());
+
+					assertThrows(TechnicalException.class, () -> {
+						observer.storeFileContent(fileContent);
+					});
+				}
 			}
 		}
 	}