From 4d68def01fc97bee72587ec57e13b4b720b69dc6 Mon Sep 17 00:00:00 2001 From: Jvst Me Date: Thu, 28 May 2026 22:50:55 +0200 Subject: [PATCH] [Internal]: Fix OCI image publishing script Fix error when deleting the storage bucket: ``` oci.exceptions.ServiceError: {'message': "Bucket named 'dstack-0.13' has pending multipart uploads. Stop all multipart uploads first.", ...} ``` For some reason, image export into a bucket leaves a hanging multipart upload after the export finishes. The same behavior can be reproduced in the OCI Console. Abort such uploads before deleting the bucket. --- src/dstack/_internal/core/backends/oci/resources.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/dstack/_internal/core/backends/oci/resources.py b/src/dstack/_internal/core/backends/oci/resources.py index 0d9e42f107..4f32e299db 100644 --- a/src/dstack/_internal/core/backends/oci/resources.py +++ b/src/dstack/_internal/core/backends/oci/resources.py @@ -728,6 +728,12 @@ def create_pre_authenticated_request( def delete_bucket( namespace: str, bucket_name: str, client: oci.object_storage.ObjectStorageClient ) -> None: + in_progress_uploads: Iterable[oci.object_storage.models.MultipartUpload] = ( + chain_paginated_responses(client.list_multipart_uploads, namespace, bucket_name) + ) + for upload in in_progress_uploads: + client.abort_multipart_upload(namespace, bucket_name, upload.object, upload.upload_id) + par_ids = { par.id for par in chain_paginated_responses(