FuelLabs/fuels-ts · error · Error

Version '${fuelCoreVersion}' not found\n at ${pkgUrl}

Error message

Version '${fuelCoreVersion}' not found\n    at ${pkgUrl}

What it means

Thrown by the fuel-core binary install script when the body fetched from `https://github.com/FuelLabs/fuel-core/releases/download/v<version>/<pkg>` contains 'not found' (GitHub's 404 body). The `fuelCoreVersion` is read from `internal/fuel-core/VERSION`. Mirrors the forc installer's check and runs during the fuel-core postinstall.

Source

Thrown at internal/fuel-core/lib/install.js:64

    versionMatches = binVersion === fuelCoreVersion;
    info({
      expected: fuelCoreVersion,
      received: binVersion,
      isGitBranch: isGitBranch(fuelCoreVersion),
    });
  }

  if (versionMatches) {
    info(`fuel-core binary already installed, skipping.`);
  } else {
    // Empty the `fuel-core-binaries` directory if it exists
    rmSync(binDir, { recursive: true, force: true });

    // Download
    const buf = await fetch(pkgUrl).then((r) => r.buffer());

    if (/not found/i.test(buf.toString())) {
      throw new Error(`Version '${fuelCoreVersion}' not found\n    at ${pkgUrl}`);
    }

    writeFileSync(pkgPath, buf);

    // Extract
    spawnSync('tar', ['xzf', pkgPath, '-C', rootDir]);

    // Take the contents of the directory containing the extracted
    // binaries and move them to the `fuel-core-binaries` directory
    renameSync(`${fileName}`, binDir);
    cpSync(versionFilePath, binVersionPath);

    // Cleanup
    rmSync(fileName, {
      recursive: true,
      force: true,
    });
    rmSync(pkgPath);

View on GitHub (pinned to b3f37c91ac)

Solutions

  1. Verify `internal/fuel-core/VERSION` and confirm the `fuel-core-<version>-<platform>.tar.gz` asset exists at the corresponding GitHub release page.
  2. Bump or downgrade fuels to a release whose pinned fuel-core version ships assets for your platform.
  3. Switch VERSION to `git:<branch>` to build fuel-core from source via `buildFromGitBranch`.
  4. Route the install through a proxy/mirror that can actually reach GitHub release assets and returns the real tarball bytes.

Example fix

// before: internal/fuel-core/VERSION
0.40.0
// after: pin to a tag with the asset, or build from source
git:master
Defensive patterns

Strategy: validation

Validate before calling

import { getCurrentVersion, getPkgPlatform } from './shared.js';
const version = getCurrentVersion().trim();
const platform = getPkgPlatform();
const url = `https://github.com/FuelLabs/fuel-core/releases/download/v${version}/fuel-core-${version}-${platform}.tar.gz`;
const ok = await fetch(url, { method: 'HEAD' }).then((r) => r.status === 200);
if (!ok) throw new Error(`fuel-core ${version} asset not found at ${url}`);

Try / catch

try {
  // run the installer
} catch (e) {
  if (/Version '.*' not found/.test(e.message)) {
    console.error('Pinned fuel-core version has no GitHub release asset for this platform. Edit internal/fuel-core/VERSION or build via git:<branch>.');
  }
  throw e;
}

Prevention

When it happens

Trigger: The `internal/fuel-core/VERSION` pin references a fuel-core tag that lacks a `fuel-core-<version>-<platform>.tar.gz` asset; a fork pinned an unreleased version; a proxy returns a 404 HTML page that satisfies the `/not found/i` test.

Common situations: Upgrading fuels to a commit whose VERSION references an unreleased fuel-core; platform asset missing for `aarch64-unknown-linux-gnu`; transient GitHub release/publishing delay right after a tag.

Related errors


AI-assisted analysis of FuelLabs/fuels-ts@b3f37c91ac (2026-08-12). Data as JSON: /api/errors/446b30ab4b54ef7b. Report an issue: GitHub.