diff --git a/cdm/s3/src/main/java/thredds/filesystem/s3/ControllerS3.java b/cdm/s3/src/main/java/thredds/filesystem/s3/ControllerS3.java index 6cdf4ace41..e64d26c962 100644 --- a/cdm/s3/src/main/java/thredds/filesystem/s3/ControllerS3.java +++ b/cdm/s3/src/main/java/thredds/filesystem/s3/ControllerS3.java @@ -331,6 +331,12 @@ public boolean hasNext() { // The response was truncated. Make a new request using the next continuation token to pick up where we // left off. String continuationToken = useV2 ? responseV2.nextContinuationToken() : responseV1.nextMarker(); + + // OpenStack Swift may omit NextMarker for a truncated V1 response. + // Continue from the final key returned in the current page. + if (!useV2 && continuationToken == null && responseV1.isTruncated() && !objects.isEmpty()) { + continuationToken = objects.get(objects.size() - 1).key(); + } updateObjectList(continuationToken); } }