cube-js/cube · error

There are no artifacts for Cube Store v${version}. Most prob

Error message

There are no artifacts for Cube Store v${version}. Most probably it is still building. Please try again later.

What it means

This error is thrown by downloadBinaryFromRelease in the Cube Store JS wrapper when the GitHub release for the requested Cube Store version exists but contains zero build artifacts. It means the CI pipeline that publishes prebuilt cubestored binaries has not finished (or failed), so there is nothing to download. The wrapper throws instead of failing with a confusing HTTP 404 so users know the situation is likely temporary.

Source

Thrown at rust/cubestore/js-wrapper/src/download.ts:54

export async function downloadBinaryFromRelease() {
  // eslint-disable-next-line global-require
  const { version } = require('../../package.json');
  const cubestorePath = getCubeStorePath();
  const currentTarget = getTarget();

  const url = `https://github.com/cube-js/cube.js/releases/download/v${version}/cubestored-${currentTarget}.tar.gz`;

  try {
    await downloadAndExtractFile(url, {
      cwd: cubestorePath,
      showProgress: true,
    });
  } catch (e: any) {
    if (e.toString().includes('Not Found')) {
      const release = await fetchRelease(version);
      if (release) {
        if (release.assets.length === 0) {
          throw new Error(
            `There are no artifacts for Cube Store v${version}. Most probably it is still building. Please try again later.`
          );
        }

        throw new Error(
          `Cube Store v${version} Artifact for ${currentTarget} doesn't exist. Most probably it is still building. Please try again later.`
        );
      } else {
        throw new Error(
          `Unable to find Cube Store release v${version}. Most probably it was removed.`
        );
      }
    } else {
      throw e;
    }
  }
}

View on GitHub (pinned to 7d981676b3)

Solutions

  1. Wait for the Cube Store release artifacts to finish building (check the cube.js GitHub release assets on https://github.com/cube-js/cube.js/releases), then retry the install/start.
  2. Retry later — the message is explicitly transient; re-run yarn install or restart the Cube process once builds complete.
  3. Pin/downgrade to the previous stable cube.js version whose Cube Store binaries are fully published.
  4. Build Cube Store from source (cargo build --release in rust/cubestore) and place the binary at the expected downloaded/latest/bin path.
  5. If authenticated requests are being rate-limited or assets are delayed, set CUBEJS_GH_API_TOKEN when polling the release metadata (this affects fetchRelease, not artifact availability).

Example fix

// before: fail hard on first attempt during startup
await downloadBinaryFromRelease();
// after: retry a few times for in-flight release builds
for (let i = 0; i < 3; i++) {
  try { await downloadBinaryFromRelease(); break; }
  catch (e) {
    if (!String(e).includes('no artifacts') || i === 2) throw e;
    await new Promise(r => setTimeout(r, 60000));
  }
}
Defensive patterns

Strategy: retry

Validate before calling

import { Octokit } from '@octokit/core';
const { data } = await new Octokit().request('GET /repos/{owner}/{repo}/releases/tags/{tag}', { owner: 'cube-js', repo: 'cube.js', tag: 'v' + cubejsVersion });
if (!data || data.assets.length === 0) {
  throw new Error('Release artifacts not published yet — postpone install/start.');
}

Type guard

function hasReleaseAssets(release: unknown): release is { assets: { name: string }[] } {
  return !!release && typeof release === 'object' && Array.isArray((release as any).assets) && (release as any).assets.length > 0;
}

Try / catch

try {
  await startCubeStore();
} catch (e) {
  if (/no artifacts for Cube Store/.test(String(e))) {
    await waitForReleaseAssets(); // retry with backoff
  } else { throw e; }
}

Prevention

When it happens

Trigger: getBinary() calls downloadBinaryFromRelease() because the local cubestored binary is missing; downloadAndExtractFile() on the release asset URL fails with 'Not Found'; fetchRelease() successfully finds the GitHub release tag v${version}, but release.assets.length === 0, i.e. the release exists with no attached cubestored-<target>.tar.gz files.

Common situations: Installing or starting Cube immediately after a new cube.js version is published, before native binary CI builds complete; a CI artifact upload job failed for the release; running in environments where the release was cut without any assets; pinning a version whose builds were aborted.

Related errors


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