{"record":{"id":"0f805547ab874885","repo":"kubernetes/kops","slug":"found-forwardingrule-q-but-it-has-unknown-loadba","errorCode":null,"errorMessage":"found forwardingRule %q, but it has unknown loadBalancingScheme=%q","messagePattern":"found forwardingRule %q, but it has unknown loadBalancingScheme=%q","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/gce/gce_cloud.go","lineNumber":365,"sourceCode":"\t\t\tcontinue\n\t\t}\n\n\t\tif clusterLabel.Value != forwardingRule.Labels[clusterLabel.Key] {\n\t\t\tcontinue\n\t\t}\n\n\t\tif forwardingRule.IPAddress == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"found forwardingRule %q, but it did not have an IPAddress\", forwardingRule.Name)\n\t\t}\n\n\t\tinternalEndpoint := false\n\t\tswitch forwardingRule.LoadBalancingScheme {\n\t\tcase \"INTERNAL\", \"INTERNAL_MANAGED\", \"INTERNAL_SELF_MANAGED\":\n\t\t\tinternalEndpoint = true\n\t\tcase \"EXTERNAL\", \"EXTERNAL_MANAGED\":\n\t\t\tinternalEndpoint = false\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"found forwardingRule %q, but it has unknown loadBalancingScheme=%q\", forwardingRule.Name, forwardingRule.LoadBalancingScheme)\n\t\t}\n\n\t\tingresses = append(ingresses, fi.ApiIngressStatus{\n\t\t\tInternalEndpoint: internalEndpoint,\n\t\t\tIP:               forwardingRule.IPAddress,\n\t\t})\n\t}\n\n\treturn ingresses, nil\n}\n\n// FindInstanceTemplates finds all instance templates that are associated with the current cluster\n// It matches them by looking for instance metadata with key='cluster-name' and value of our cluster name\nfunc FindInstanceTemplates(c GCECloud, clusterName string) ([]*compute.InstanceTemplate, error) {\n\tfindClusterName := strings.TrimSpace(clusterName)\n\n\tts, err := c.Compute().InstanceTemplates().List(context.Background(), c.Project())\n\tif err != nil {","sourceCodeStart":347,"sourceCodeEnd":383,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/gce/gce_cloud.go#L347-L383","documentation":"Enumeration guard in GetApiIngressStatus: the forwarding rule's LoadBalancingScheme is none of the known internal/external values kOps handles, so it cannot classify the endpoint as internal or external. Indicates an API value kOps does not recognize — likely a new GCP scheme or modified rule.","triggerScenarios":"Thrown at upup/pkg/fi/cloudup/gce/gce_cloud.go:365 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the forwarding rule's loadBalancingScheme in the GCP console","Report the unrecognized scheme to kOps if it is a legitimate GCP value","Fix or recreate the rule with a standard scheme"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}