oraios/serena · error · RuntimeError
Unsupported operating system: {system}
Error message
Unsupported operating system: {system} What it means
Raised during lua-language-server download when the operating system is neither Linux, Darwin (macOS), nor Windows, so no release asset naming rule applies. system() returns values like 'FreeBSD', 'OpenBSD', 'SunOS', or anything outside the three supported families.
Source
Thrown at src/solidlsp/language_servers/lua_ls.py:147
download_name = f"lua-language-server-{lua_ls_version}-linux-x64.tar.gz"
elif machine in ["aarch64", "arm64"]:
download_name = f"lua-language-server-{lua_ls_version}-linux-arm64.tar.gz"
else:
raise RuntimeError(f"Unsupported Linux architecture: {machine}")
elif system == "Darwin":
if machine in ["x86_64", "amd64"]:
download_name = f"lua-language-server-{lua_ls_version}-darwin-x64.tar.gz"
elif machine in ["arm64", "aarch64"]:
download_name = f"lua-language-server-{lua_ls_version}-darwin-arm64.tar.gz"
else:
raise RuntimeError(f"Unsupported macOS architecture: {machine}")
elif system == "Windows":
if machine in ["amd64", "x86_64"]:
download_name = f"lua-language-server-{lua_ls_version}-win32-x64.zip"
else:
raise RuntimeError(f"Unsupported Windows architecture: {machine}")
else:
raise RuntimeError(f"Unsupported operating system: {system}")
download_url = f"https://github.com/LuaLS/lua-language-server/releases/download/{lua_ls_version}/{download_name}"
install_dir = _lua_ls_install_dir(LuaLanguageServer.ls_resources_dir(solidlsp_settings), lua_ls_version)
install_dir.mkdir(parents=True, exist_ok=True)
log.info("Downloading lua-language-server from %s", download_url)
archive_type = "gztar" if download_name.endswith(".tar.gz") else "zip"
FileUtils.download_and_extract_archive_verified(
download_url,
str(install_dir),
archive_type,
expected_sha256=_lua_ls_sha(lua_ls_version, download_name),
allowed_hosts=LUA_LS_ALLOWED_HOSTS,
)
# Make executable on Unix systems
if system != "Windows":View on GitHub (pinned to 7fcbca7e62)
Solutions
- Run the library on Linux, macOS, or Windows (e.g. inside a Docker linux container on the BSD host)
- Build lua-language-server from source on the target OS and place the binary at the expected install_dir path so download is skipped
- Contribute/patch lua_ls.py to add an asset rule for your OS if a release asset exists
- Use a managed CI runner with a supported OS
Example fix
// before # running multilspy directly on FreeBSD host // after docker run -v $(pwd):/work -w /work python:3.11 # linux container on FreeBSD via jail/podman
Defensive patterns
Strategy: validation
Validate before calling
import platform
if platform.system() not in ("Linux", "Darwin", "Windows"):
raise SystemExit(f"lua-language-server auto-install supports Linux/macOS/Windows only; got {platform.system()}. Use a Linux container.") Try / catch
try:
server = create_lua_server()
except RuntimeError as e:
if "Unsupported operating system" in str(e):
run_in_linux_container()
else:
raise Prevention
- Run multilspy workloads inside a Linux Docker container on BSD/Solaris hosts
- Gate OS-specific tests with platform checks in CI
- Pre-provision binaries manually for exotic OSes
- Prefer managed linux CI runners
When it happens
Trigger: Running _setup_runtime_dependency (via _download_lua_ls) on BSD variants, Solaris/illumos, or other exotic POSIX systems where platform.system() is not Linux/Darwin/Windows.
Common situations: FreeBSD servers or CI, NixOS-derived containers reporting unusual system strings (rare), Solaris heritage systems, custom OS builds used in embedded appliances.
Related errors
- Unsupported Linux architecture: {machine}
- Unsupported operating system: {system}
- Unsupported macOS architecture: {machine}
- Unsupported Windows architecture: {machine}
- Unsupported Linux architecture: {machine}. luau-lsp only pro
AI-assisted analysis of oraios/serena@7fcbca7e62 (2026-08-29).
Data as JSON: /api/errors/7b93d699615e19c8.
Report an issue: GitHub.