{"record":{"id":"a0bc5f02e9f1ded0","repo":"oraios/serena","slug":"nomicfoundation-solidity-language-server-executabl","errorCode":null,"errorMessage":"nomicfoundation-solidity-language-server executable not found at {solidity_executable_path}. Something went wrong with the installation.","messagePattern":"nomicfoundation-solidity-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/solidity_language_server.py","lineNumber":141,"sourceCode":"                ]\n            )\n\n            solidity_ls_dir = self._resolve_solidity_ls_dir(solidity_language_server_version, forge_version)\n            managed_bin_dir = os.path.join(solidity_ls_dir, \"node_modules\", \".bin\")\n            solidity_executable_path = os.path.join(managed_bin_dir, \"nomicfoundation-solidity-language-server\")\n            forge_executable_path = os.path.join(managed_bin_dir, \"forge\")\n\n            if os.name == \"nt\":\n                solidity_executable_path += \".cmd\"\n                forge_executable_path += \".cmd\"\n\n            if not os.path.exists(solidity_executable_path) or not os.path.exists(forge_executable_path):\n                log.info(\"Solidity Language Server dependencies missing. Installing...\")\n                deps.install(solidity_ls_dir)\n                log.info(\"Solidity language server dependencies installed successfully.\")\n\n            if not os.path.exists(solidity_executable_path):\n                raise FileNotFoundError(\n                    f\"nomicfoundation-solidity-language-server executable not found at {solidity_executable_path}. \"\n                    \"Something went wrong with the installation.\"\n                )\n\n            return solidity_executable_path\n\n        @staticmethod\n        def _get_forge_npm_package() -> str:\n            \"\"\"\n            Returns the platform-specific @foundry-rs forge npm subpackage name. Installing\n            the meta-package fails on Windows due to a POSIX-only postinstall script.\n            \"\"\"\n            machine = platform.machine().lower()\n            if machine in (\"x86_64\", \"amd64\"):\n                arch = \"amd64\"\n            elif machine in (\"arm64\", \"aarch64\"):\n                arch = \"arm64\"\n            else:","sourceCodeStart":123,"sourceCodeEnd":159,"githubUrl":"https://github.com/oraios/serena/blob/7fcbca7e62555ec2287ddb2f083caee805848ea6/src/solidlsp/language_servers/solidity_language_server.py#L123-L159","documentation":"After SolidLSP installs the Solidity language server dependencies, it verifies the expected nomicfoundation-solidity-language-server binary exists on disk. If the post-install check fails, _get_or_install_core_dependency raises FileNotFoundError indicating the installation did not produce the executable — an install integrity failure, not a missing-implementation error.","triggerScenarios":"Constructing the Solidity language server when, despite running deps.install(solidity_ls_dir), the binary at solidity_executable_path is absent: npm install partially failed, wrong install dir, platform-specific binary skipped, or a prior corrupted install cached.","commonSituations":"Disk-full or interrupted npm installs, restricted filesystems (read-only npm cache/npm_config_prefix), npm proxy misconfigurations, or Windows/ARM environments where the package's platform binary is unavailable.","solutions":["Delete the solidity language-server install directory and let the library reinstall (fresh deps.install).","Run the underlying npm install manually in that directory to see the real npm error.","Check disk space and that the install path is writable.","Verify Node/npm versions meet the package's requirements and the platform/arch binary is published for your OS."],"exampleFix":"// before: corrupted install dir\nrm -rf ~/.solidlsp/solidity-lang-server\n// after: clean reinstall happens on next init\npython -c \"from solidlsp import SolidLSP; ...\"  # triggers fresh install","handlingStrategy":"try-catch","validationCode":"import os\nfrom solidlsp.language_servers.solidity_language_server import _get_ls_dir  # or your resolved dir\nexe = os.path.join(solidity_ls_dir, \"node_modules\", \".bin\", \"nomicfoundation-solidity-language-server\")\nif not os.path.exists(exe):\n    import shutil\n    shutil.rmtree(solidity_ls_dir, ignore_errors=True)  # force clean reinstall","typeGuard":"def solidity_ls_installed(install_dir: str, exe_name: str) -> bool:\n    import os\n    return os.path.exists(os.path.join(install_dir, \"node_modules\", \".bin\", exe_name))","tryCatchPattern":"try:\n    server = SolidityLanguageServer(config, repo_root, settings)\nexcept FileNotFoundError as e:\n    if \"executable not found\" in str(e):\n        shutil.rmtree(solidity_ls_dir, ignore_errors=True)\n        server = SolidityLanguageServer(config, repo_root, settings)  # clean reinstall\n    else:\n        raise","preventionTips":["Ensure adequate disk space and a writable npm cache before first run.","Pin working Node/npm versions used by the language server install.","Delete stale install directories after library upgrades that change binary paths."],"tags":["solidity","npm","binary-missing","install"],"backgroundTag":"language-server-binary-not-found","analyzedSha":"7fcbca7e62555ec2287ddb2f083caee805848ea6","analyzedAt":"2026-08-29T00:04:09.619Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}