{"record":{"id":"aedde84fb5c63a34","repo":"kubernetes/kops","slug":"new-zone-name-should-contain-at-least-1-got","errorCode":null,"errorMessage":"new zone name should contain at least 1 '.', got %q","messagePattern":"new zone name should contain at least 1 '\\.', got %q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"dnsprovider/pkg/dnsprovider/providers/scaleway/dns.go","lineNumber":131,"sourceCode":"\n\tzonesList := []dnsprovider.Zone(nil)\n\tfor _, dnsZone := range dnsZones.DNSZones {\n\t\tnewZone := &zone{\n\t\t\tname:      dnsZone.Domain,\n\t\t\tdomainAPI: z.domainAPI,\n\t\t}\n\t\tzonesList = append(zonesList, newZone)\n\t}\n\n\treturn zonesList, nil\n}\n\n// Add adds a new DNS zone. The name of the new zone should be of the form \"name.domain\", otherwise we can't infer the\n// domain name from anywhere else in this function\nfunc (z *zones) Add(newZone dnsprovider.Zone) (dnsprovider.Zone, error) {\n\tnewZoneNameSplit := strings.SplitN(newZone.Name(), \".\", 2)\n\tif len(newZoneNameSplit) < 2 {\n\t\treturn nil, fmt.Errorf(\"new zone name should contain at least 1 '.', got %q\", newZone.Name())\n\t}\n\tnewZoneName := newZoneNameSplit[0]\n\tdomainName := newZoneNameSplit[1]\n\tklog.V(8).Infof(\"Adding new DNS zone %s to domain %s\", newZoneName, domainName)\n\n\t_, err := z.domainAPI.CreateDNSZone(&domain.CreateDNSZoneRequest{\n\t\tSubdomain: newZoneName,\n\t\tDomain:    domainName,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tklog.V(4).Infof(\"Added new DNS zone %s to domain %s\", newZoneName, domainName)\n\n\treturn &zone{\n\t\tname:      newZoneName,\n\t\tdomainAPI: z.domainAPI,\n\t}, nil","sourceCodeStart":113,"sourceCodeEnd":149,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/dnsprovider/pkg/dnsprovider/providers/scaleway/dns.go#L113-L149","documentation":"Validation guard in Scaleway zones.Add: the new zone name has no '.', so it cannot be split into name+domain parts. Scaleway DNS zones must be of the form name.domain for the provider to infer the domain.","triggerScenarios":"Thrown at dnsprovider/pkg/dnsprovider/providers/scaleway/dns.go:131 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a dotted zone name like example.com","Check for typos in the zone name","Ensure the domain exists in Scaleway DNS"],"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"}