diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtils.java b/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtils.java
index d8f82a7b7a6b5a55f4674aaa0801096719fc4419..d262e240e30894e61e4341d7f1a81a2b2fda4e10 100644
--- a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtils.java
+++ b/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtils.java
@@ -87,13 +87,18 @@ public class GrpcFileUploadUtils {
 		}
 
 		void sendNext() {
-			if (!done.get()) {
+			while (!done.get() && isReady()) {
 				waitForOberver();
 				LOG.debug("Sending next chunk.");
 				sendMetaData();
 				long sentSize = sendNextChunk();
 				checkForEndOfStream(sentSize);
 			}
+			LOG.debug("Finished or waiting to become ready.");
+		}
+
+		private boolean isReady() {
+			return requestObserver.isReady();
 		}
 
 		private void waitForOberver() {
@@ -150,7 +155,6 @@ public class GrpcFileUploadUtils {
 				IOUtils.closeQuietly(inputStream);
 				requestObserver.onCompleted();
 				done.set(true);
-				IOUtils.closeQuietly(inputStream);
 			}
 		}
 	}