{"record":{"id":"8be1dcda5cf81d39","repo":"junegunn/fzf","slug":"failed-to-listen-on-s","errorCode":null,"errorMessage":"failed to listen on %s","messagePattern":"failed to listen on (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/server.go","lineNumber":102,"sourceCode":"\tapiKey := os.Getenv(\"FZF_API_KEY\")\n\tif !address.IsLocal() && len(apiKey) == 0 {\n\t\treturn nil, port, errors.New(\"FZF_API_KEY is required to allow remote access\")\n\t}\n\n\tvar listener net.Listener\n\tvar err error\n\tif len(address.sock) > 0 {\n\t\tif _, err := os.Stat(address.sock); err == nil {\n\t\t\t// Check if the socket is already in use\n\t\t\tif conn, err := net.Dial(\"unix\", address.sock); err == nil {\n\t\t\t\tconn.Close()\n\t\t\t\treturn nil, 0, fmt.Errorf(\"socket already in use: %s\", address.sock)\n\t\t\t}\n\t\t\tos.Remove(address.sock)\n\t\t}\n\t\tlistener, err = net.Listen(\"unix\", address.sock)\n\t\tif err != nil {\n\t\t\treturn nil, 0, fmt.Errorf(\"failed to listen on %s\", address.sock)\n\t\t}\n\t\tos.Chmod(address.sock, 0600)\n\t} else {\n\t\taddrStr := fmt.Sprintf(\"%s:%d\", host, port)\n\t\tlistener, err = net.Listen(\"tcp\", addrStr)\n\t\tif err != nil {\n\t\t\treturn nil, port, fmt.Errorf(\"failed to listen on %s\", addrStr)\n\t\t}\n\t\tif port == 0 {\n\t\t\taddr := listener.Addr().String()\n\t\t\tparts := strings.Split(addr, \":\")\n\t\t\tif len(parts) < 2 {\n\t\t\t\treturn nil, port, fmt.Errorf(\"cannot extract port: %s\", addr)\n\t\t\t}\n\t\t\tvar err error\n\t\t\tport, err = strconv.Atoi(parts[len(parts)-1])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, port, err","sourceCodeStart":84,"sourceCodeEnd":120,"githubUrl":"https://github.com/junegunn/fzf/blob/bd4efa277b49ef34ca4025bff9b1a288e1980eff/src/server.go#L84-L120","documentation":"Error \"failed to listen on %s\" thrown in junegunn/fzf.","triggerScenarios":"Thrown at src/server.go:102 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check that the parent directory of the socket path exists and is writable","Verify permissions on the socket path (fzf chmods it to 0600)","For TCP, choose a port that is not already in use and that the user is allowed to bind (ports <1024 need privileges)"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"bd4efa277b49ef34ca4025bff9b1a288e1980eff","analyzedAt":"2026-08-15T06:11:46.983Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}