{"record":{"id":"db6aa587b6c60d9a","repo":"kubernetes/kops","slug":"server-s-interface-name-s-not-found","errorCode":null,"errorMessage":"server `%s` interface name `%s` not found","messagePattern":"server `(.+?)` interface name `(.+?)` not found","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/openstack/utils.go","lineNumber":125,"sourceCode":"\tif localAddr, ok := server.Addresses[interfaceName]; ok {\n\t\tif localAddresses, ok := localAddr.([]interface{}); ok {\n\t\t\tfor _, addr := range localAddresses {\n\t\t\t\taddrMap := addr.(map[string]interface{})\n\t\t\t\tif addrType, ok := addrMap[openstackExternalIPType]; ok && addrType == openstackAddressFixed {\n\t\t\t\t\tif fixedIP, ok := addrMap[openstackAddress]; ok {\n\t\t\t\t\t\tif fixedIPStr, ok := fixedIP.(string); ok {\n\t\t\t\t\t\t\tpoolAddress = fixedIPStr\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terr = fmt.Errorf(\"Fixed IP was not a string: %v\", fixedIP)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\terr = fmt.Errorf(\"Type fixed did not contain addr: %v\", addr)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\terr = fmt.Errorf(\"server `%s` interface name `%s` not found\", server.ID, interfaceName)\n\t}\n\treturn poolAddress, err\n}\n","sourceCodeStart":107,"sourceCodeEnd":129,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/openstack/utils.go#L107-L129","documentation":"Thrown by GetServerFixedIP when server.Addresses contains no entry for the requested interfaceName. The function looks up server.Addresses[interfaceName] to find the fixed/pool IP; the network interface name is not among the server's attached networks.","triggerScenarios":"GetServerFixedIP called (via osBuildCloudInstanceGroup) with an interfaceName not present in server.Addresses — typically a wrong network name from the cluster spec, or the server queried before its addresses were populated.","commonSituations":"Cluster spec network name differing from the actual Neutron network name (typos, renamed networks); server still building; instance attached to a different network than expected.","solutions":["Compare interfaceName against the network names in `openstack server show <id>` and fix the name used.","Wait until the instance is ACTIVE and addresses are assigned before calling.","Verify the instance group uses the cluster's configured network/subnet."],"exampleFix":"// before\npoolAddress, err := GetServerFixedIP(server, \"wrong-net\")\n// after\nif _, ok := server.Addresses[interfaceName]; !ok {\n    return \"\", fmt.Errorf(\"network %q not attached to server %s; available: %v\", interfaceName, server.ID, keysOf(server.Addresses))\n}","handlingStrategy":"validation","validationCode":"if _, ok := server.Addresses[interfaceName]; !ok {\n    return \"\", fmt.Errorf(\"interface %q not in server %s addresses: %v\", interfaceName, server.ID, keysOf(server.Addresses))\n}","typeGuard":null,"tryCatchPattern":"poolAddress, err := GetServerFixedIP(server, interfaceName)\nif err != nil {\n    return fmt.Errorf(\"lookup fixed IP: %w\", err)\n}","preventionTips":["Pass the network name exactly as shown in `openstack server show`","Only call after the instance reaches ACTIVE state","Keep the cluster spec network name in sync with Neutron"],"tags":["openstack","neutron","networking","server-addresses"],"backgroundTag":"network-interface-not-found","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"}