kubernetes/kops · error

error deleting ForwardingRule %s: %v

Error message

error deleting ForwardingRule %s: %v

What it means

Fires in deleteForwardingRule when ForwardingRules().Delete fails with a non-NotFound error during teardown — a permissions, dependency (target pool still exists), or transient API failure. NotFound is already treated as deleted.

Source

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

func deleteForwardingRule(cloud fi.Cloud, r *resources.Resource) error {
	ctx := context.TODO()

	c := cloud.(gce.GCECloud)
	t := r.Obj.(*compute.ForwardingRule)

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

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

	return c.WaitForOp(op)
}

// listFirewallRules discovers Firewall objects for the cluster
func (d *clusterDiscoveryGCE) listFirewallRules() ([]*resources.Resource, error) {
	c := d.gceCloud

	var resourceTrackers []*resources.Resource

	ctx := context.Background()

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

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Check compute.forwardingRules.delete permission
  2. Delete dependent target pools first if a dependency error occurs, then retry
  3. Inspect the wrapped error for the specific GCE cause
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at pkg/resources/gce/gce.go:512 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/9c0d83ac9fe84e1f. Report an issue: GitHub.