{"record":{"id":"163daed8022d6984","repo":"oraios/serena","slug":"vue-language-server-executable-not-found-at-vue-e","errorCode":null,"errorMessage":"vue-language-server executable not found at {vue_executable_path}, something went wrong with the installation.","messagePattern":"vue-language-server executable not found at (.+?), something went wrong with the installation\\.","errorType":"exception","errorClass":"FileNotFoundError","httpStatus":null,"severity":"error","filePath":"src/solidlsp/language_servers/vue_language_server.py","lineNumber":609,"sourceCode":"                log.info(\n                    f\"Vue Language Server version mismatch: installed={installed_version}, expected={expected_version}. Reinstalling...\"\n                )\n                needs_install = True\n        else:\n            # No version file exists, assume old installation needs refresh\n            log.info(\"Vue Language Server version file not found. Reinstalling to ensure correct version...\")\n            needs_install = True\n\n        if needs_install:\n            log.info(\"Installing Vue/TypeScript Language Server dependencies...\")\n            deps.install(vue_ls_dir)\n            # Write version marker file\n            with open(version_file, \"w\") as f:\n                f.write(expected_version)\n            log.info(\"Vue language server dependencies installed successfully\")\n\n        if not os.path.exists(vue_executable_path):\n            raise FileNotFoundError(\n                f\"vue-language-server executable not found at {vue_executable_path}, something went wrong with the installation.\"\n            )\n\n        if not os.path.exists(ts_ls_executable_path):\n            raise FileNotFoundError(\n                f\"typescript-language-server executable not found at {ts_ls_executable_path}, something went wrong with the installation.\"\n            )\n\n        return [vue_executable_path, \"--stdio\"], tsdk_path, ts_ls_executable_path\n\n    def _create_base_initialize_params(self) -> dict:\n        initialize_params = {\n            \"locale\": \"en\",\n            \"capabilities\": {\n                \"textDocument\": {\n                    \"synchronization\": {\"didSave\": True, \"dynamicRegistration\": True},\n                    \"completion\": {\"dynamicRegistration\": True, \"completionItem\": {\"snippetSupport\": True}},\n                    \"definition\": {\"dynamicRegistration\": True, \"linkSupport\": True},","sourceCodeStart":591,"sourceCodeEnd":627,"githubUrl":"https://github.com/oraios/serena/blob/7fcbca7e62555ec2287ddb2f083caee805848ea6/src/solidlsp/language_servers/vue_language_server.py#L591-L627","documentation":"Thrown as FileNotFoundError during VueLanguageServer construction when _setup_runtime_dependencies finishes installing but the vue-language-server executable is still missing at vue_executable_path. The Vue server needs both vue-language-server and typescript-language-server, and each is verified before launch.","triggerScenarios":"Instantiating the Vue language server triggers _setup_runtime_dependencies (called from __init__); after the install routine and version-marker write, os.path.exists(vue_executable_path) is False.","commonSituations":"npm/global install of @vue/language-server failing or partially completing; network/proxy blocking the download; interrupted first run leaving a stale version marker; permission problems writing the install directory.","solutions":["Delete the vue language server install directory (including any stale version marker file) and retry to force a clean install.","Install manually: npm install -g @vue/language-server and point ls_path at the binary.","Check npm error output, network/proxy configuration, and disk space.","Verify execute permissions on the expected executable path.","Check Node.js is installed and recent enough for the Vue language server."],"exampleFix":"// before: stale install dir blocks reinstall\n# rm -rf ~/.solidlsp/servers/vue-language-server\nls = SolidLSP(\"vue\", \"/repo\")\n// after\n# fresh install, then verify\ncmd, tsdk, ts_ls = VueLanguageServer._setup_runtime_dependencies(...)  # succeeds after clean install","handlingStrategy":"try-catch","validationCode":"import os\nif not os.path.isfile(vue_executable_path):\n    subprocess.run([\"npm\", \"install\", \"-g\", \"@vue/language-server\", \"typescript\", \"typescript-language-server\"], check=True)","typeGuard":"def is_executable_file(path: str) -> bool:\n    return os.path.isfile(path) and os.access(path, os.X_OK)","tryCatchPattern":"try:\n    ls = SolidLSP(\"vue\", repo_path)\nexcept FileNotFoundError as e:\n    if \"executable not found\" in str(e):\n        # wipe install dir + stale version marker, then retry\n        shutil.rmtree(vue_ls_install_dir, ignore_errors=True)\n        ls = SolidLSP(\"vue\", repo_path)\n    else:\n        raise","preventionTips":["Pre-install @vue/language-server in your environment/image.","Delete stale version-marker files after failed or interrupted installs.","Verify Node.js availability before constructing the Vue server.","Check npm/proxy errors in CI logs rather than retrying blindly."],"tags":["installation","npm","vue","file-not-found"],"backgroundTag":"language-server-install-failed","analyzedSha":"7fcbca7e62555ec2287ddb2f083caee805848ea6","analyzedAt":"2026-08-29T00:04:09.619Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}