{"record":{"id":"cbde55892878bd39","repo":"oraios/serena","slug":"bsl-language-server-jar-not-found-at-jar-path-af","errorCode":null,"errorMessage":"BSL Language Server JAR not found at {jar_path} after installation.","messagePattern":"BSL Language Server JAR not found at (.+?) after installation\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/solidlsp/language_servers/bsl_language_server.py","lineNumber":158,"sourceCode":"                expected_sha256 = None if user_overrode_version else BSL_LS_JAR_SHA256_BY_VERSION.get(bsl_version)\n\n                deps = RuntimeDependencyCollection(\n                    [\n                        RuntimeDependency(\n                            id=\"bsl-language-server\",\n                            description=\"BSL Language Server JAR by 1c-syntax\",\n                            url=jar_url,\n                            sha256=expected_sha256,\n                            archive_type=\"binary\",\n                            binary_name=f\"bsl-language-server-{bsl_version}-exec.jar\",\n                            platform_id=\"any\",\n                        ),\n                    ]\n                )\n                deps.install(jar_dir)\n\n            if not os.path.exists(jar_path):\n                raise FileNotFoundError(f\"BSL Language Server JAR not found at {jar_path} after installation.\")\n\n            log.info(f\"Using BSL Language Server v{bsl_version} at {jar_path}\")\n            return jar_path\n\n        def _create_launch_command(self, core_path: str) -> list[str]:\n            # Java availability+version is required for both managed installs and user-provided jars (ls_path)\n            _verify_java_available()\n            return [\"java\", \"-jar\", core_path]\n\n    def _create_base_initialize_params(self) -> dict:\n        return {\n            \"locale\": \"en\",\n            \"capabilities\": {\n                \"textDocument\": {\n                    \"synchronization\": {\"didSave\": True, \"dynamicRegistration\": True},\n                    \"definition\": {\"dynamicRegistration\": True},\n                    \"references\": {\"dynamicRegistration\": True},\n                    \"documentSymbol\": {","sourceCodeStart":140,"sourceCodeEnd":176,"githubUrl":"https://github.com/oraios/serena/blob/7fcbca7e62555ec2287ddb2f083caee805848ea6/src/solidlsp/language_servers/bsl_language_server.py#L140-L176","documentation":"_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.","triggerScenarios":"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).","commonSituations":"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.","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"],"exampleFix":"# before\n# jar missing after install -> FileNotFoundError\nrm -rf ~/.cache/serena/language_servers/bsl*  # clear managed dir\n// after\n# restart server; managed install re-downloads the jar successfully","handlingStrategy":"retry","validationCode":"import os\njar_path = os.path.join(jar_dir, \"bsl-language-server.jar\")  # adjust to the library's expected layout\nif not os.path.exists(jar_path):\n    print(\"BSL jar missing; clear the managed install dir so startup re-downloads it\")","typeGuard":null,"tryCatchPattern":"try:\n    server = BSLLanguageServer(...)\nexcept FileNotFoundError as e:\n    if \"JAR not found\" in str(e):\n        shutil.rmtree(jar_dir, ignore_errors=True)\n        server = BSLLanguageServer(...)  # clean reinstall\n    else:\n        raise","preventionTips":["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"],"tags":["bsl","jar","installation","download","java"],"backgroundTag":"language-server-binary-install-failed","analyzedSha":"7fcbca7e62555ec2287ddb2f083caee805848ea6","analyzedAt":"2026-08-29T00:04:09.619Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}