kubernetes/kops · error

error deleting router: %v

Error message

error deleting router: %v

What it means

The Neutron router delete call failed with a non-404 error (404 counts as deleted). Retried with backoff; common blockers are attached interfaces or ports that must be removed before router deletion.

Source

Thrown at upup/pkg/fi/cloudup/openstack/router.go:137

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

func (c *openstackCloud) DeleteRouter(routerID string) error {
	return deleteRouter(c, routerID)
}

func deleteRouter(c OpenstackCloud, routerID string) error {
	done, err := vfs.RetryWithBackoff(deleteBackoff, func() (bool, error) {
		err := routers.Delete(context.TODO(), c.NetworkingClient(), routerID).ExtractErr()
		if err != nil && !isNotFound(err) {
			return false, fmt.Errorf("error deleting router: %v", err)
		}
		if isNotFound(err) {
			return true, nil
		}
		return false, nil
	})
	if err != nil {
		return err
	} else if done {
		return nil
	} else {
		return wait.ErrWaitTimeout
	}
}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Remove all router interfaces and ports first
  2. Inspect the wrapped error for the blocking dependency
  3. Retry deletion once the router has no interfaces
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/openstack/router.go:137 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/730c424bebc2ecab. Report an issue: GitHub.