kubernetes/kops · error

failed to delete volume %s: %w

Error message

failed to delete volume %s: %w

What it means

DeleteVolume's instance API DeleteVolume call failed with a non-404 error (404 is tolerated as already-deleted and logged at V(8)). Typically means the volume is still attached to a server, is locked, or there is a permission/API problem.

Source

Thrown at upup/pkg/fi/cloudup/scaleway/cloud.go:671

			klog.V(8).Infof("SSH key %q (%s) was already deleted", sshkey.Name, sshkey.ID)
			return nil
		}
		return fmt.Errorf("failed to delete ssh key %s: %w", sshkey.ID, err)
	}
	return nil
}

func (s *scwCloudImplementation) DeleteVolume(volume *instance.Volume) error {
	err := s.instanceAPI.DeleteVolume(&instance.DeleteVolumeRequest{
		VolumeID: volume.ID,
		Zone:     s.zone,
	})
	if err != nil {
		if is404Error(err) {
			klog.V(8).Infof("Volume %q (%s) was already deleted", volume.Name, volume.ID)
			return nil
		}
		return fmt.Errorf("failed to delete volume %s: %w", volume.ID, err)
	}

	_, err = s.instanceAPI.WaitForVolume(&instance.WaitForVolumeRequest{
		VolumeID: volume.ID,
		Zone:     s.zone,
	})
	if !is404Error(err) {
		return fmt.Errorf("delete volume %s: error waiting for volume after deletion: %w", volume.ID, err)
	}

	return nil
}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Verify the volume is detached from all servers before deletion
  2. Check for volume locks or snapshots in progress
  3. Retry deletion after resolving the wrapped error
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/scaleway/cloud.go:671 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/bd90759421fef7d4. Report an issue: GitHub.