oraios/serena · error · RuntimeError
Unsupported Linux architecture: {machine}
Error message
Unsupported Linux architecture: {machine} What it means
Raised during lua-language-server download when platform.machine() reports a Linux architecture that has no prebuilt release asset (anything other than x86_64/amd64 or aarch64/arm64). The library only ships binaries for x64 and arm64 Linux.
Source
Thrown at src/solidlsp/language_servers/lua_ls.py:133
return None
@staticmethod
def _download_lua_ls(solidlsp_settings: SolidLSPSettings) -> str:
"""Download and install lua-language-server if not present."""
lua_settings = solidlsp_settings.get_ls_specific_settings(LanguageServerId.LUA)
lua_ls_version = lua_settings.get("lua_language_server_version", DEFAULT_LUA_LS_VERSION)
system = platform.system()
machine = platform.machine().lower()
# Map platform and architecture to download URL
if system == "Linux":
if machine in ["x86_64", "amd64"]:
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)View on GitHub (pinned to 7fcbca7e62)
Solutions
- Use a 64-bit x86_64 or arm64 Linux environment (rebuild container with --platform linux/amd64 or linux/arm64)
- Build lua-language-server from source (LuaLS/lua-language-server) and place the binary in the expected install_dir so the download step is skipped
- Install lua-language-server system-wide (e.g. via package manager) and point the server config at it
- On 32-bit ARM, install a 64-bit OS (Raspberry Pi OS arm64) if hardware supports it
Example fix
// before FROM --platform=linux/arm/v7 python:3.11 # armv7l -> unsupported // after FROM --platform=linux/arm64 python:3.11
Defensive patterns
Strategy: validation
Validate before calling
import platform
machine = platform.machine().lower()
if platform.system() == "Linux" and machine not in ("x86_64", "amd64", "aarch64", "arm64"):
raise SystemExit(f"lua-language-server has no prebuilt binary for linux/{machine}; use amd64/arm64 or build from source") Try / catch
try:
server = create_lua_server()
except RuntimeError as e:
if "Unsupported Linux architecture" in str(e):
fallback_to_source_built_binary() # point config at a locally built lua-language-server
else:
raise Prevention
- Pin Docker base images to linux/amd64 or linux/arm64
- Check `uname -m` in CI before enabling lua tests
- Pre-build lua-language-server for your arch and cache it in the image
- Avoid 32-bit OS installs on 64-bit-capable hardware
When it happens
Trigger: Running _download_lua_ls (via _setup_runtime_dependency) on Linux with machine values like armv7l, i686/i386, riscv64, ppc64le, or s390x.
Common situations: Raspberry Pi on 32-bit Raspberry Pi OS (armv7l), older 32-bit x86 servers, Alpine/s390x mainframe CI, QEMU-emulated architectures in Docker builds.
Related errors
- Unsupported macOS architecture: {machine}
- Unsupported Windows architecture: {machine}
- Unsupported operating system: {system}
- Unsupported Linux architecture: {machine}. luau-lsp only pro
- Unsupported operating system: {system}
AI-assisted analysis of oraios/serena@7fcbca7e62 (2026-08-29).
Data as JSON: /api/errors/b45ba9de058ac78c.
Report an issue: GitHub.