{"record":{"id":"1d54db21b2faf4f1","repo":"netbirdio/netbird","slug":"failed-to-validate-dns-labels-v","errorCode":null,"errorMessage":"failed to validate dns labels: %v","messagePattern":"failed to validate dns labels: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"client/cmd/up.go","lineNumber":839,"sourceCode":"\t\t\tparsed = []byte(customDNSAddress)\n\t\t}\n\t}\n\treturn parsed, nil\n}\n\nfunc validateDnsLabels(labels []string) (domain.List, error) {\n\tvar (\n\t\tdomains domain.List\n\t\terr     error\n\t)\n\n\tif len(labels) == 0 {\n\t\treturn domains, nil\n\t}\n\n\tdomains, err = domain.ValidateDomains(labels)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to validate dns labels: %v\", err)\n\t}\n\n\treturn domains, nil\n}\n\nfunc isValidAddrPort(input string) bool {\n\tif input == \"\" {\n\t\treturn true\n\t}\n\t_, err := netip.ParseAddrPort(input)\n\treturn err == nil\n}\n","sourceCodeStart":821,"sourceCodeEnd":852,"githubUrl":"https://github.com/netbirdio/netbird/blob/93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c/client/cmd/up.go#L821-L852","documentation":"Thin wrapper around domain.ValidateDomains for the --extra-dns-labels flag (validated once in up.go's initialization path). Each label must be a syntactically valid domain; the wrapped error from the shared dns/domain package names the first invalid label. Empty label lists pass through cleanly, so this only fires when at least one label was supplied and one is malformed.","triggerScenarios":"`netbird up --extra-dns-labels \"bad_domain\"` (underscore), a label with a leading/trailing dot or hyphen, or a label over 63 characters.","commonSituations":"Using internal shorthand names that are not legal DNS labels, or trailing dots from copy-pasting FQDNs.","solutions":["Use valid DNS labels: letters, digits, hyphens (not leading/trailing), 1-63 chars per label","Strip trailing dots from pasted FQDNs","Remove the flag if the labels are unnecessary"],"exampleFix":"# before\nnetbird up --extra-dns-labels \"my_app\"\n# after\nnetbird up --extra-dns-labels \"my-app\"","handlingStrategy":"validation","validationCode":"if _, err := domain.ValidateDomains(labels); err != nil {\n\treturn fmt.Errorf(\"fix dns labels before up: %w\", err)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Labels must be legal DNS labels: [a-z0-9-], no leading/trailing hyphen, <=63 chars","Strip trailing dots and underscores from pasted values"],"tags":["go","netbird","cli","dns","validation","domain-labels"],"backgroundTag":null,"analyzedSha":"93e97f4bf1ad715072dcb3fb6cdb1763431b5a9c","analyzedAt":"2026-08-16T03:09:19.136Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}