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

  1. Delete the managed BSL install directory (jar_dir) to force a clean reinstall and retry
  2. Check the upstream BSL release for the pinned version and confirm the jar asset name/location matches what the library expects
  3. Check network/proxy behavior — ensure the GitHub release asset downloads fully (check file size)
  4. 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

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


AI-assisted analysis of oraios/serena@7fcbca7e62 (2026-08-29). Data as JSON: /api/errors/cbde55892878bd39. Report an issue: GitHub.