kubernetes/kops · error

error setting tags to unknown volume

Error message

error setting tags to unknown volume

What it means

SetVolumeTags was called with an empty volume ID but a non-empty tags map. It is a defensive guard against programming errors where the caller lost track of which volume to tag; the request is rejected before hitting the API.

Source

Thrown at upup/pkg/fi/cloudup/openstack/volume.go:114

	if !done {
		if err == nil {
			err = wait.ErrWaitTimeout
		}
		return attachment, err
	}
	return attachment, err
}

func (c *openstackCloud) SetVolumeTags(id string, tags map[string]string) error {
	return setVolumeTags(c, id, tags)
}

func setVolumeTags(c OpenstackCloud, id string, tags map[string]string) error {
	if len(tags) == 0 {
		return nil
	}
	if id == "" {
		return fmt.Errorf("error setting tags to unknown volume")
	}
	klog.V(4).Infof("setting tags to cinder volume %q: %v", id, tags)

	opt := cinder.UpdateOpts{Metadata: tags}
	done, err := vfs.RetryWithBackoff(writeBackoff, func() (bool, error) {
		_, err := cinder.Update(context.TODO(), c.BlockStorageClient(), id, opt).Extract()
		if err != nil {
			return false, fmt.Errorf("error setting tags to cinder volume %q: %v", id, err)
		}
		return true, nil
	})
	if err != nil {
		return err
	} else if done {
		return nil
	} else {
		return wait.ErrWaitTimeout
	}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Trace the caller: the volume ID was never populated (volume creation may have failed earlier)
  2. Ensure volume creation succeeded and its ID is propagated before tagging
Defensive patterns

Strategy: validation

When it happens

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