{"record":{"id":"7b69a52deec74c9d","repo":"googleapis/mcp-toolbox","slug":"failed-to-open-listener-for-q-w","errorCode":null,"errorMessage":"failed to open listener for %q: %w","messagePattern":"failed to open listener for %q: %w","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/server/server.go","lineNumber":696,"sourceCode":"\t\t})\n\t}\n}\n\n// Listen starts a listener for the given Server instance.\nfunc (s *Server) Listen(ctx context.Context, certFile, keyFile string) error {\n\tctx, cancel := context.WithCancel(ctx)\n\tdefer cancel()\n\n\tif s.listener != nil {\n\t\treturn fmt.Errorf(\"server is already listening: %s\", s.listener.Addr().String())\n\t}\n\tlc := net.ListenConfig{KeepAlive: 30 * time.Second}\n\tln, err := lc.Listen(ctx, \"tcp\", s.srv.Addr)\n\tif err != nil {\n\t\tif errors.Is(err, syscall.EADDRINUSE) {\n\t\t\treturn fmt.Errorf(\"failed to open listener for %q. Use `--port=<number>` to specify a different port: %w\", s.srv.Addr, err)\n\t\t}\n\t\treturn fmt.Errorf(\"failed to open listener for %q: %w\", s.srv.Addr, err)\n\t}\n\n\tif certFile != \"\" || keyFile != \"\" {\n\t\t// Load the certificates\n\t\tcert, err := tls.LoadX509KeyPair(certFile, keyFile)\n\t\tif err != nil {\n\t\t\tln.Close()\n\t\t\treturn fmt.Errorf(\"failed to load TLS key pair (cert: %q, key: %q): %w\", certFile, keyFile, err)\n\t\t}\n\t\t// Wrap the listener with TLS\n\t\tconfig := &tls.Config{Certificates: []tls.Certificate{cert}, MinVersion: tls.VersionTLS12}\n\t\ts.listener = tls.NewListener(ln, config)\n\t\ts.logger.DebugContext(ctx, fmt.Sprintf(\"secure server listening on %s\", s.srv.Addr))\n\t} else {\n\t\ts.listener = ln\n\t\ts.logger.DebugContext(ctx, fmt.Sprintf(\"server listening on %s\", s.srv.Addr))\n\t}\n\treturn nil","sourceCodeStart":678,"sourceCodeEnd":714,"githubUrl":"https://github.com/googleapis/mcp-toolbox/blob/8cc6e09de2ad7b8bffc77751799585a1401a48eb/internal/server/server.go#L678-L714","documentation":"Error \"failed to open listener for %q: %w\" thrown in googleapis/mcp-toolbox.","triggerScenarios":"Thrown at internal/server/server.go:696 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":"8cc6e09de2ad7b8bffc77751799585a1401a48eb","analyzedAt":"2026-09-05T01:10:36.887Z","contentChangedAt":"2026-09-05T01:10:36.887Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}