oraios/serena · error · RuntimeError

Unsupported Linux architecture: {machine}. luau-lsp only pro

Error message

Unsupported Linux architecture: {machine}. luau-lsp only provides linux-x86_64 and linux-arm64 binaries. Please build from source: https://github.com/JohnnyMorganz/luau-lsp

What it means

Raised when selecting the luau-lsp release asset on Linux with an architecture other than x86_64/amd64 or aarch64/arm64. luau-lsp upstream publishes only linux-x86_64 and linux-arm64 zips, so the library refuses to guess and points to build-from-source instructions.

Source

Thrown at src/solidlsp/language_servers/luau_lsp.py:230

        @staticmethod
        def _ensure_executable_bit(binary_path: Path) -> None:
            if platform.system() != "Windows":
                binary_path.chmod(0o755)

        @staticmethod
        def _get_binary_name() -> str:
            return "luau-lsp.exe" if platform.system() == "Windows" else "luau-lsp"

        @staticmethod
        def _get_luau_lsp_asset_name() -> str:
            system = platform.system()
            machine = platform.machine().lower()

            if system == "Linux":
                if machine in ["x86_64", "amd64"]:
                    return "luau-lsp-linux-x86_64.zip"
                if machine in ["aarch64", "arm64"]:
                    return "luau-lsp-linux-arm64.zip"
                raise RuntimeError(
                    f"Unsupported Linux architecture: {machine}. "
                    "luau-lsp only provides linux-x86_64 and linux-arm64 binaries. "
                    "Please build from source: https://github.com/JohnnyMorganz/luau-lsp"
                )
            if system == "Darwin":
                return "luau-lsp-macos.zip"
            if system == "Windows":
                return "luau-lsp-win64.zip"
            raise RuntimeError(f"Unsupported operating system: {system}")

    @staticmethod
    def _get_platform_type(custom_settings: SolidLSPSettings.CustomLSSettings) -> str:
        platform_type = custom_settings.get("platform", "roblox")
        if platform_type not in SUPPORTED_PLATFORMS:
            raise ValueError(f"Unsupported Luau platform: {platform_type}. Expected one of: {', '.join(sorted(SUPPORTED_PLATFORMS))}")
        return platform_type

View on GitHub (pinned to 7fcbca7e62)

Solutions

  1. Run on linux/amd64 or linux/arm64 (change Docker --platform or move to a 64-bit host/runner)
  2. Build luau-lsp from source per https://github.com/JohnnyMorganz/luau-lsp and install the binary so download is skipped
  3. Use QEMU user emulation to run an amd64 build of the whole stack on the exotic arch
  4. On 32-bit ARM hardware that supports it, switch to a 64-bit (arm64) OS

Example fix

// before
FROM --platform=linux/riscv64 python:3.11
// after
FROM --platform=linux/amd64 python:3.11  # + qemu-user if hosting on riscv64
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"luau-lsp provides only linux-x86_64/linux-arm64; got {machine}. Build from source: https://github.com/JohnnyMorganz/luau-lsp")

Try / catch

try:
    server = create_luau_server()
except RuntimeError as e:
    if "Unsupported Linux architecture" in str(e):
        use_source_built_luau_lsp()
    else:
        raise

Prevention

When it happens

Trigger: _get_luau_lsp_asset_name (called from _download_luau_lsp) running on Linux where platform.machine() returns armv7l, i686, riscv64, ppc64le, s390x, etc.

Common situations: 32-bit Raspberry Pi OS (armv7l), embedded ARM boards, riscv64 dev boards, s390x enterprise CI, multi-arch Docker builds targeting less common platforms.

Related errors


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