diff --git a/src/dstack/_internal/core/backends/runpod/compute.py b/src/dstack/_internal/core/backends/runpod/compute.py index 5a3a23210..7d3feaab1 100644 --- a/src/dstack/_internal/core/backends/runpod/compute.py +++ b/src/dstack/_internal/core/backends/runpod/compute.py @@ -430,7 +430,19 @@ def create_volume(self, volume: Volume) -> VolumeProvisioningData: def delete_volume(self, volume: Volume): if volume.volume_id is not None: - self.api_client.delete_network_volume(volume_id=volume.volume_id) + try: + self.api_client.delete_network_volume(volume_id=volume.volume_id) + except RunpodApiClientError as e: + if ( + len(e.errors) > 0 + and "Tried to delete nonexistent network volume" in e.errors[0]["message"] + ): + logger.debug( + "The volume %s not found. Skipping deletion.", + volume.volume_id, + ) + return + raise def _generate_container_registry_auth_id( self, registry_auth: Optional[RegistryAuth]