tinyhumansai/openhuman · error

no managed standalone Python distribution for host {os}/{arc

Error message

no managed standalone Python distribution for host {os}/{arch}

What it means

Thrown by host_asset_suffix() in the managed-Python downloader when the running (OS, CPU arch) pair has no matching python-build-standalone asset in its lookup table. The table only covers macos/aarch64, macos/x86_64, linux/aarch64 and linux/x86_64 (gnu); other hosts — Windows, freebsd, linux/musl targets like aarch64 or i686, riscv, etc. — are simply unsupported for the managed download path. This is a generic platform guard: the faulty input is the host triple itself, not user input.

Source

Thrown at src/openhuman/runtime/python/downloader.rs:180

        release_tag: release_tag.to_string(),
        asset_name: asset.name.clone(),
        url: asset.browser_download_url.clone(),
        version,
        expected_sha256,
    })
}

fn host_asset_suffix() -> Result<&'static str> {
    let os = std::env::consts::OS;
    let arch = std::env::consts::ARCH;
    match (os, arch) {
        ("macos", "aarch64") => Ok("aarch64-apple-darwin-install_only.tar.gz"),
        ("macos", "x86_64") => Ok("x86_64-apple-darwin-install_only.tar.gz"),
        ("linux", "aarch64") => Ok("aarch64-unknown-linux-gnu-install_only.tar.gz"),
        ("linux", "x86_64") => Ok("x86_64-unknown-linux-gnu-install_only.tar.gz"),
        ("windows", "aarch64") => Ok("aarch64-pc-windows-msvc-install_only.tar.gz"),
        ("windows", "x86_64") => Ok("x86_64-pc-windows-msvc-install_only.tar.gz"),
        _ => Err(anyhow!(
            "no managed standalone Python distribution for host {os}/{arch}"
        )),
    }
}

fn asset_matches_target(asset_name: &str, target_suffix: &str) -> bool {
    asset_name.ends_with(target_suffix)
        || asset_name.ends_with(
            &target_suffix.replace("-install_only.tar.gz", "-install_only_stripped.tar.gz"),
        )
}

pub async fn download_distribution(
    client: &Client,
    dist: &PythonDistribution,
    target_path: &Path,
) -> Result<()> {
    tracing::info!(

View on GitHub (pinned to 7491200858)

Solutions

  1. Install Python via the system package manager or pyenv and point the runtime at it instead of the managed download.
  2. Check whether upstream python-build-standalone publishes an asset for this triple and add the mapping to host_asset_suffix().
  3. Skip managed-runtime provisioning gracefully on unsupported platforms and surface a clear setup message.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/runtime/python/downloader.rs:180 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/a0206eb9b740e30c. Report an issue: GitHub.