{"record":{"id":"84af2d890cad311e","repo":"kubernetes/kops","slug":"could-not-find-port-floatingips-port-s","errorCode":null,"errorMessage":"Could not find port floatingips port=%s","messagePattern":"Could not find port floatingips port=(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/openstacktasks/floatingip.go","lineNumber":103,"sourceCode":"\tif e.ID == nil {\n\t\tif e.LB != nil && e.LB.ID == nil {\n\t\t\treturn nil, nil\n\t\t}\n\t}\n\n\tcloud := context.T.Cloud.(openstack.OpenstackCloud)\n\t// try to find ip address using LB port\n\tif e.ID == nil && e.LB != nil && e.LB.PortID != nil {\n\t\tfips, err := findL3Floating(cloud, l3floatingip.ListOpts{\n\t\t\tPortID: fi.ValueOf(e.LB.PortID),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif len(fips) == 1 && fips[0].PortID == fi.ValueOf(e.LB.PortID) {\n\t\t\treturn []string{fips[0].FloatingIP}, nil\n\t\t}\n\t\treturn nil, fmt.Errorf(\"Could not find port floatingips port=%s\", fi.ValueOf(e.LB.PortID))\n\t}\n\n\tfip, err := cloud.GetL3FloatingIP(fi.ValueOf(e.ID))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn []string{fip.FloatingIP}, nil\n}\n\n// GetDependencies returns the dependencies of the Instance task\nfunc (e *FloatingIP) GetDependencies(tasks map[string]fi.CloudupTask) []fi.CloudupTask {\n\tvar deps []fi.CloudupTask\n\tfor _, task := range tasks {\n\t\tif _, ok := task.(*LB); ok {\n\t\t\tdeps = append(deps, task)\n\t\t}\n\t\t// We can't create a floating IP until the router with access to the external network\n\t\t//  Has created an interface to our subnet","sourceCodeStart":85,"sourceCodeEnd":121,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/openstacktasks/floatingip.go#L85-L121","documentation":"FindAddresses in floatingip.go:103 fails when, after listing L3 floating IPs filtered by the load balancer's port ID, either no FIP matched or the single returned FIP's PortID did not equal the LB port — so the expected floating address for the LB port cannot be resolved. It is thrown whenever e.ID is nil and the lookup must go through e.LB.PortID.","triggerScenarios":"The LB task has a PortID but no floating IP has been associated with that port yet, the FIP exists but is associated with a different port, or findL3Floating timed out returning zero results.","commonSituations":"Running `kops update cluster` before the FIP creation task completed; an operator manually disassociated or reassigned the floating IP; Neutron eventual consistency delaying FIP-to-port binding so the readback finds none.","solutions":["Rerun the operation after the FIP creation task has run — this is often transient eventual consistency.","Verify with `openstack floating ip list --port <lb-port-id>` that a FIP is actually associated to that port.","If the FIP was disassociated manually, reassociate it to the LB port or delete the cluster state so kops recreates it.","Ensure the external network / router configuration allows FIP association for the LB port's subnet."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// verify a single FIP is bound to the LB port before resolving addresses\nfips, err := cloud.ListL3FloatingIPs(l3floatingip.ListOpts{PortID: portID})\nif err != nil {\n    return err\n}\nif len(fips) != 1 || fips[0].PortID != portID {\n    return fmt.Errorf(\"no FIP bound to port %s; run kops update cluster first\", portID)\n}","typeGuard":"func hasBoundFIP(fips []l3floatingip.FloatingIP, portID string) bool {\n    return len(fips) == 1 && fips[0].PortID == portID\n}","tryCatchPattern":"addrs, err := e.FindAddresses(ctx)\nif err != nil && strings.Contains(err.Error(), \"Could not find port floatingips\") {\n    // FIP not yet associated: treat as not-ready and retry later\n    return nil, nil\n}","preventionTips":["Run `kops update cluster` fully before commands that read LB addresses","Avoid manually disassociating FIPs from kops-managed LB ports","Confirm router/external network setup before LB creation","Treat empty FIP lookup as eventual-consistency, retry after a short delay"],"tags":["openstack","neutron","floating-ip","loadbalancer","address-lookup"],"backgroundTag":"floating-ip-not-associated","analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T07:17:12.445Z"}