{"record":{"id":"985b2bfc6947f917","repo":"oraios/serena","slug":"haxe-language-server-not-found-and-node-js-is-not","errorCode":null,"errorMessage":"Haxe Language Server not found and Node.js is not installed (required to run it).\nInstall options:\n  1. Install Node.js and re-run (auto-download will proceed)\n  2. Install the vshaxe VSCode extension: code --install-extension nadako.vshaxe\n  3. Set ls_path in serena_config.yml under ls_specific_settings.haxe","messagePattern":"Haxe Language Server not found and Node\\.js is not installed \\(required to run it\\)\\.\nInstall options:\n  1\\. Install Node\\.js and re-run \\(auto-download will proceed\\)\n  2\\. Install the vshaxe VSCode extension: code --install-extension nadako\\.vshaxe\n  3\\. Set ls_path in serena_config\\.yml under ls_specific_settings\\.haxe","errorType":"exception","errorClass":"FileNotFoundError","httpStatus":null,"severity":"error","filePath":"src/solidlsp/language_servers/haxe_language_server.py","lineNumber":102,"sourceCode":"                log.info(f\"Found system-installed haxe-language-server at {system_haxe_ls}\")\n                return system_haxe_ls\n\n            # 2. Check VSCode extension locations\n            vscode_server_path = self._find_vscode_extension_server()\n            if vscode_server_path:\n                log.info(f\"Found Haxe Language Server in VSCode extension at {vscode_server_path}\")\n                return vscode_server_path\n\n            # 3. Check resource dir / download from Open VSX\n            version = self._custom_settings.get(\"version\", DEFAULT_VSHAXE_VERSION)\n            ls_dirname = \"haxe-lsp\" if version == INITIAL_VSHAXE_VERSION else f\"haxe-lsp-{version}\"\n            haxe_ls_dir = os.path.join(self._ls_resources_dir, ls_dirname)\n            server_js_path = os.path.join(haxe_ls_dir, \"bin\", \"server.js\")\n            if os.path.exists(server_js_path):\n                log.info(f\"Found Haxe Language Server at {server_js_path}\")\n                return server_js_path\n\n            if shutil.which(\"node\") is None:\n                raise FileNotFoundError(\n                    \"Haxe Language Server not found and Node.js is not installed (required to run it).\\n\"\n                    \"Install options:\\n\"\n                    \"  1. Install Node.js and re-run (auto-download will proceed)\\n\"\n                    \"  2. Install the vshaxe VSCode extension: code --install-extension nadako.vshaxe\\n\"\n                    \"  3. Set ls_path in serena_config.yml under ls_specific_settings.haxe\"\n                )\n\n            downloaded_path = self._download_from_open_vsx(haxe_ls_dir, version)\n            if downloaded_path:\n                return downloaded_path\n\n            raise FileNotFoundError(\n                \"Haxe Language Server not found. Install options:\\n\"\n                \"  1. Install the vshaxe VSCode extension: code --install-extension nadako.vshaxe\\n\"\n                \"  2. Set ls_path in serena_config.yml under ls_specific_settings.haxe\"\n            )\n","sourceCodeStart":84,"sourceCodeEnd":120,"githubUrl":"https://github.com/oraios/serena/blob/7fcbca7e62555ec2287ddb2f083caee805848ea6/src/solidlsp/language_servers/haxe_language_server.py#L84-L120","documentation":"FileNotFoundError raised by HaxeLanguageServer._get_or_install_core_dependency when the Haxe Language Server's server.js is not present in the resources directory AND Node.js (required to execute it) is not installed. The library would otherwise auto-download the server, but it refuses to proceed when there is no runtime to run it with.","triggerScenarios":"Initializing the Haxe language server when the auto-downloaded haxe-ls resources dir (bin/server.js) is missing and shutil.which('node') returns None, and no ls_path override is configured.","commonSituations":"First run on a machine without Node.js; Node installed via nvm but not on PATH for the running process; Docker/CI image lacking Node; previous auto-download failed leaving no server.js.","solutions":["Install Node.js (e.g. from nodejs.org or your package manager) and verify `node --version`, then re-run — auto-download will proceed","If Node exists via nvm, make it available on PATH for the process (activate the nvm version)","Install the vshaxe VSCode extension (`code --install-extension nadako.vshaxe`) and point ls_path at its language server","Set ls_path in serena_config.yml under ls_specific_settings.haxe to an existing server entry point"],"exampleFix":"// before\nnode --version  # command not found\n// after\n# Debian/Ubuntu\ncurl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -\nsudo apt-get install -y nodejs\nnode --version  # re-run server; auto-download proceeds","handlingStrategy":"validation","validationCode":"import os, shutil\ndef ensure_haxe_prereqs(resources_dir: str, ls_dirname: str):\n    server_js = os.path.join(resources_dir, ls_dirname, 'bin', 'server.js')\n    have_server = os.path.isfile(server_js)\n    have_node = shutil.which('node') is not None\n    if not have_server and not have_node:\n        raise FileNotFoundError('Install Node.js so the Haxe LS can be downloaded and run')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Install Node.js in the base image for any environment using Haxe tooling","Make nvm-installed Node visible on PATH for non-interactive processes","Pre-seed the Haxe LS resources directory to skip auto-download","Verify `node --version` before starting the server"],"tags":["haxe","nodejs","path","missing-binary","language-server"],"backgroundTag":"missing-executable-on-path","analyzedSha":"7fcbca7e62555ec2287ddb2f083caee805848ea6","analyzedAt":"2026-08-29T00:04:09.619Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}