oraios/serena · error · SolidLSPException

Failed to install .NET {version} runtime using install scrip

Error message

Failed to install .NET {version} runtime using install script: {e.stderr if e.stderr else e}

What it means

If the dotnet install script subprocess exits non-zero (subprocess.CalledProcessError), install_dotnet_with_script wraps it in SolidLSPException including stderr. This means the download or extraction step of the .NET runtime failed.

Source

Thrown at src/serena/util/dotnet.py:152

                    str(dotnet_dir),
                    "--runtime",
                    "dotnet",
                    "--no-path",
                ]

            # Run the install script
            log.info("Running .NET install script: %s", cmd)
            result = subprocess_run(cmd, capture_output=True, text=True, check=True)
            log.debug(f"Install script output: {result.stdout}")

            if not dotnet_exe.exists():
                raise SolidLSPException(f"dotnet executable not found at {dotnet_exe} after installation")

            log.info(f"Successfully installed .NET {version} runtime to {dotnet_exe}")
            return str(dotnet_exe)

        except subprocess.CalledProcessError as e:
            raise SolidLSPException(f"Failed to install .NET {version} runtime using install script: {e.stderr if e.stderr else e}") from e
        except Exception as e:
            message = f"Failed to install .NET {version} runtime: {e}"
            if is_windows and isinstance(e, FileNotFoundError):
                message += "; pwsh, i.e. PowerShell 7+, is required to install .NET runtime. Make sure pwsh is available on your system."
            raise SolidLSPException(message) from e

View on GitHub (pinned to 7fcbca7e62)

Solutions

  1. Read the stderr in the exception for the root cause and fix accordingly (URL, proxy, disk)
  2. Check network connectivity/proxy settings (HTTPS_PROXY) and retry
  3. Install the .NET runtime manually via system package manager instead of the script
  4. On Windows, ensure pwsh (PowerShell 7+) is installed since the script requires it

Example fix

// before
curl -sSL https://dot.net/v1/dotnet-install.sh | bash  # blocked by proxy
// after
export HTTPS_PROXY=http://proxy.corp:8080
wget https://dot.net/v1/dotnet-install.sh && bash dotnet-install.sh --channel 8.0
Defensive patterns

Strategy: retry

Validate before calling

import urllib.request
urllib.request.urlopen("https://builds.dotnet.microsoft.com", timeout=10)  # connectivity check

Try / catch

try:
    path = util.install_dotnet_with_script(version)
except SolidLSPException as e:
    if "install script" in str(e):
        print("Check network/proxy; stderr:", e)
    raise

Prevention

When it happens

Trigger: dotnet-install.sh/dotnet-install.ps1 returning a non-zero exit code — download URLs unreachable (404/offline), TLS failures, unsupported OS/arch combination, or pwsh script errors.

Common situations: Corporate proxies blocking downloads; no internet access in CI; Microsoft CDN outage; unsupported Linux distro for the install script.

Related errors


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