cube-js/cube · error

the latest release has no binary for this platform ({}-{});

Error message

the latest release has no binary for this platform ({}-{}); it may still be building — try again in a few minutes

What it means

`cube update` fetches the latest CLI release and looks for an asset matching the current OS/architecture (e.g. linux-x86_64). If the release exists but has no binary asset for this platform, the CLI bails with this message, noting the asset may not be uploaded yet.

Source

Thrown at rust/cube-cli/src/commands/update.rs:39

    let release = update::latest_release(&http).await?;
    let latest = release.version();

    if !is_newer(latest, CURRENT_VERSION) {
        output::success(&format!(
            "Cube CLI {CURRENT_VERSION} is up to date (latest release: {latest})"
        ));
        return Ok(());
    }
    println!("Current version: {CURRENT_VERSION}");
    println!("Latest release:  {}", latest.bold().green());
    if args.check {
        println!("Run {} to install it.", "cube update".bold().cyan());
        return Ok(());
    }

    let Some(asset) = release.asset_for_this_platform() else {
        bail!(
            "the latest release has no binary for this platform ({}-{}); \
             it may still be building — try again in a few minutes",
            std::env::consts::OS,
            std::env::consts::ARCH
        );
    };

    eprintln!("Downloading {}…", asset.name);
    let bytes = http
        .get(&asset.browser_download_url)
        .send()
        .await?
        .error_for_status()
        .context("download failed")?
        .bytes()
        .await?;

    let new_binary = extract_binary(&bytes)?;

View on GitHub (pinned to 7d981676b3)

Solutions

  1. Wait a few minutes and re-run `cube update`
  2. Check the release page on GitHub for available assets for your platform
  3. Install via an alternative channel (package manager or build from source) if your platform isn't supported
Defensive patterns

Strategy: retry

Validate before calling

// check assets before updating
const rel = await fetch(RELEASE_API).then(r => r.json());
const want = `${os()}-${arch()}`;
if (!rel.assets.some(a => a.name.includes(want))) console.warn("asset not yet published");

Try / catch

try {
  run("cube update");
} catch (e) {
  if (String(e).includes("no binary for this platform")) {
    await sleep(5 * 60_000); run("cube update");
  } else throw e;
}

Prevention

When it happens

Trigger: Running `cube update` immediately after a new release is published, before platform binaries finish uploading; running on an OS/arch the project doesn't publish binaries for (e.g. linux-aarch64, freebsd).

Common situations: CI runners on less common architectures; using the CLI right at release time;musl/alpine or ARM environments lacking published assets.

Related errors


AI-assisted analysis of cube-js/cube@7d981676b3 (2026-09-02). Data as JSON: /api/errors/632f139b506eef99. Report an issue: GitHub.