kubernetes/kops · error

error finding port %s: %v

Error message

error finding port %s: %v

What it means

During instance creation, a 'port already in use' error was returned and the code attempted to look up the referenced port, but the Neutron GetPort call itself failed. The port lookup is part of recovery from a stale-port bug; this error means the recovery path could not even inspect the port.

Source

Thrown at upup/pkg/fi/cloudup/openstack/instance.go:109

		if server.Status == activeStatus {
			return true, nil
		}

		return false, nil
	})
}

func createInstance(c OpenstackCloud, opt servers.CreateOptsBuilder, schedulerHints servers.SchedulerHintOptsBuilder, portID string) (*servers.Server, error) {
	var server *servers.Server

	done, err := vfs.RetryWithBackoff(writeBackoff, func() (bool, error) {

		v, err := servers.Create(context.TODO(), c.ComputeClient(), opt, schedulerHints).Extract()
		if err != nil {
			if IsPortInUse(err) && portID != "" {
				port, err := c.GetPort(portID)
				if err != nil {
					return false, fmt.Errorf("error finding port %s: %v", portID, err)
				}
				// port is attached to deleted instance, we need reset the status of the DeviceID
				// this is bug in OpenStack APIs
				if port.DeviceID != "" && port.DeviceOwner == "" {
					klog.Warningf("Port %s is attached to Device that does not exist anymore, reseting the status of DeviceID", portID)
					_, err := c.UpdatePort(portID, ports.UpdateOpts{
						DeviceID: new(""),
					})
					if err != nil {
						return false, fmt.Errorf("error updating port %s deviceid: %v", portID, err)
					}
				}
			}
			return false, fmt.Errorf("error creating server %v: %v", opt, err)
		}
		server = v

		err = waitForStatusActive(c, server.ID, nil)

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Verify the port ID exists: openstack port show <portID>
  2. Check Neutron API health and credentials
  3. Manually delete the stale port if it was left over from a deleted instance, then retry
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/openstack/instance.go:109 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/323c93a5906f06b5. Report an issue: GitHub.