kubernetes/kops · error
found forwardingRule %q, but it did not have an IPAddress
Error message
found forwardingRule %q, but it did not have an IPAddress
What it means
Malformed-API-object guard in GetApiIngressStatus: a forwarding rule matching the cluster's api- prefix and labels was found, but its IPAddress field is empty, so no ingress endpoint can be reported for the API LB.
Source
Thrown at upup/pkg/fi/cloudup/gce/gce_cloud.go:355
forwardingRules = nil
} else {
return nil, fmt.Errorf("error listing forwardingRules: %v", err)
}
}
clusterLabel := LabelForCluster(cluster.Name)
for _, forwardingRule := range forwardingRules {
if !strings.HasPrefix(forwardingRule.Name, "api-") {
continue
}
if clusterLabel.Value != forwardingRule.Labels[clusterLabel.Key] {
continue
}
if forwardingRule.IPAddress == "" {
return nil, fmt.Errorf("found forwardingRule %q, but it did not have an IPAddress", forwardingRule.Name)
}
internalEndpoint := false
switch forwardingRule.LoadBalancingScheme {
case "INTERNAL", "INTERNAL_MANAGED", "INTERNAL_SELF_MANAGED":
internalEndpoint = true
case "EXTERNAL", "EXTERNAL_MANAGED":
internalEndpoint = false
default:
return nil, fmt.Errorf("found forwardingRule %q, but it has unknown loadBalancingScheme=%q", forwardingRule.Name, forwardingRule.LoadBalancingScheme)
}
ingresses = append(ingresses, fi.ApiIngressStatus{
InternalEndpoint: internalEndpoint,
IP: forwardingRule.IPAddress,
})
}
View on GitHub (pinned to 4c8573c808)
Solutions
- Check the forwarding rule in the GCP console for a resolved IP
- Wait for the LB IP allocation and retry
- Recreate the forwarding rule if it is stuck without an address
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/gce/gce_cloud.go:355 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/cbfc9f60c43a8325.
Report an issue: GitHub.