kubernetes/kops · error

Multiple load balancers for name %s

Error message

Multiple load balancers for name %s

What it means

More than one Octavia load balancer exists with the task's name. The name-to-LB mapping must be unique for discovery; duplicates usually come from manual LB creation or leftovers from a previous cluster with the same name.

Source

Thrown at upup/pkg/fi/cloudup/openstacktasks/lb.go:168

		return nil, nil
	}

	cloud := context.T.Cloud.(openstack.OpenstackCloud)
	lbPage, err := loadbalancers.List(cloud.LoadBalancerClient(), loadbalancers.ListOpts{
		Name: fi.ValueOf(s.Name),
	}).AllPages(context.Context())
	if err != nil {
		return nil, fmt.Errorf("Failed to retrieve loadbalancers for name %s: %v", fi.ValueOf(s.Name), err)
	}
	lbs, err := loadbalancers.ExtractLoadBalancers(lbPage)
	if err != nil {
		return nil, fmt.Errorf("Failed to extract loadbalancers : %v", err)
	}
	if len(lbs) == 0 {
		return nil, nil
	}
	if len(lbs) > 1 {
		return nil, fmt.Errorf("Multiple load balancers for name %s", fi.ValueOf(s.Name))
	}

	return NewLBTaskFromCloud(cloud, s.Lifecycle, &lbs[0], s)
}

func (s *LB) Run(context *fi.CloudupContext) error {
	return fi.CloudupDefaultDeltaRunMethod(s, context)
}

func (_ *LB) CheckChanges(a, e, changes *LB) error {
	if a == nil {
		if e.Name == nil {
			return fi.RequiredField("Name")
		}
	} else {
		if changes.ID != nil {
			return fi.CannotChangeField("ID")
		}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. List load balancers with the name and identify duplicates
  2. Delete the stale load balancer
  3. Re-run discovery once the name is unique
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/openstacktasks/lb.go:168 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/8d1fc33a3600a130. Report an issue: GitHub.