{"record":{"id":"fbe461968b32e233","repo":"docker/compose","slug":"invalid-auxiliary-address-w","errorCode":null,"errorMessage":"invalid auxiliary address: %w","messagePattern":"invalid auxiliary address: %w","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/compose/create.go","lineNumber":1552,"sourceCode":"\t}\n\tif pool.IPRange != \"\" {\n\t\tipRange, err = netip.ParsePrefix(pool.IPRange)\n\t\tif err != nil {\n\t\t\treturn network.IPAMConfig{}, fmt.Errorf(\"invalid ip-range: %w\", err)\n\t\t}\n\t}\n\tif pool.Gateway != \"\" {\n\t\tgateway, err = netip.ParseAddr(pool.Gateway)\n\t\tif err != nil {\n\t\t\treturn network.IPAMConfig{}, fmt.Errorf(\"invalid gateway address: %w\", err)\n\t\t}\n\t}\n\tif len(pool.AuxiliaryAddresses) > 0 {\n\t\tauxAddress = make(map[string]netip.Addr, len(pool.AuxiliaryAddresses))\n\t\tfor auxName, addr := range pool.AuxiliaryAddresses {\n\t\t\tauxAddr, err := netip.ParseAddr(addr)\n\t\t\tif err != nil {\n\t\t\t\treturn network.IPAMConfig{}, fmt.Errorf(\"invalid auxiliary address: %w\", err)\n\t\t\t}\n\t\t\tauxAddress[auxName] = auxAddr\n\t\t}\n\n\t}\n\treturn network.IPAMConfig{\n\t\tSubnet:     subNet,\n\t\tIPRange:    ipRange,\n\t\tGateway:    gateway,\n\t\tAuxAddress: auxAddress,\n\t}, nil\n}\n\nfunc parseMACAddr(macAddress string) (network.HardwareAddr, error) {\n\tif macAddress == \"\" {\n\t\treturn nil, nil\n\t}\n\tm, err := net.ParseMAC(macAddress)","sourceCodeStart":1534,"sourceCodeEnd":1570,"githubUrl":"https://github.com/docker/compose/blob/ddc4b044b62e9f715212ea4143fa830fac76382f/pkg/compose/create.go#L1534-L1570","documentation":"One of the IPAM aux_addresses (compose: ipam.config.aux_addresses / auxiliary addresses) failed netip.ParseAddr. Each value must be a plain IP address keyed by a label (e.g. {host1: 10.0.0.5}).","triggerScenarios":"aux_addresses: {host1: 10.0.0.5/32} or any non-IP value like a hostname ('db.internal') in the aux address map.","commonSituations":"Confusing aux addresses with DNS names or hostnames; pasting CIDRs; IPv6 with brackets.","solutions":["Use bare IPs only: aux_addresses: {host1: 10.0.0.5}","Use DNS/aliases (networks.<net>.aliases) for hostname-style entries","Verify each address is inside the subnet"],"exampleFix":"# before\naux_addresses:\n  host1: db.internal\n# after\naux_addresses:\n  host1: 10.0.0.5","handlingStrategy":"validation","validationCode":"for k, v := range pool.AuxiliaryAddresses {\n    if _, err := netip.ParseAddr(v); err != nil {\n        return fmt.Errorf(\"aux address %s=%q must be a bare IP\", k, v)\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep hostnames in networks.<n>.aliases, not aux_addresses","Use a schema/type for IP fields instead of raw strings"],"tags":["network","ipam","validation"],"backgroundTag":null,"analyzedSha":"ddc4b044b62e9f715212ea4143fa830fac76382f","analyzedAt":"2026-08-15T13:31:42.319Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}