SeleniumHQ/selenium · critical · WebDriverException
Unsupported platform/architecture combination: {sys.platform
Error message
Unsupported platform/architecture combination: {sys.platform}/{arch} What it means
Raised by SeleniumManager._get_binary() when the running OS/architecture pair is not in the hardcoded 'allowed' table of bundled Selenium Manager binaries. The table only covers darwin (any arch), win32/cygwin (x86_64), and linux/freebsd/openbsd (x86_64). The library cannot locate a manager binary for any other combination and has no fallback, so driver auto-management fails before any browser launches.
Source
Thrown at py/selenium/webdriver/common/selenium_manager.py:117
# some operating systems report x86-64 architecture as amd64/AMD64
platform_name = sys.platform
arch = "any" if platform_name == "darwin" else platform.machine().lower()
arch = "x86_64" if arch == "amd64" else arch
# in Python < 3.14, sys.platform appends version number to BSD platform names
if platform_name.startswith("freebsd"):
logger.warning(
"Selenium Manager binary may not be compatible with FreeBSD; you may need to run "
"'brandelf -t linux' on it and load linux64.ko"
)
platform_name = "freebsd"
elif platform_name.startswith("openbsd"):
logger.warning("Selenium Manager binary may not be compatible with OpenBSD; verify settings")
platform_name = "openbsd"
location = allowed.get((platform_name, arch))
if location is None:
raise WebDriverException(f"Unsupported platform/architecture combination: {sys.platform}/{arch}")
path = Path(__file__).parent.joinpath(location)
if path is None or not path.is_file():
raise WebDriverException(f"Unable to obtain working Selenium Manager binary; {path}")
logger.debug(f"Selenium Manager binary found at: {path}")
return path
@staticmethod
def _run(args: list[str]) -> dict:
"""Executes the Selenium Manager Binary.
Args:
args: the components of the command being executed.
Returns:View on GitHub (pinned to aa36b38e69)
Solutions
- Set SE_MANAGER_PATH to an absolute path of a selenium-manager binary you compiled or downloaded for your platform: export SE_MANAGER_PATH=/usr/local/bin/selenium-manager
- Build the Rust selenium-manager binary from source (see rust/ directory) targeting your platform and let it be found via the compiled_path check.
- Run on a supported x86_64/amd64 or darwin host, or use an x86_64 Docker image.
- If on darwin, confirm platform.machine() is not empty; darwin uses arch 'any' so any Apple Silicon Mac works once sys.platform is 'darwin'.
Example fix
// before (running on linux aarch64 with no env var) // -> WebDriverException: Unsupported platform/architecture combination: linux/aarch64 # after — point to a prebuilt/compiled binary export SE_MANAGER_PATH=/opt/selenium-manager/selenium-manager
Defensive patterns
Strategy: validation
Validate before calling
import sys, platform
_SUPPORTED = {('darwin','any'),('win32','x86_64'),('cygwin','x86_64'),('linux','x86_64'),('freebsd','x86_64'),('openbsd','x86_64')}
name = sys.platform
arch = 'any' if name == 'darwin' else platform.machine().lower()
arch = 'x86_64' if arch == 'amd64' else arch
if name.startswith('freebsd'): name = 'freebsd'
elif name.startswith('openbsd'): name = 'openbsd'
if (name, arch) not in _SUPPORTED and not os.getenv('SE_MANAGER_PATH'):
raise SystemExit('Set SE_MANAGER_PATH to a selenium-manager binary for this platform') Type guard
null
Try / catch
from selenium.common.exceptions import WebDriverException
try:
driver = webdriver.Chrome()
except WebDriverException as e:
if 'Unsupported platform/architecture' in str(e):
# set SE_MANAGER_PATH or build the binary
... Prevention
- Pin SE_MANAGER_PATH in CI to a known-good binary for your runner architecture.
- Document supported platforms in your deployment runbook.
- Run CI on the same architecture as production.
When it happens
Trigger: Running on an unsupported platform such as Linux aarch64/arm64, Windows ARM64, or any non-x86_64 Linux/BSD. The error fires only when neither the SE_MANAGER_PATH env var nor a compiled local binary is present, forcing the code into the allowed-dict lookup at selenium_manager.py:115.
Common situations: CI on ARM64 GitHub Actions runners or Apple Silicon under Rosetta-less Python, Docker images built on arm64v8 base images, Raspberry Pi, and any corporate-locked Windows ARM device. Also triggered after a partial/corrupt pip install that omits the platform subfolder.
Related errors
- Unable to obtain browser driver. For more informatio
- Error executing command for ${smBinary} with ${args}: ${erro
- Linux arm64 is not supported yet by Google Chrome. Please tr
- Linux arm64 is not supported yet by {}. Please try another b
- Linux arm64 is not supported yet by Microsoft Edge. Please t
AI-assisted analysis of SeleniumHQ/selenium@aa36b38e69 (2026-08-14).
Data as JSON: /api/errors/dbb2dfd18b21ac4a.
Report an issue: GitHub.