{"record":{"id":"2d4a2b6adc59fc60","repo":"hashicorp/nomad","slug":"failed-to-parse-ipv6-address-q-v","errorCode":null,"errorMessage":"failed to parse ipv6_address %q: %v","messagePattern":"failed to parse ipv6_address %q: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"drivers/docker/driver.go","lineNumber":1567,"sourceCode":"\tif len(driverConfig.NetworkAliases) > 0 {\n\t\tnetworkingConfig.EndpointsConfig[string(hostConfig.NetworkMode)].Aliases = driverConfig.NetworkAliases\n\t\tlogger.Debug(\"setting container network aliases\", \"network_mode\", hostConfig.NetworkMode,\n\t\t\t\"network_aliases\", strings.Join(driverConfig.NetworkAliases, \", \"))\n\t}\n\n\tif driverConfig.IPv4Address != \"\" || driverConfig.IPv6Address != \"\" {\n\t\tipamConfig := &networkapi.EndpointIPAMConfig{}\n\t\tif driverConfig.IPv4Address != \"\" {\n\t\t\tipv4, err := netip.ParseAddr(driverConfig.IPv4Address)\n\t\t\tif err != nil {\n\t\t\t\treturn c, fmt.Errorf(\"failed to parse ipv4_address %q: %v\", driverConfig.IPv4Address, err)\n\t\t\t}\n\t\t\tipamConfig.IPv4Address = ipv4\n\t\t}\n\t\tif driverConfig.IPv6Address != \"\" {\n\t\t\tipv6, err := netip.ParseAddr(driverConfig.IPv6Address)\n\t\t\tif err != nil {\n\t\t\t\treturn c, fmt.Errorf(\"failed to parse ipv6_address %q: %v\", driverConfig.IPv6Address, err)\n\t\t\t}\n\t\t\tipamConfig.IPv6Address = ipv6\n\t\t}\n\t\tnetworkingConfig.EndpointsConfig[string(hostConfig.NetworkMode)].IPAMConfig = ipamConfig\n\t\tlogger.Debug(\"setting container network configuration\", \"network_mode\", hostConfig.NetworkMode,\n\t\t\t\"ipv4_address\", driverConfig.IPv4Address, \"ipv6_address\", driverConfig.IPv6Address)\n\t}\n\n\tif driverConfig.MacAddress != \"\" {\n\t\tmac, err := net.ParseMAC(driverConfig.MacAddress)\n\t\tif err != nil {\n\t\t\treturn c, fmt.Errorf(\"failed to parse mac_address %q: %v\", driverConfig.MacAddress, err)\n\t\t}\n\n\t\tif networkingConfig == nil {\n\t\t\tnetworkingConfig = &networkapi.NetworkingConfig{\n\t\t\t\tEndpointsConfig: map[string]*networkapi.EndpointSettings{\n\t\t\t\t\tstring(hostConfig.NetworkMode): {},","sourceCodeStart":1549,"sourceCodeEnd":1585,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/drivers/docker/driver.go#L1549-L1585","documentation":"Nomad's Docker driver validates the task driver config's ipv6_address by parsing it with netip.ParseAddr before passing it to the Docker IPAM config. If the string is not a valid IP address (IPv4 or IPv6 syntax), createContainerConfig returns this error and the task fails to start.","triggerScenarios":"A task's docker driver config sets ipv6_address to a malformed value (e.g. missing colons, hostname, '2001:db8::/64' with a prefix length, or an IPv4-mapped typo) and StartTask calls createContainerConfig.","commonSituations":"Typos in job files, pasting a CIDR prefix instead of a bare address, using a hostname where an IP literal is required, or quoting/whitespace artifacts from templating.","solutions":["Fix ipv6_address in the task's docker driver config to a valid bare IP literal, e.g. \"2001:db8::1\" (no prefix length, no hostname).","Validate locally with `nomad job inspect` or by running `python3 -c \"import ipaddress; ipaddress.ip_address('<value>')\"` before deploying.","If you actually need a subnet, that belongs in the network block's CIDR, not in ipv6_address."],"exampleFix":"// before\ndriver = \"docker\"\nconfig {\n  ipv6_address = \"2001:db8::/64\"\n}\n// after\nconfig {\n  ipv6_address = \"2001:db8::1\"\n}","handlingStrategy":"validation","validationCode":"import \"netip\"\nfunc validIPv6(s string) bool { a, err := netip.ParseAddr(s); return err == nil && a.Is6() }\n// check validIPv6(cfg.IPv6Address) before submitting the job","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use bare IP literals, never hostnames or CIDR prefixes, in ipv6_address","Lint job files with a pre-deploy check that parses all IP fields","Keep addresses in variables/templates trimmed of whitespace"],"tags":["docker","nomad","ipv6","config-validation"],"backgroundTag":"invalid-ip-address","analyzedSha":"482b49bf1aec006f089bcfc7e632d8f6ac303e5e","analyzedAt":"2026-09-04T07:54:14.808Z","contentChangedAt":"2026-09-04T07:54:14.808Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}