junegunn/fzf · error
failed to listen on %s
Error message
failed to listen on %s
What it means
Error "failed to listen on %s" thrown in junegunn/fzf.
Source
Thrown at src/server.go:102
apiKey := os.Getenv("FZF_API_KEY")
if !address.IsLocal() && len(apiKey) == 0 {
return nil, port, errors.New("FZF_API_KEY is required to allow remote access")
}
var listener net.Listener
var err error
if len(address.sock) > 0 {
if _, err := os.Stat(address.sock); err == nil {
// Check if the socket is already in use
if conn, err := net.Dial("unix", address.sock); err == nil {
conn.Close()
return nil, 0, fmt.Errorf("socket already in use: %s", address.sock)
}
os.Remove(address.sock)
}
listener, err = net.Listen("unix", address.sock)
if err != nil {
return nil, 0, fmt.Errorf("failed to listen on %s", address.sock)
}
os.Chmod(address.sock, 0600)
} else {
addrStr := fmt.Sprintf("%s:%d", host, port)
listener, err = net.Listen("tcp", addrStr)
if err != nil {
return nil, port, fmt.Errorf("failed to listen on %s", addrStr)
}
if port == 0 {
addr := listener.Addr().String()
parts := strings.Split(addr, ":")
if len(parts) < 2 {
return nil, port, fmt.Errorf("cannot extract port: %s", addr)
}
var err error
port, err = strconv.Atoi(parts[len(parts)-1])
if err != nil {
return nil, port, errView on GitHub (pinned to bd4efa277b)
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)
When it happens
Trigger: Thrown at src/server.go:102 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of junegunn/fzf@bd4efa277b (2026-08-15).
Data as JSON: /api/errors/8be1dcda5cf81d39.
Report an issue: GitHub.