{"record":{"id":"0826e42aa45ae69f","repo":"hashicorp/nomad","slug":"failed-to-parse-rpc-advertise-address-q-v","errorCode":null,"errorMessage":"Failed to parse RPC advertise address %q: %v","messagePattern":"Failed to parse RPC advertise address %q: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"command/agent/agent.go","lineNumber":413,"sourceCode":"\t// Set up the bind addresses\n\trpcAddr, err := net.ResolveTCPAddr(\"tcp\", agentConfig.normalizedAddrs.RPC)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"Failed to parse RPC address %q: %v\", agentConfig.normalizedAddrs.RPC, err)\n\t}\n\tserfAddr, err := net.ResolveTCPAddr(\"tcp\", agentConfig.normalizedAddrs.Serf)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"Failed to parse Serf address %q: %v\", agentConfig.normalizedAddrs.Serf, err)\n\t}\n\tconf.RPCAddr.Port = rpcAddr.Port\n\tconf.RPCAddr.IP = rpcAddr.IP\n\tconf.SerfConfig.MemberlistConfig.BindPort = serfAddr.Port\n\tconf.SerfConfig.MemberlistConfig.BindAddr = serfAddr.IP.String()\n\tconf.SerfConfig.RejoinAfterLeave = agentConfig.Server.RejoinAfterLeave\n\n\t// Set up the advertise addresses\n\trpcAddr, err = net.ResolveTCPAddr(\"tcp\", agentConfig.AdvertiseAddrs.RPC)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"Failed to parse RPC advertise address %q: %v\", agentConfig.AdvertiseAddrs.RPC, err)\n\t}\n\tserfAddr, err = net.ResolveTCPAddr(\"tcp\", agentConfig.AdvertiseAddrs.Serf)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"Failed to parse Serf advertise address %q: %v\", agentConfig.AdvertiseAddrs.Serf, err)\n\t}\n\n\t// Server address is the serf advertise address and rpc port. This is the\n\t// address that all servers should be able to communicate over RPC with.\n\tserverAddr, err := net.ResolveTCPAddr(\"tcp\", net.JoinHostPort(serfAddr.IP.String(), fmt.Sprintf(\"%d\", rpcAddr.Port)))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"Failed to resolve Serf advertise address %q: %v\", agentConfig.AdvertiseAddrs.Serf, err)\n\t}\n\n\tconf.SerfConfig.MemberlistConfig.AdvertiseAddr = serfAddr.IP.String()\n\tconf.SerfConfig.MemberlistConfig.AdvertisePort = serfAddr.Port\n\tconf.ClientRPCAdvertise = rpcAddr\n\tconf.ServerRPCAdvertise = serverAddr\n","sourceCodeStart":395,"sourceCodeEnd":431,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/command/agent/agent.go#L395-L431","documentation":"convertServerConfig resolves the RPC advertise address (AdvertiseAddrs.RPC) and fails; the address the server tells peers to use is malformed or unresolvable, so cluster communication would be broken and startup aborts.","triggerScenarios":"Thrown at command/agent/agent.go:413 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set advertise { rpc } to a reachable valid IP:port","Ensure the hostname resolves from the host's resolver"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}