cube-js/cube · error

Cube Store v${version} Artifact for ${currentTarget} doesn't

Error message

Cube Store v${version} Artifact for ${currentTarget} doesn't exist. Most probably it is still building. Please try again later.

What it means

Thrown by downloadBinaryFromRelease when the cube.js GitHub release for version ${version} exists and has assets, but none matches the current platform target triple (${currentTarget}, e.g. x86_64-unknown-linux-gnu). The asset download 404'd, the release lookup succeeded, and assets exist — so this specific platform's binary is absent. It typically means the build for your OS/architecture is still in progress or was skipped/failed.

Source

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

  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 and retry later — the target build may still be running in CI; re-run after some minutes/hours.
  2. Check the release page assets list to confirm whether cubestored-${currentTarget}.tar.gz exists or failed to upload.
  3. Use a platform with published artifacts (x64 or arm64 on linux-gnu/darwin/win32 as enumerated in isCubeStoreSupported).
  4. Pin the previous cube.js version whose binary for your target exists.
  5. Build Cube Store from source with cargo and place the executable at getCubeStorePath()/bin/cubestored.

Example fix

// before
const currentTarget = getTarget();
// after: verify support before attempting download
import { isCubeStoreSupported } from './utils';
if (!isCubeStoreSupported()) {
  console.warn('No prebuilt Cube Store binary for this platform; build from source or use Docker.');
}
Defensive patterns

Strategy: validation

Validate before calling

import { isCubeStoreSupported } from '@cubejs-backend/cubestool/dist/utils';
import process from 'process';
if (!isCubeStoreSupported()) {
  throw new Error(`No prebuilt Cube Store for ${process.platform}/${process.arch}; configure an external Cube Store or use Docker.`);
}

Type guard

function isSupportedTarget(platform: string, arch: string): boolean {
  return (arch === 'x64' && ['win32','linux','darwin'].includes(platform)) ||
         (arch === 'arm64' && (platform === 'darwin' || platform === 'linux'));
}

Try / catch

try {
  await cubeStoreHandler.acquire();
} catch (e) {
  if (/Artifact for .* doesn't exist/.test(String(e))) {
    await fallbackToExternalCubeStore();
  } else { throw e; }
}

Prevention

When it happens

Trigger: getBinary() -> downloadBinaryFromRelease() when the local binary is missing; the tar.gz URL https://github.com/cube-js/cube.js/releases/download/v${version}/cubestored-${currentTarget}.tar.gz returns 'Not Found'; fetchRelease() finds the release with release.assets.length > 0, so the wrapper concludes only this target's artifact is missing.

Common situations: Running on an unusual/less-common platform combination (e.g. Linux musl, FreeBSD, x86 Windows on ARM emulation) where artifacts are published last or never; starting Cube right after a release when platform-specific CI jobs are staggered; a failed build job for one target while others uploaded fine.

Related errors


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