{"record":{"id":"b45ba9de058ac78c","repo":"oraios/serena","slug":"unsupported-linux-architecture-machine","errorCode":null,"errorMessage":"Unsupported Linux architecture: {machine}","messagePattern":"Unsupported Linux architecture: (.+?)","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"src/solidlsp/language_servers/lua_ls.py","lineNumber":133,"sourceCode":"\n        return None\n\n    @staticmethod\n    def _download_lua_ls(solidlsp_settings: SolidLSPSettings) -> str:\n        \"\"\"Download and install lua-language-server if not present.\"\"\"\n        lua_settings = solidlsp_settings.get_ls_specific_settings(LanguageServerId.LUA)\n        lua_ls_version = lua_settings.get(\"lua_language_server_version\", DEFAULT_LUA_LS_VERSION)\n        system = platform.system()\n        machine = platform.machine().lower()\n\n        # Map platform and architecture to download URL\n        if system == \"Linux\":\n            if machine in [\"x86_64\", \"amd64\"]:\n                download_name = f\"lua-language-server-{lua_ls_version}-linux-x64.tar.gz\"\n            elif machine in [\"aarch64\", \"arm64\"]:\n                download_name = f\"lua-language-server-{lua_ls_version}-linux-arm64.tar.gz\"\n            else:\n                raise RuntimeError(f\"Unsupported Linux architecture: {machine}\")\n        elif system == \"Darwin\":\n            if machine in [\"x86_64\", \"amd64\"]:\n                download_name = f\"lua-language-server-{lua_ls_version}-darwin-x64.tar.gz\"\n            elif machine in [\"arm64\", \"aarch64\"]:\n                download_name = f\"lua-language-server-{lua_ls_version}-darwin-arm64.tar.gz\"\n            else:\n                raise RuntimeError(f\"Unsupported macOS architecture: {machine}\")\n        elif system == \"Windows\":\n            if machine in [\"amd64\", \"x86_64\"]:\n                download_name = f\"lua-language-server-{lua_ls_version}-win32-x64.zip\"\n            else:\n                raise RuntimeError(f\"Unsupported Windows architecture: {machine}\")\n        else:\n            raise RuntimeError(f\"Unsupported operating system: {system}\")\n\n        download_url = f\"https://github.com/LuaLS/lua-language-server/releases/download/{lua_ls_version}/{download_name}\"\n\n        install_dir = _lua_ls_install_dir(LuaLanguageServer.ls_resources_dir(solidlsp_settings), lua_ls_version)","sourceCodeStart":115,"sourceCodeEnd":151,"githubUrl":"https://github.com/oraios/serena/blob/7fcbca7e62555ec2287ddb2f083caee805848ea6/src/solidlsp/language_servers/lua_ls.py#L115-L151","documentation":"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.","triggerScenarios":"Running _download_lua_ls (via _setup_runtime_dependency) on Linux with machine values like armv7l, i686/i386, riscv64, ppc64le, or s390x.","commonSituations":"Raspberry Pi on 32-bit Raspberry Pi OS (armv7l), older 32-bit x86 servers, Alpine/s390x mainframe CI, QEMU-emulated architectures in Docker builds.","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"],"exampleFix":"// before\nFROM --platform=linux/arm/v7 python:3.11  # armv7l -> unsupported\n// after\nFROM --platform=linux/arm64 python:3.11","handlingStrategy":"validation","validationCode":"import platform\nmachine = platform.machine().lower()\nif platform.system() == \"Linux\" and machine not in (\"x86_64\", \"amd64\", \"aarch64\", \"arm64\"):\n    raise SystemExit(f\"lua-language-server has no prebuilt binary for linux/{machine}; use amd64/arm64 or build from source\")","typeGuard":null,"tryCatchPattern":"try:\n    server = create_lua_server()\nexcept RuntimeError as e:\n    if \"Unsupported Linux architecture\" in str(e):\n        fallback_to_source_built_binary()  # point config at a locally built lua-language-server\n    else:\n        raise","preventionTips":["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"],"tags":["lua","architecture","unsupported-platform","installation"],"backgroundTag":"unsupported-architecture","analyzedSha":"7fcbca7e62555ec2287ddb2f083caee805848ea6","analyzedAt":"2026-08-29T00:04:09.619Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}