{"record":{"id":"bec7ec4830b09065","repo":"docker/compose","slug":"invalid-gateway-address-w","errorCode":null,"errorMessage":"invalid gateway address: %w","messagePattern":"invalid gateway address: %w","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/compose/create.go","lineNumber":1544,"sourceCode":"\t\tgateway    netip.Addr\n\t\tauxAddress map[string]netip.Addr\n\t)\n\tif pool.Subnet != \"\" {\n\t\tsubNet, err = netip.ParsePrefix(pool.Subnet)\n\t\tif err != nil {\n\t\t\treturn network.IPAMConfig{}, fmt.Errorf(\"invalid subnet: %w\", err)\n\t\t}\n\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,","sourceCodeStart":1526,"sourceCodeEnd":1562,"githubUrl":"https://github.com/docker/compose/blob/ddc4b044b62e9f715212ea4143fa830fac76382f/pkg/compose/create.go#L1526-L1562","documentation":"The IPAM 'gateway' string failed netip.ParseAddr — it must be a plain IP address with no prefix or extra characters. The wrapped error pinpoints the offending part.","triggerScenarios":"ipam: {config: [{subnet: 10.0.0.0/24, gateway: 10.0.0.0/24}]} or gateway: '10.0.0.' — anything that is not a bare valid IP.","commonSituations":"Pasting a CIDR into gateway; trailing spaces/typos; IPv6 gateway with zone or brackets.","solutions":["Use a bare IP: gateway: 10.0.0.1 (no /24)","Check for stray whitespace or quotes around the value","Ensure the gateway lies within the subnet"],"exampleFix":"# before\ngateway: 10.0.0.1/24\n# after\ngateway: 10.0.0.1","handlingStrategy":"validation","validationCode":"if pool.Gateway != \"\" {\n    if _, err := netip.ParseAddr(pool.Gateway); err != nil {\n        return fmt.Errorf(\"gateway %q must be a bare IP\", pool.Gateway)\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never paste CIDR text into gateway fields","Strip whitespace when templating values"],"tags":["network","ipam","validation","gateway"],"backgroundTag":null,"analyzedSha":"ddc4b044b62e9f715212ea4143fa830fac76382f","analyzedAt":"2026-08-15T13:31:42.319Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}