CloakHQ/CloakBrowser · error · RuntimeError

Unsupported platform: {system} {machine}. Supported: {suppor

Error message

Unsupported platform: {system} {machine}. Supported: {supported list}

What it means

get_platform_tag maps (platform.system(), platform.machine()) to a supported download tag. On an OS/arch combo absent from SUPPORTED_PLATFORMS (e.g. Windows, Linux arm64, FreeBSD), binary download paths raise RuntimeError listing supported platforms.

Source

Thrown at cloakbrowser/config.py:150

            "Invalid browser version pin. Use a full numeric Chromium version, "
            "e.g. '148.0.7778.215.2'."
        )
    return normalized


def get_chromium_version() -> str:
    """Return the Chromium version for the current platform."""
    tag = get_platform_tag()
    return PLATFORM_CHROMIUM_VERSIONS.get(tag, CHROMIUM_VERSION)


def get_platform_tag() -> str:
    """Return the platform tag for binary download (e.g. 'linux-x64', 'darwin-arm64')."""
    system = platform.system()
    machine = platform.machine()
    tag = SUPPORTED_PLATFORMS.get((system, machine))
    if tag is None:
        raise RuntimeError(
            f"Unsupported platform: {system} {machine}. "
            f"Supported: {', '.join(f'{s}-{m}' for (s, m) in SUPPORTED_PLATFORMS)}"
        )
    return tag


# ---------------------------------------------------------------------------
# Binary cache paths
# ---------------------------------------------------------------------------
def get_cache_dir() -> Path:
    """Return the cache directory for downloaded binaries.

    Override with CLOAKBROWSER_CACHE_DIR env var.
    Default: ~/.cloakbrowser/
    """
    custom = os.environ.get("CLOAKBROWSER_CACHE_DIR")
    if custom:
        return Path(custom)

View on GitHub (pinned to d6bad5de26)

Solutions

  1. Run inside a supported Linux x64/arm64 or macOS Intel/ARM environment (Docker helps)
  2. Use CLOAKBROWSER_BINARY_PATH to point at a manually provisioned compatible binary if one exists for your platform
  3. Check SUPPORTED_PLATFORMS in config.py for the current list
Defensive patterns

Strategy: validation

Validate before calling

import platform
from cloakbrowser.config import SUPPORTED_PLATFORMS

def platform_ok() -> bool:
    return (platform.system(), platform.machine()) in SUPPORTED_PLATFORMS

Type guard

def supports_cloakbrowser() -> bool:
    import platform
    from cloakbrowser.config import SUPPORTED_PLATFORMS
    return (platform.system(), platform.machine()) in SUPPORTED_PLATFORMS

Try / catch

try:
    ensure_binary()
except RuntimeError as e:
    if "Unsupported platform" in str(e):
        run_in_docker_linux_x64()  # container fallback
    else:
        raise

Prevention

When it happens

Trigger: Running ensure_binary/binary_info/launch on an unsupported platform such as Windows x64 or Linux aarch64; also triggered by diagnostic collection.

Common situations: Trying to run the library on Windows (which is unsupported for the custom Chromium builds); unusual architectures (riscv, s390x); FreeBSD containers.

Related errors


AI-assisted analysis of CloakHQ/CloakBrowser@d6bad5de26 (2026-08-28). Data as JSON: /api/errors/7cbfe632903140d9. Report an issue: GitHub.