kubernetes/kops · error

failed to delete floating ip %s: %v

Error message

failed to delete floating ip %s: %v

What it means

deleteFloatingIP wraps the l3floatingip.Delete ExtractErr failure (via the compute client) when releasing a floating IP. NotFound is treated as success; any other API error fires this message and is retried with the delete backoff before surfacing.

Source

Thrown at upup/pkg/fi/cloudup/openstack/floatingip.go:103

	})
	if !done {
		if err == nil {
			err = wait.ErrWaitTimeout
		}
		return fips, err
	}
	return fips, nil
}

func (c *openstackCloud) DeleteFloatingIP(id string) (err error) {
	return deleteFloatingIP(c, id)
}

func deleteFloatingIP(c OpenstackCloud, id string) (err error) {
	done, err := vfs.RetryWithBackoff(deleteBackoff, func() (bool, error) {
		err = l3floatingip.Delete(context.TODO(), c.ComputeClient(), id).ExtractErr()
		if err != nil && !isNotFound(err) {
			return false, fmt.Errorf("failed to delete floating ip %s: %v", id, err)
		}
		if isNotFound(err) {
			return true, nil
		}
		return false, nil
	})
	if !done && err == nil {
		err = wait.ErrWaitTimeout
	}
	return err
}

func (c *openstackCloud) DeleteL3FloatingIP(id string) (err error) {
	return deleteL3FloatingIP(c, id)
}

func deleteL3FloatingIP(c OpenstackCloud, id string) (err error) {
	done, err := vfs.RetryWithBackoff(writeBackoff, func() (bool, error) {

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Verify the floating IP ID and that it belongs to the project
  2. Check API credentials for the compute/network endpoints
  3. Retry; the operation already runs inside RetryWithBackoff
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/openstack/floatingip.go:103 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/4aa8a0648a72acd6. Report an issue: GitHub.