{"record":{"id":"a75d6ba8b39cf21a","repo":"tailscale/tailscale","slug":"failed-to-listen-on-either-ipv4-or-ipv6-localhost","errorCode":null,"errorMessage":"failed to listen on either IPv4 or IPv6 localhost port: %v","messagePattern":"failed to listen on either IPv4 or IPv6 localhost port: (.+?)","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"net/netx/netx.go","lineNumber":49,"sourceCode":"func RealNetwork() Network { return realNetwork{} }\n\n// realNetwork implements [Network] using the real net package.\ntype realNetwork struct{}\n\nfunc (realNetwork) Listen(network, address string) (net.Listener, error) {\n\treturn net.Listen(network, address)\n}\n\nfunc (realNetwork) Dial(ctx context.Context, network, address string) (net.Conn, error) {\n\tvar d net.Dialer\n\treturn d.DialContext(ctx, network, address)\n}\n\nfunc (realNetwork) NewLocalTCPListener() net.Listener {\n\tln, err := net.Listen(\"tcp\", \"127.0.0.1:0\")\n\tif err != nil {\n\t\tif ln, err = net.Listen(\"tcp6\", \"[::1]:0\"); err != nil {\n\t\t\tpanic(fmt.Sprintf(\"failed to listen on either IPv4 or IPv6 localhost port: %v\", err))\n\t\t}\n\t}\n\treturn ln\n}\n","sourceCodeStart":31,"sourceCodeEnd":54,"githubUrl":"https://github.com/tailscale/tailscale/blob/6e0912f97994f927632b34ae9e63b53d6516a6ac/net/netx/netx.go#L31-L54","documentation":"Raised via panic in realNetwork.NewLocalTCPListener when binding a wildcard-port listener on both 127.0.0.1 and [::1] fails: no loopback TCP socket could be created, so local TCP listening is impossible.","triggerScenarios":"Thrown at net/netx/netx.go:49 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the loopback interface and for socket exhaustion","Run outside restricted sandboxes that block loopback binds"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6e0912f97994f927632b34ae9e63b53d6516a6ac","analyzedAt":"2026-08-18T08:17:25.280Z","contentChangedAt":"2026-08-18T08:17:25.280Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}