kubernetes/kops · error

error deleting TargetPool %s: %v

Error message

error deleting TargetPool %s: %v

What it means

deleteTargetPool wraps the Compute TargetPools.Delete failure during teardown. NotFound is treated as already-deleted; any other error (dependency still in use, permission) is wrapped here with the target pool self-link for identification.

Source

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

}

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

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

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

	return c.WaitForOp(op)
}

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

	var resourceTrackers []*resources.Resource

	ctx := context.Background()

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

	for _, fr := range frs {

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Ensure forwarding rules referencing the target pool are deleted first, then retry
  2. Check compute.targetPools.delete permission
  3. Inspect the wrapped error for dependency violations
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at pkg/resources/gce/gce.go:444 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/29c6046ac1b7a068. Report an issue: GitHub.