tailscale/tailscale · error

failed to delete %s %q: %w

Error message

failed to delete %s %q: %w

What it means

ProxyGroupPolicy cleanup path: deleting a generated ValidatingAdmissionPolicy (or its binding) failed with a non-NotFound error. NotFound is deliberately ignored (already gone); any other API-server error is wrapped and returned so reconcile retries.

Source

Thrown at k8s-operator/reconciler/proxygrouppolicy/proxygrouppolicy.go:116

				Name: egress,
			},
		},
		&admr.ValidatingAdmissionPolicyBinding{
			ObjectMeta: metav1.ObjectMeta{
				Name: egress,
			},
		},
	}

	for _, obj := range objects {
		err := r.Delete(ctx, obj)
		switch {
		case apierrors.IsNotFound(err):
			// A resource may have already been deleted in a previous reconciliation that failed for
			// some reason, so we'll ignore it if it doesn't exist.
			continue
		case err != nil:
			return reconcile.Result{}, fmt.Errorf("failed to delete %s %q: %w", obj.GetObjectKind().GroupVersionKind().Kind, obj.GetName(), err)
		}
	}

	return reconcile.Result{}, nil
}

func (r *Reconciler) createOrUpdate(ctx context.Context, namespace string, policies tsapi.ProxyGroupPolicyList) (reconcile.Result, error) {
	ingressNames := set.Set[string]{}
	egressNames := set.Set[string]{}

	// If this namespace has multiple ProxyGroupPolicy resources, we'll reduce them down to just their distinct
	// egress/ingress names.
	for _, policy := range policies.Items {
		ingressNames.AddSlice(policy.Spec.Ingress)
		egressNames.AddSlice(policy.Spec.Egress)
	}

	ingress, err := r.generateIngressPolicy(ctx, namespace, ingressNames)

View on GitHub (pinned to 0fd2f14deb)

Solutions

  1. Check operator RBAC delete permissions and that the resource exists.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at k8s-operator/reconciler/proxygrouppolicy/proxygrouppolicy.go:116 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tailscale/tailscale@0fd2f14deb (2026-08-18). Data as JSON: /api/errors/8e0561b812f0ad03. Report an issue: GitHub.