kubernetes/kops · error

error deleting Disk %s: %v

Error message

error deleting Disk %s: %v

What it means

Fires in deleteGCEDisk when the Disks().Delete call fails with a non-NotFound error while tearing down a cluster disk — a permissions, dependency (disk attached), or transient API failure. NotFound is already treated as deleted.

Source

Thrown at pkg/resources/gce/gce.go:371

}

func deleteGCEDisk(cloud fi.Cloud, r *resources.Resource) error {
	c := cloud.(gce.GCECloud)
	t := r.Obj.(*compute.Disk)

	klog.V(2).Infof("Deleting GCE Disk %s", t.SelfLink)
	u, err := gce.ParseGoogleCloudURL(t.SelfLink)
	if err != nil {
		return err
	}

	op, err := c.Compute().Disks().Delete(u.Project, u.Zone, u.Name)
	if err != nil {
		if gce.IsNotFound(err) {
			klog.Infof("Disk not found, assuming deleted: %q", t.SelfLink)
			return nil
		}
		return fmt.Errorf("error deleting Disk %s: %v", t.SelfLink, err)
	}

	return c.WaitForOp(op)
}

func (d *clusterDiscoveryGCE) listTargetPools() ([]*resources.Resource, error) {
	c := d.gceCloud

	var resourceTrackers []*resources.Resource

	ctx := context.Background()

	tps, err := c.Compute().TargetPools().List(ctx, c.Project(), c.Region())
	if err != nil {
		return nil, fmt.Errorf("error listing TargetPools: %v", err)
	}

	for _, tp := range tps {

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Ensure the disk is detached from any VM before deleting, then retry
  2. Check compute.disks.delete permission
  3. Inspect the wrapped error for resourceInUseByAnotherResource dependencies
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at pkg/resources/gce/gce.go:371 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/33632cae54a4f891. Report an issue: GitHub.