tinyhumansai/openhuman · error

invalid runtime_python.maximum_version `{maximum_version}`

Error message

invalid runtime_python.maximum_version `{maximum_version}`

What it means

select_distribution found runtime_python.maximum_version non-empty but unparseable. Empty string is the sanctioned way to disable the upper bound; anything else must parse, so a typo here is surfaced rather than silently ignored.

Source

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

        .with_context(|| format!("decoding release metadata from {url}"))
}

pub fn select_distribution(
    release: &GithubRelease,
    minimum_version: &str,
    maximum_version: &str,
) -> Result<PythonDistribution> {
    let Some(minimum) = parse_python_version(minimum_version) else {
        bail!("invalid runtime_python.minimum_version `{minimum_version}`");
    };
    // Empty string disables the upper bound. A non-empty but unparseable value
    // is a config error worth surfacing rather than silently ignoring.
    let maximum = if maximum_version.trim().is_empty() {
        None
    } else {
        match parse_python_version(maximum_version) {
            Some(v) => Some(v),
            None => bail!("invalid runtime_python.maximum_version `{maximum_version}`"),
        }
    };
    let target_suffix = host_asset_suffix()?;

    let mut candidates = release
        .assets
        .iter()
        .filter_map(|asset| parse_distribution_asset(asset, &release.tag_name))
        .filter(|dist| asset_matches_target(&dist.asset_name, target_suffix))
        .filter(|dist| dist.version >= minimum)
        // Exclusive upper bound — keeps selection off newer pre-release series
        // (e.g. 3.15.x betas, which parse as a bare `3.15.0`).
        .filter(|dist| maximum.as_ref().is_none_or(|max| dist.version < *max))
        .collect::<Vec<_>>();

    if candidates.is_empty() {
        bail!(
            "no managed python-build-standalone asset found for host suffix `{target_suffix}` with version >= {}{} in release {}",

View on GitHub (pinned to 7491200858)

Solutions

  1. Set maximum_version to a valid version (e.g. "3.13") or to an empty string to disable the bound
  2. Fix the typo in the [runtime_python] config block
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at src/openhuman/runtime/python/downloader.rs:96 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/eeea11772b0b5720. Report an issue: GitHub.