{"record":{"id":"207018bfd36e2b0c","repo":"XTLS/Xray-core","slug":"unable-to-listen-on-domain-address-c-listenon-do","errorCode":null,"errorMessage":"unable to listen on domain address: {c.ListenOn.Domain()}","messagePattern":"unable to listen on domain address: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"infra/conf/xray.go","lineNumber":167,"sourceCode":"\t} else {\n\t\t// Listen on specific IP or Unix Domain Socket\n\t\treceiverSettings.Listen = c.ListenOn.Build()\n\t\tlistenDS := c.ListenOn.Family().IsDomain() && (filepath.IsAbs(c.ListenOn.Domain()) || c.ListenOn.Domain()[0] == '@')\n\t\tlistenIP := c.ListenOn.Family().IsIP() || (c.ListenOn.Family().IsDomain() && c.ListenOn.Domain() == \"localhost\")\n\t\tif listenIP {\n\t\t\t// Listen on specific IP, must set PortList\n\t\t\tif c.PortList == nil {\n\t\t\t\treturn nil, errors.New(\"Listen on specific ip without port in InboundDetour.\")\n\t\t\t}\n\t\t\t// Listen on IP:Port\n\t\t\treceiverSettings.PortList = c.PortList.Build()\n\t\t} else if listenDS {\n\t\t\tif c.PortList != nil {\n\t\t\t\t// Listen on Unix Domain Socket, PortList should be nil\n\t\t\t\treceiverSettings.PortList = nil\n\t\t\t}\n\t\t} else {\n\t\t\treturn nil, errors.New(\"unable to listen on domain address: \", c.ListenOn.Domain())\n\t\t}\n\t}\n\n\tif c.StreamSetting != nil {\n\t\tss, err := c.StreamSetting.Build()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treceiverSettings.StreamSettings = ss\n\t\tif strings.Contains(ss.SecurityType, \"reality\") && (receiverSettings.PortList == nil ||\n\t\t\tlen(receiverSettings.PortList.Ports()) != 1 || receiverSettings.PortList.Ports()[0] != 443) {\n\t\t\terrors.LogWarning(context.Background(), `REALITY: Listening on non-443 ports will increase the likelihood of your server's IP being blocked by the GFW`)\n\t\t}\n\t}\n\tif c.SniffingConfig != nil {\n\t\ts, err := c.SniffingConfig.Build()\n\t\tif err != nil {\n\t\t\treturn nil, errors.New(\"failed to build sniffing config\").Base(err)","sourceCodeStart":149,"sourceCodeEnd":185,"githubUrl":"https://github.com/XTLS/Xray-core/blob/7d214f8b094f75322fa3990f8aadad1c912f24f5/infra/conf/xray.go#L149-L185","documentation":"Error \"unable to listen on domain address: {c.ListenOn.Domain()}\" thrown in XTLS/Xray-core.","triggerScenarios":"Thrown at infra/conf/xray.go:167 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7d214f8b094f75322fa3990f8aadad1c912f24f5","analyzedAt":"2026-08-15T14:26:24.325Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}