diff --git a/provider/storage-aws/src/main/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImpl.java b/provider/storage-aws/src/main/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImpl.java
index 007ec26960c45b4ba7446c98c7b31b107d19019b..b9001f9801426f5a2cf5e71f2b5f745dc3b78878 100644
--- a/provider/storage-aws/src/main/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImpl.java
+++ b/provider/storage-aws/src/main/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImpl.java
@@ -101,7 +101,7 @@ public class CloudStorageImpl implements ICloudStorage {
             CompletableFuture<List<RecordProcessor>> results =  CompletableFuture.allOf(cfs)
                     .thenApply(ignored -> futures.stream()
                     .map(CompletableFuture::join)
-                    .collect(Collectors.toList()));
+                    .toList());
 
             List<RecordProcessor> recordProcessors = results.get();
             for(RecordProcessor recordProcessor : recordProcessors){
@@ -112,6 +112,7 @@ public class CloudStorageImpl implements ICloudStorage {
                             , recordProcessor.getRecordId()
                             , recordProcessor.getException().getErrorMessage()
                     ));
+                    throw recordProcessor.getException();
                 }
             }
         } catch (Exception e) {
diff --git a/provider/storage-aws/src/test/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImplTest.java b/provider/storage-aws/src/test/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImplTest.java
index d52e6e60a09108ef85c3065141930145238d51f1..6123470b365fd99b5601c5392ebebf139e04cda1 100644
--- a/provider/storage-aws/src/test/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImplTest.java
+++ b/provider/storage-aws/src/test/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImplTest.java
@@ -138,7 +138,18 @@ class CloudStorageImplTest {
     }
 
     @Test
-    void write_shouldThrowAppException_whenRecordProcessingFails() {
+    void write_shouldThrowException_whenRecordProcessingHasException() {
+        when(recordProcessing.getRecordData()).thenReturn(recordData);
+        doNothing().when(userAccessService).validateRecordAcl(any());
+
+        when(recordProcessing.getRecordMetadata()).thenReturn(record);
+        doThrow(AmazonServiceException.class).when(s3RecordClient).saveRecord(recordProcessing, dataPartition);
+
+        assertThrows(AppException.class, () -> repo.write(recordProcessing));
+    }
+
+    @Test
+    void write_shouldThrowAppException_whenRecordProcessingThrowsException() {
         when(recordProcessing.getRecordData()).thenReturn(recordData);
         doNothing().when(userAccessService).validateRecordAcl(any());