{"record":{"id":"8dd472817933f8bc","repo":"kubernetes/kops","slug":"no-ip-found-for-server-q-w","errorCode":null,"errorMessage":"no IP found for server %q: %w","messagePattern":"no IP found for server %q: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/scaleway/verifier.go","lineNumber":112,"sourceCode":"\t\tServerID: serverID,\n\t\tZone:     zone,\n\t}, scw.WithContext(ctx))\n\tif err != nil || serverResponse == nil || serverResponse.Server == nil {\n\t\treturn nil, fmt.Errorf(\"failed to get server %s: %w\", serverID, err)\n\t}\n\tserver := serverResponse.Server\n\n\tips, err := ipam.NewAPI(scwClient).ListIPs(&ipam.ListIPsRequest{\n\t\tRegion:     region,\n\t\tResourceID: new(server.ID),\n\t\tIsIPv6:     new(false),\n\t\tZonal:      new(zone.String()),\n\t}, scw.WithContext(ctx), scw.WithAllPages())\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get IP for server %q: %w\", server.Name, err)\n\t}\n\tif ips.TotalCount == 0 {\n\t\treturn nil, fmt.Errorf(\"no IP found for server %q: %w\", server.Name, err)\n\t}\n\n\taddresses := []string(nil)\n\tchallengeEndPoints := []string(nil)\n\tfor _, ip := range ips.IPs {\n\t\taddresses = append(addresses, ip.Address.IP.String())\n\t\tchallengeEndPoints = append(challengeEndPoints, net.JoinHostPort(ip.Address.IP.String(), strconv.Itoa(wellknownports.NodeupChallenge)))\n\t}\n\n\tresult := &bootstrap.VerifyResult{\n\t\tNodeName:          server.Name,\n\t\tInstanceGroupName: InstanceGroupNameFromTags(server.Tags),\n\t\tCertificateNames:  addresses,\n\t\tChallengeEndpoint: challengeEndPoints[0],\n\t}\n\n\treturn result, nil\n}","sourceCodeStart":94,"sourceCodeEnd":130,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/scaleway/verifier.go#L94-L130","documentation":"The IPAM ListIPs call succeeded but returned TotalCount == 0: Scaleway knows about the server, yet no IPv4 IP is associated with its resource. Note the err in this message is nil by construction, so the cause is missing state, not an API failure.","triggerScenarios":"ListIPs matched zero IPs for the server's resource ID in the region — e.g. the server is still booting and its IP has not been registered in IPAM yet, the server has no public IP, or the IP is IPv6 while the query filters IsIPv6=false.","commonSituations":"A newly launched instance whose flexible IP is still being attached, an instance configured without a public IPv4 (IPv6-only or private-network only), or an IP that was manually detached/deleted from the server in the Scaleway console.","solutions":["Attach a public/flexible IPv4 to the server in the Scaleway console (or recreate the node)","Wait and retry bootstrap — IPAM registration can lag shortly after instance creation","If the node is intentionally IPv6-only, this kOps path will not work; provision IPv4","Check the server is the right one: scw instance server get <id> shows its IP configuration"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// verify the server has an IPv4 before token verification\nsrv, _ := instance.NewAPI(scwClient).GetServer(&instance.GetServerRequest{ServerID: serverID, Zone: zone}, scw.WithContext(ctx))\nif srv.Server.PublicIP == nil {\n\treturn fmt.Errorf(\"server %s has no public IPv4; attach one before bootstrap\", serverID)\n}","typeGuard":"func serverHasIPv4(s *instance.Server) bool { return s != nil && s.PublicIP != nil }","tryCatchPattern":"if ips.TotalCount == 0 {\n\t// treat as retryable: IPAM registration can lag instance creation\n\treturn retryableError(fmt.Errorf(\"no IP found for server %q yet\", server.Name))\n}","preventionTips":["Provision nodes with a public IPv4 (flexible IP), not IPv6-only","Wait for IPAM registration before starting nodeup on brand-new instances","Audit IPs detached manually in the console during cluster lifetime"],"tags":["scaleway","ipam","network","ipv4"],"backgroundTag":"resource-has-no-ip","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"}