{"record":{"id":"b8f8bb6628591675","repo":"kubernetes/kops","slug":"unexpected-format-for-server-id-s","errorCode":null,"errorMessage":"unexpected format for server id %s","messagePattern":"unexpected format for server id (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/nodeidentity/scaleway/identify.go","lineNumber":143,"sourceCode":"\t\t\tklog.Warningf(\"Failed to add node identity info to cache: %v\", err)\n\t\t}\n\t}\n\n\treturn info, nil\n}\n\n// stringKeyFunc is a string as cache key function\nfunc stringKeyFunc(obj interface{}) (string, error) {\n\tkey := obj.(*nodeidentity.Info).InstanceID\n\treturn key, nil\n}\n\n// getServer queries Scaleway for the server with the specified ID, returning an error if not found\nfunc (i *nodeIdentifier) getServer(ctx context.Context, id string) (*instance.Server, error) {\n\tapi := instance.NewAPI(i.client)\n\tuuid := strings.Split(id, \"/\")\n\tif len(uuid) != 3 {\n\t\treturn nil, fmt.Errorf(\"unexpected format for server id %s\", id)\n\t}\n\tserver, err := api.GetServer(&instance.GetServerRequest{\n\t\tServerID: uuid[2],\n\t\tZone:     scw.Zone(uuid[1]),\n\t}, scw.WithContext(ctx))\n\tif err != nil || server == nil {\n\t\treturn nil, fmt.Errorf(\"failed to get server %s: %w\", id, err)\n\t}\n\n\treturn server.Server, nil\n}\n","sourceCodeStart":125,"sourceCodeEnd":155,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/pkg/nodeidentity/scaleway/identify.go#L125-L155","documentation":"getServer parses the node name/id, which kOps expects in the form <provider>/<zone>/<server-id> (3 slash-separated parts). If the id does not split into exactly 3 segments, the zone and server UUID cannot be extracted, so this error is thrown.","triggerScenarios":"Calling IdentifyNode with a node name/id that is a bare UUID or a name with fewer/more than 3 '/'-separated segments instead of the full 'fr-par-1/.../<uuid>' style id.","commonSituations":"Provider id not set on the Node object (node name used instead); scaleway provider-id malformed in the InstanceGroup or cloud config; ids copied from other clouds with different formats.","solutions":["Set the node's providerID/spec.ProviderID to the full 3-part format: '<region>/<zone>/<server-uuid>' (e.g. 'scaleway/fr-par-1/11111111-2222-...')","Verify how the id is derived upstream and fix the format at the source","Log/inspect the offending id to confirm the exact number of segments"],"exampleFix":"// before\nid := \"11111111-2222-3333-4444-555555555555\" // 1 segment\n// after\nid := \"fr-par-1/11111111-2222-3333-4444-555555555555\" // zone + uuid, 3 segments with provider prefix","handlingStrategy":"validation","validationCode":"func validateScalewayProviderID(id string) error {\n    parts := strings.Split(id, \"/\")\n    if len(parts) != 3 {\n        return fmt.Errorf(\"provider id must be <provider>/<zone>/<uuid>, got %q\", id)\n    }\n    return nil\n}","typeGuard":"func isThreePartID(id string) bool {\n    return len(strings.Split(id, \"/\")) == 3\n}","tryCatchPattern":null,"preventionTips":["Always set providerID in the full zone/uuid form when creating nodes","Validate providerID format in CI for InstanceGroup/node manifests","Log raw node names/ids when node identity lookup fails","Keep provider-id conventions consistent across cloud providers in tooling"],"tags":["scaleway","node-identity","id-format"],"backgroundTag":"invalid-provider-id-format","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"}