{"record":{"id":"2b100b6fd77f1980","repo":"oraios/serena","slug":"the-deno-executable-was-not-found-on-path-insta","errorCode":null,"errorMessage":"The 'deno' executable was not found on PATH. Install Deno (https://docs.deno.com/runtime/getting_started/installation/) — it bundles the language server used here — and ensure 'deno' is on your PATH.","messagePattern":"The 'deno' executable was not found on PATH\\. Install Deno \\(https://docs\\.deno\\.com/runtime/getting_started/installation/\\) — it bundles the language server used here — and ensure 'deno' is on your PATH\\.","errorType":"exception","errorClass":"FileNotFoundError","httpStatus":null,"severity":"error","filePath":"src/solidlsp/language_servers/deno_language_server.py","lineNumber":59,"sourceCode":"            \"typescript\",\n            solidlsp_settings,\n        )\n\n    def _create_dependency_provider(self) -> LanguageServerDependencyProvider:\n        return self.DependencyProvider(self._custom_settings, self._ls_resources_dir)\n\n    @override\n    def is_ignored_dirname(self, dirname: str) -> bool:\n        # node_modules appears in Deno projects using npm compatibility; vendor/ holds\n        # vendored remote dependencies. Neither should be indexed as project sources.\n        return super().is_ignored_dirname(dirname) or dirname in [\"node_modules\", \"vendor\", \"dist\", \"build\"]\n\n    class DependencyProvider(LanguageServerDependencyProviderSinglePath):\n        def _get_or_install_core_dependency(self) -> str:\n            \"\"\"Return the path to the ``deno`` executable (the language server ships with it).\"\"\"\n            deno_path = shutil.which(\"deno\")\n            if deno_path is None:\n                raise FileNotFoundError(\n                    \"The 'deno' executable was not found on PATH. Install Deno \"\n                    \"(https://docs.deno.com/runtime/getting_started/installation/) — it bundles \"\n                    \"the language server used here — and ensure 'deno' is on your PATH.\"\n                )\n            return deno_path\n\n        def _create_launch_command(self, core_path: str) -> list[str]:\n            return [core_path, \"lsp\"]\n\n    def _get_language_id_for_file(self, relative_file_path: str) -> str:\n        # deno lsp relies on the correct languageId; .tsx/.jsx in particular must not\n        # be sent as plain \"typescript\" or symbol ranges get truncated at JSX expressions.\n        if relative_file_path.endswith(\".tsx\"):\n            return \"typescriptreact\"\n        if relative_file_path.endswith(\".jsx\"):\n            return \"javascriptreact\"\n        if relative_file_path.endswith((\".js\", \".mjs\", \".cjs\")):\n            return \"javascript\"","sourceCodeStart":41,"sourceCodeEnd":77,"githubUrl":"https://github.com/oraios/serena/blob/7fcbca7e62555ec2287ddb2f083caee805848ea6/src/solidlsp/language_servers/deno_language_server.py#L41-L77","documentation":"This FileNotFoundError is raised when the Deno language server dependency provider cannot find a 'deno' executable on PATH. Unlike other servers, Deno's LSP is not downloaded separately — it ships inside the deno runtime — so the runtime itself must be installed and discoverable.","triggerScenarios":"Instantiating/starting the Deno language server when shutil.which('deno') returns None, i.e. deno is not installed or not on the PATH of the process running Serena.","commonSituations":"Deno never installed; installed via a version manager (mise/asdf/volta) whose shims aren't on PATH in the current shell/IDE; deno installed only in a venv/container differing from the one running Serena; PATH stripped in GUI-launched or systemd contexts.","solutions":["Install Deno following https://docs.deno.com/runtime/getting_started/installation/ (curl/iwr installer, brew, scoop, etc.).","Verify with 'which deno' and 'deno --version' in the same shell/environment that runs Serena.","If using a version manager, ensure its shims directory is on PATH for the process launching Serena.","Restart the IDE/terminal after installation so PATH changes propagate.","As a workaround, symlink the deno binary into a directory already on PATH (e.g. /usr/local/bin)."],"exampleFix":"// before\n$ which deno\n(none)\n// after\n$ curl -fsSL https://deno.land/install.sh | sh\n$ export PATH=\"$HOME/.deno/bin:$PATH\"\n$ which deno","handlingStrategy":"validation","validationCode":"import shutil, sys\nif shutil.which('deno') is None:\n    sys.exit(\"Deno is required: https://docs.deno.com/runtime/getting_started/installation/\")","typeGuard":null,"tryCatchPattern":"try:\n    ls = SolidLSP(deno_config)\n    ls.start()\nexcept FileNotFoundError as e:\n    if \"'deno'\" in str(e):\n        raise SystemExit('Install Deno and ensure it is on PATH of the process running Serena.')\n    raise","preventionTips":["Run 'which deno && deno --version' in the exact shell/IDE environment that launches Serena.","After installing via a version manager, restart the terminal/IDE so PATH updates apply.","For daemons/GUI launches, set PATH explicitly in the service environment.","Keep deno updated since its bundled LSP evolves with the runtime."],"tags":["deno","path","installation","language-server"],"backgroundTag":"executable-not-on-path","analyzedSha":"7fcbca7e62555ec2287ddb2f083caee805848ea6","analyzedAt":"2026-08-29T00:04:09.619Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}