{"record":{"id":"e4d3e2de3f87f9eb","repo":"oraios/serena","slug":"haxe-language-server-not-found-install-options","errorCode":null,"errorMessage":"Haxe Language Server not found. Install options:\n  1. Install the vshaxe VSCode extension: code --install-extension nadako.vshaxe\n  2. Set ls_path in serena_config.yml under ls_specific_settings.haxe","messagePattern":"Haxe Language Server not found\\. Install options:\n  1\\. Install the vshaxe VSCode extension: code --install-extension nadako\\.vshaxe\n  2\\. 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":114,"sourceCode":"            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\n        @staticmethod\n        def _find_vscode_extension_server() -> str | None:\n            \"\"\"Search for the Haxe language server in VSCode extension directories.\"\"\"\n            search_paths = [\n                os.path.expanduser(\"~/.vscode/extensions/nadako.vshaxe-*/bin/server.js\"),\n                os.path.expanduser(\"~/.vscode-server/extensions/nadako.vshaxe-*/bin/server.js\"),\n                os.path.expanduser(\"~/.vscode-insiders/extensions/nadako.vshaxe-*/bin/server.js\"),\n            ]\n            for pattern in search_paths:\n                matches = sorted(glob.glob(pattern), reverse=True)  # newest version first\n                for match in matches:\n                    if os.path.isfile(match):","sourceCodeStart":96,"sourceCodeEnd":132,"githubUrl":"https://github.com/oraios/serena/blob/7fcbca7e62555ec2287ddb2f083caee805848ea6/src/solidlsp/language_servers/haxe_language_server.py#L96-L132","documentation":"FileNotFoundError raised by HaxeLanguageServer._get_or_install_core_dependency when Node.js is available but the Haxe Language Server could not be obtained: not found locally and the attempt to download it from Open VSX (_download_from_open_vsx) failed or returned nothing. It lists manual installation options.","triggerScenarios":"Initializing the Haxe server when server.js is absent, node IS installed, but the Open VSX download fails — network error, the extension package is unavailable on open-vsx.org, a version has no published artifact, or the download's expected output path is missing.","commonSituations":"Offline or proxy-restricted environments blocking open-vsx.org; newly released/renamed Haxe LS version with no Open VSX artifact; transient network failure; corporate firewall with TLS interception.","solutions":["Check network access to https://open-vsx.org (curl -I https://open-vsx.org) and retry; fix proxy settings if needed","Install the vshaxe VSCode extension (`code --install-extension nadako.vshaxe`) and set ls_path to its language server binary","Set ls_path in serena_config.yml under ls_specific_settings.haxe to a manually obtained Haxe LS build","Pin/adjust the requested version to one that exists on Open VSX"],"exampleFix":"# before (serena_config.yml) — no fallback, relies on download\nls_specific_settings: {}\n# after — point at a manually installed server\nls_specific_settings:\n  haxe:\n    ls_path: '/opt/tools/haxe-language-server/bin/server.js'","handlingStrategy":"fallback","validationCode":"import urllib.request\ndef ensure_open_vsx_reachable():\n    try:\n        urllib.request.urlopen('https://open-vsx.org', timeout=5)\n    except Exception as e:\n        raise RuntimeError(f'Open VSX unreachable; pre-install vshaxe and set ls_path: {e}')","typeGuard":null,"tryCatchPattern":"try:\n    ls = HaxeLanguageServer(...)\nexcept FileNotFoundError as e:\n    if 'Install options' in str(e):\n        log.error('Haxe LS download failed; install vshaxe extension or set ls_specific_settings.haxe.ls_path')\n        raise","preventionTips":["Pre-install the Haxe LS and configure ls_path instead of relying on runtime download","Allowlist open-vsx.org in firewalls/proxies for CI","Pin a known-published version of the Haxe LS","Retry downloads with backoff on transient network errors"],"tags":["haxe","download","network","language-server"],"backgroundTag":"language-server-download-failed","analyzedSha":"7fcbca7e62555ec2287ddb2f083caee805848ea6","analyzedAt":"2026-08-29T00:04:09.619Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}