oraios/serena · error
BSL Language Server JAR not found at {jar_path} after instal
Error message
BSL Language Server JAR not found at {jar_path} after installation. What it means
_get_or_install_core_dependency raises FileNotFoundError when the BSL Language Server JAR is not present at jar_path after running the managed installation. The library downloads the pinned BSL release and expects the jar at a specific location; absence means the install did not produce the expected artifact.
Source
Thrown at src/solidlsp/language_servers/bsl_language_server.py:158
expected_sha256 = None if user_overrode_version else BSL_LS_JAR_SHA256_BY_VERSION.get(bsl_version)
deps = RuntimeDependencyCollection(
[
RuntimeDependency(
id="bsl-language-server",
description="BSL Language Server JAR by 1c-syntax",
url=jar_url,
sha256=expected_sha256,
archive_type="binary",
binary_name=f"bsl-language-server-{bsl_version}-exec.jar",
platform_id="any",
),
]
)
deps.install(jar_dir)
if not os.path.exists(jar_path):
raise FileNotFoundError(f"BSL Language Server JAR not found at {jar_path} after installation.")
log.info(f"Using BSL Language Server v{bsl_version} at {jar_path}")
return jar_path
def _create_launch_command(self, core_path: str) -> list[str]:
# Java availability+version is required for both managed installs and user-provided jars (ls_path)
_verify_java_available()
return ["java", "-jar", core_path]
def _create_base_initialize_params(self) -> dict:
return {
"locale": "en",
"capabilities": {
"textDocument": {
"synchronization": {"didSave": True, "dynamicRegistration": True},
"definition": {"dynamicRegistration": True},
"references": {"dynamicRegistration": True},
"documentSymbol": {View on GitHub (pinned to 7fcbca7e62)
Solutions
- Delete the managed BSL install directory (jar_dir) to force a clean reinstall and retry
- Check the upstream BSL release for the pinned version and confirm the jar asset name/location matches what the library expects
- Check network/proxy behavior — ensure the GitHub release asset downloads fully (check file size)
- Choose a known-good BSL version via ls_specific_settings/ls_path, or place the jar manually at the expected jar_path
Example fix
# before # jar missing after install -> FileNotFoundError rm -rf ~/.cache/serena/language_servers/bsl* # clear managed dir // after # restart server; managed install re-downloads the jar successfully
Defensive patterns
Strategy: retry
Validate before calling
import os
jar_path = os.path.join(jar_dir, "bsl-language-server.jar") # adjust to the library's expected layout
if not os.path.exists(jar_path):
print("BSL jar missing; clear the managed install dir so startup re-downloads it") Try / catch
try:
server = BSLLanguageServer(...)
except FileNotFoundError as e:
if "JAR not found" in str(e):
shutil.rmtree(jar_dir, ignore_errors=True)
server = BSLLanguageServer(...) # clean reinstall
else:
raise Prevention
- Clear the managed BSL install directory after failed or interrupted downloads
- Verify network/proxy access to the upstream release host before first startup
- Pin a known-good BSL version or supply the jar via ls_path if upstream renames artifacts
When it happens
Trigger: Calling _get_or_install_core_dependency during BSL server startup when deps.install(jar_dir) completes but os.path.exists(jar_path) is False — download/extract produced no jar at the expected path (changed release artifact naming, network-served wrong file, or partial install).
Common situations: Upstream BSL Language Server release renames its jar or changes release assets; a proxy/mirror returns an HTML error page saved instead of the jar; interrupted download left an incomplete install; corrupted cache directory; custom bsl_version pointing at a release without the expected artifact.
Related errors
- Nextflow Language Server JAR not found at {jar_path}
- Java {BSL_LS_MIN_JAVA_VERSION}+ is required for BSL Language
- Java {BSL_LS_MIN_JAVA_VERSION}+ is required for BSL Language
- Clangd executable not found at {clangd_executable_path}. Mak
- Download failed? Could not find clojure-lsp executable at {c
AI-assisted analysis of oraios/serena@7fcbca7e62 (2026-08-29).
Data as JSON: /api/errors/cbde55892878bd39.
Report an issue: GitHub.