oraios/serena · error
Download failed? Could not find ada_language_server executab
Error message
Download failed? Could not find ada_language_server executable at {als_executable_path} What it means
The Ada language server provider downloads and extracts the ada_language_server release artifact into an install directory, then checks that the platform-expected executable exists. FileNotFoundError means the download/extract step completed (or was skipped) but the binary is not where it should be — usually a failed/incomplete download, an unexpected archive layout, or a platform mismatch.
Source
Thrown at src/solidlsp/language_servers/ada_language_server.py:130
class DependencyProvider(LanguageServerDependencyProviderSinglePath):
def _get_or_install_core_dependency(self) -> str:
"""Setup runtime dependencies for ALS and return the path to the executable."""
als_version = self._custom_settings.get("als_version", DEFAULT_ALS_VERSION)
deps = AdaLanguageServer._runtime_dependencies(als_version)
dependency = deps.get_single_dep_for_current_platform()
install_dir = os.path.join(self._ls_resources_dir, f"als-{als_version}")
als_executable_path = deps.binary_path(install_dir)
if not os.path.exists(als_executable_path):
log.info(
"Downloading and extracting ada_language_server from %s to %s",
dependency.url,
install_dir,
)
deps.install(install_dir)
if not os.path.exists(als_executable_path):
raise FileNotFoundError(f"Download failed? Could not find ada_language_server executable at {als_executable_path}")
os.chmod(als_executable_path, 0o755)
return als_executable_path
def _create_launch_command(self, core_path: str) -> list[str]:
# ALS speaks LSP over stdio by default; no flags needed.
return [core_path]
def __init__(self, config: LanguageServerConfig, repository_root_path: str, solidlsp_settings: SolidLSPSettings):
"""
Creates an AdaLanguageServer instance. This class is not meant to be instantiated directly.
Use LanguageServer.create() instead.
"""
super().__init__(
config,
repository_root_path,
None,
"ada",
solidlsp_settings,View on GitHub (pinned to 7fcbca7e62)
Solutions
- Delete the cached install directory and retry so the dependency is re-downloaded cleanly.
- Verify network access to the release URL and that the downloaded archive matches your platform.
- Check whether the upstream release changed the executable name/location and update the expected path or pin a working release version.
Example fix
// before curl -fL <url> -o als.zip # proxy error page cached as als.zip // after rm -rf <install_dir> curl -fL --retry 3 <url> -o als.zip && unzip -t als.zip # validate archive
Defensive patterns
Strategy: retry
Validate before calling
import os
def als_binary_ok(install_dir: str, expected_name: str = 'ada_language_server') -> bool:
for root, _, files in os.walk(install_dir):
if expected_name in files and os.access(os.path.join(root, expected_name), os.X_OK):
return True
return False Type guard
def executable_exists(path: str) -> bool:
return os.path.isfile(path) and os.access(path, os.X_OK) Try / catch
try:
core = provider.get_or_install_core_dependency()
except FileNotFoundError as e:
if 'ada_language_server executable' in str(e):
shutil.rmtree(install_dir, ignore_errors=True) # purge partial download
core = provider.get_or_install_core_dependency() # retry once
else:
raise Prevention
- Purge cached language-server install dirs after network failures or version upgrades.
- Verify release archive integrity (size/zip -t) behind proxies that may inject error pages.
- Pin a known-good ada_language_server release; watch upstream for layout changes.
When it happens
Trigger: Calling _get_or_install_core_dependency for the Ada language server when deps.install() produced no executable at als_executable_path — network truncation, wrong platform artifact, or a release that renamed/moved the binary.
Common situations: Flaky corporate proxies returning HTML error pages saved as the archive; unsupported platform (e.g. musl/Alpine) picking the wrong asset; upstream release layout change.
Related errors
- Haxe Language Server not found. Install options: 1. Instal
- Failed to locate or download AL Language Server. Please eith
- AL Language Server executable not found at: {executable_path
- Failed to download package {package_name} version {package_v
- Download failed? Could not find cue executable at {cue_execu
AI-assisted analysis of oraios/serena@7fcbca7e62 (2026-08-29).
Data as JSON: /api/errors/8ce17c18716fca2a.
Report an issue: GitHub.