kubernetes/kops · error

deleting load-balancer IP: %w

Error message

deleting load-balancer IP: %w

What it means

In DeleteLoadBalancer, after the load-balancer was deleted and awaited, releasing one of its reserved IPs via lbAPI.ReleaseIP failed. The load-balancer itself is already gone, so this leaves orphaned reserved IPs that will keep billing until manually released.

Source

Thrown at upup/pkg/fi/cloudup/scaleway/cloud.go:585

	if err != nil {
		return fmt.Errorf("deleting load-balancer %s: %w", loadBalancer.ID, err)
	}

	// We wait for the load-balancer to be deleted, then we detach its IPs
	_, err = s.lbAPI.WaitForLb(&lb.ZonedAPIWaitForLBRequest{
		LBID: loadBalancer.ID,
		Zone: s.zone,
	})
	if !is404Error(err) {
		return fmt.Errorf("waiting for load-balancer %s after deletion: %w", loadBalancer.ID, err)
	}
	for _, ip := range ipsToRelease {
		err := s.lbAPI.ReleaseIP(&lb.ZonedAPIReleaseIPRequest{
			Zone: s.zone,
			IPID: ip.ID,
		})
		if err != nil {
			return fmt.Errorf("deleting load-balancer IP: %w", err)
		}
	}
	return nil
}

func (s *scwCloudImplementation) DeleteServer(server *instance.Server) error {
	srv, err := s.instanceAPI.GetServer(&instance.GetServerRequest{
		Zone:     s.zone,
		ServerID: server.ID,
	})
	if err != nil {
		if is404Error(err) {
			klog.V(4).Infof("delete server %s: instance %q was already deleted", server.ID, server.Name)
			return nil
		}
		return err
	}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Manually release the orphaned IP in the Scaleway console or via the API
  2. Check the wrapped error (IP may already be released or attached elsewhere)
  3. Re-run cluster deletion to retry cleanup
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/scaleway/cloud.go:585 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/e8df5df030571bff. Report an issue: GitHub.