cube-js/cube · error

Unable to find Cube Store release v

Error message

Unable to find Cube Store release v${version}. Most probably it was removed.

What it means

Thrown by downloadBinaryFromRelease when the binary download 404'd and fetchRelease() returns no release (falsy) for tag v${version} in the cube-js/cube.js repo — meaning the GitHub release itself cannot be found, not just its assets. The library interprets this as the release having been deleted or not yet created.

Solutions

  1. Verify the exact version in node_modules/@cubejs-backend/cubestool (or rust/cubestore/js-wrapper)/package.json and confirm a matching tag exists at github.com/cube-js/cube.js/releases/tag/v${version}.
  2. Reinstall a published cube.js version so the wrapper version matches an existing release (e.g. yarn add @cubejs-backend/cubestool@<published-version>).
  3. If running from the monorepo/source, set CUBEJS_GH_API_TOKEN and ensure you are not on an unpublished dev version; build cubestored locally instead.
  4. Check whether the release was removed or re-tagged upstream and upgrade to a version that has a valid release.

Example fix

// before
"@cubejs-backend/cubestool": "0.35.0-beta.3"
// after: use a published version with a matching GitHub release
"@cubejs-backend/cubestool": "0.35.0"
Defensive patterns

Strategy: validation

Validate before calling

import { version } from '@cubejs-backend/cubestool/package.json';
const res = await fetch(`https://api.github.com/repos/cube-js/cube.js/releases/tags/v${version}`);
if (res.status === 404) {
  throw new Error(`Version ${version} has no GitHub release; use a published version.`);
}

Type guard

function releaseExists(res: { status: number }): boolean {
  return res.status === 200;
}

Try / catch

try {
  await cubeStoreHandler.acquire();
} catch (e) {
  if (/Unable to find Cube Store release/.test(String(e))) {
    throw new Error('Installed cubestool version has no matching release — reinstall a published version.');
  } else { throw e; }
}

Prevention

When it happens

Trigger: getBinary() -> downloadBinaryFromRelease() with the local cubestored missing; downloadAndExtractFile() fails with 'Not Found'; fetchRelease(version) returns undefined/null because GET /repos/cube-js/cube.js/releases/tags/v${version} found no release (404) — this can also happen if the API call fails in a way returning no release or a CUBEJS_GH_API_TOKEN-authenticated request hits an unexpected state.

Common situations: Installing a custom/patched version of @cubejs-backend/cubestool whose package version has no matching cube.js release tag; version skew where the js-wrapper package.json version predates or postdates the release tag; a release that was deleted/re-tagged; running a dev build of the monorepo where version in rust/cubestore/js-wrapper/package.json has no published GitHub release.

Related errors


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

Appendix: source

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

    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)