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
- Verify the volume is detached from all servers before deletion
- Check for volume locks or snapshots in progress
- 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.