{"record":{"id":"d95363c216f00567","repo":"oraios/serena","slug":"gleam-is-not-installed-or-not-in-path-please-inst","errorCode":null,"errorMessage":"Gleam is not installed or not in PATH.\nPlease install the Gleam compiler from https://gleam.run/getting-started/installing/\nand ensure the 'gleam' binary is available on your PATH.\nThe Gleam language server is bundled with the compiler and is started via `gleam lsp`.","messagePattern":"Gleam is not installed or not in PATH\\.\nPlease install the Gleam compiler from https://gleam\\.run/getting-started/installing/\nand ensure the 'gleam' binary is available on your PATH\\.\nThe Gleam language server is bundled with the compiler and is started via `gleam lsp`\\.","errorType":"exception","errorClass":"FileNotFoundError","httpStatus":null,"severity":"error","filePath":"src/solidlsp/language_servers/gleam_language_server.py","lineNumber":70,"sourceCode":"        self._progress_lock = threading.Lock()\n        self._active_progress_tokens: set[str | int] = set()\n        self._first_progress_seen = threading.Event()\n        self._idle = threading.Event()\n        self._idle.set()  # optimistic: assume ready until a $/progress begin arrives\n\n    def _create_dependency_provider(self) -> LanguageServerDependencyProvider:\n        return self.DependencyProvider(self._custom_settings, self._ls_resources_dir)\n\n    class DependencyProvider(LanguageServerDependencyProviderSinglePath):\n        def _get_or_install_core_dependency(self) -> str:\n            \"\"\"\n            Discover the Gleam compiler executable on PATH.\n\n            :return: path to the ``gleam`` binary\n            :raises FileNotFoundError: if ``gleam`` is neither on PATH nor provided via ``ls_path``\n            \"\"\"\n            gleam_binary = shutil.which(\"gleam\")\n            if gleam_binary is None:\n                raise FileNotFoundError(\n                    \"Gleam is not installed or not in PATH.\\n\"\n                    \"Please install the Gleam compiler from https://gleam.run/getting-started/installing/\\n\"\n                    \"and ensure the 'gleam' binary is available on your PATH.\\n\"\n                    \"The Gleam language server is bundled with the compiler and is started via `gleam lsp`.\"\n                )\n            return gleam_binary\n\n        def _create_launch_command(self, core_path: str) -> list[str]:\n            # `gleam lsp` runs the language server over stdio.\n            return [core_path, \"lsp\"]\n\n    @override\n    def is_ignored_dirname(self, dirname: str) -> bool:\n        # Gleam writes compiled output and downloaded dependencies under build/.\n        return super().is_ignored_dirname(dirname) or dirname == \"build\"\n\n    @override","sourceCodeStart":52,"sourceCodeEnd":88,"githubUrl":"https://github.com/oraios/serena/blob/7fcbca7e62555ec2287ddb2f083caee805848ea6/src/solidlsp/language_servers/gleam_language_server.py#L52-L88","documentation":"FileNotFoundError thrown while discovering the Gleam compiler executable. The Gleam language server is bundled with the compiler and started via `gleam lsp`, so without the `gleam` binary on PATH the server cannot be launched. The library does not auto-install Gleam.","triggerScenarios":"Instantiating the Gleam language server when shutil.which('gleam') returns None, i.e. gleam is neither on PATH nor provided via the ls_path setting.","commonSituations":"Gleam never installed; installed via a version manager (e.g. asdf/mise) whose PATH isn't loaded in the daemon/CI environment; installed inside a project-local toolchain not exported to PATH.","solutions":["Install Gleam following https://gleam.run/getting-started/installing/ (e.g. `curl -fsSL https://gleam.run/install.sh | sh`)","Verify with `which gleam` / `gleam --version` in the same shell/environment that runs the library","If installed via asdf/mise, activate the shim so it appears on PATH for non-interactive processes, or point ls_path at the absolute gleam binary","Set ls_path in serena_config.yml under ls_specific_settings.gleam to the absolute path of the gleam binary"],"exampleFix":"// before\ngleam --version  # command not found\n// after\ncurl -fsSL https://gleam.run/install.sh | sh\nexport PATH=\"$HOME/.local/bin:$PATH\"\ngleam --version","handlingStrategy":"validation","validationCode":"import shutil\ndef ensure_gleam_available():\n    if shutil.which('gleam') is None:\n        raise FileNotFoundError(\"'gleam' not on PATH. Install from https://gleam.run/getting-started/installing/\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run `gleam --version` as a smoke test in setup scripts","Use absolute paths or ls_path in containers/CI where PATH varies","Ensure version-manager shims (asdf/mise) are exported for non-interactive shells","Pin the Gleam install in your Dockerfile/CI image"],"tags":["gleam","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"}