kubernetes/kops · error

found multiple Volumes with name: %s

Error message

found multiple Volumes with name: %s

What it means

Listing Cinder volumes by the task's name returned more than one volume. The name-to-volume mapping must be unique; duplicates make it ambiguous which volume the task manages, often from manual volume copies.

Source

Thrown at upup/pkg/fi/cloudup/openstacktasks/volume.go:59

func (c *Volume) CompareWithID() *string {
	return c.ID
}

func (c *Volume) Find(context *fi.CloudupContext) (*Volume, error) {
	cloud := context.T.Cloud.(openstack.OpenstackCloud)
	opt := cinderv3.ListOpts{
		Name: fi.ValueOf(c.Name),
	}
	volumes, err := cloud.ListVolumes(opt)
	if err != nil {
		return nil, err
	}
	n := len(volumes)
	if n == 0 {
		return nil, nil
	} else if n != 1 {
		return nil, fmt.Errorf("found multiple Volumes with name: %s", fi.ValueOf(c.Name))
	}
	v := volumes[0]
	actual := &Volume{
		ID:               new(v.ID),
		Name:             new(v.Name),
		AvailabilityZone: new(v.AvailabilityZone),
		VolumeType:       new(v.VolumeType),
		SizeGB:           new(int64(v.Size)),
		Tags:             v.Metadata,
		Lifecycle:        c.Lifecycle,
	}
	// remove tags "readonly" and "attached_mode", openstack are adding these and if not removed
	// kops will always try to update volumes
	delete(actual.Tags, "readonly")
	delete(actual.Tags, "attached_mode")
	c.ID = actual.ID
	c.AvailabilityZone = actual.AvailabilityZone
	return actual, nil

View on GitHub (pinned to 4c8573c808)

Solutions

  1. List volumes with the name and de-duplicate
  2. Rename or delete the extra volumes
  3. Re-run discovery once the name is unique
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/openstacktasks/volume.go:59 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/fa11c34cf8089b03. Report an issue: GitHub.