diff --git a/test/fixtures/build.gradle b/test/fixtures/build.gradle
index 02d68517903a3..e69de29bb2d1d 100644
--- a/test/fixtures/build.gradle
+++ b/test/fixtures/build.gradle
@@ -1,9 +0,0 @@
-
-subprojects {
- // fixtures don't have tests, these are external projects used by the build
- pluginManager.withPlugin('java') {
- tasks.named('test').configure {
- enabled = false
- }
- }
-}
diff --git a/test/fixtures/s3-fixture/src/test/java/fixture/s3/S3HttpHandlerTests.java b/test/fixtures/s3-fixture/src/test/java/fixture/s3/S3HttpHandlerTests.java
index 375f428f748e6..58f32292fa91c 100644
--- a/test/fixtures/s3-fixture/src/test/java/fixture/s3/S3HttpHandlerTests.java
+++ b/test/fixtures/s3-fixture/src/test/java/fixture/s3/S3HttpHandlerTests.java
@@ -31,6 +31,8 @@
import java.util.List;
import java.util.Objects;
+import static org.hamcrest.Matchers.allOf;
+import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.greaterThan;
public class S3HttpHandlerTests extends ESTestCase {
@@ -261,7 +263,7 @@ public void testListAndAbortMultipartUpload() {
path/blob10000false\
"""), handleRequest(handler, "GET", "/bucket/?uploads&prefix=path/blob"));
- assertEquals(RestStatus.NOT_FOUND, handleRequest(handler, "POST", "/bucket/path/blob?uploadId=" + uploadId, Strings.format("""
+ final var completeUploadResponse = handleRequest(handler, "POST", "/bucket/path/blob?uploadId=" + uploadId, Strings.format("""
@@ -272,7 +274,13 @@ public void testListAndAbortMultipartUpload() {
%s
2
- """, part1Etag, part2Etag)).status());
+ """, part1Etag, part2Etag));
+ if (completeUploadResponse.status() == RestStatus.OK) {
+ // possible, but rare, indicating that S3 started processing the upload before returning an error
+ assertThat(completeUploadResponse.body().utf8ToString(), allOf(containsString(""), containsString("NoSuchUpload")));
+ } else {
+ assertEquals(RestStatus.NOT_FOUND, completeUploadResponse.status());
+ }
}
private static String getUploadId(BytesReference createUploadResponseBody) {