FuelLabs/fuels-ts · error · Error
Version '${forcVersion}' not found\n at ${pkgUrl}
Error message
Version '${forcVersion}' not found\n at ${pkgUrl} What it means
Thrown by the forc binary install script when the downloaded body from the GitHub release URL (`https://github.com/FuelLabs/sway/releases/download/v<version>/...`) contains the text 'not found', which is how GitHub responds to a 404 for a missing release asset. The `forcVersion` is read from `internal/forc/VERSION`. This runs during the package's postinstall step, so it blocks local setup of the forc toolchain.
Source
Thrown at internal/forc/lib/install.js:62
const binVersion = readFileSync(binVersionPath, 'utf8').trim();
versionMatches = binVersion === forcVersion;
info({
expected: forcVersion,
received: binVersion,
isGitBranch: isGitBranch(forcVersion),
});
}
if (versionMatches) {
info(`Forc binary already installed, skipping.`);
} else {
const stdioOpts = { stdio: 'inherit' };
// Otherwise, download
const buf = await fetch(pkgUrl).then((r) => r.buffer());
if (/not found/i.test(buf.toString())) {
throw new Error(`Version '${forcVersion}' not found\n at ${pkgUrl}`);
}
writeFileSync(pkgPath, buf);
// Extract
execSync(`tar xzf "${pkgPath}" -C "${rootDir}"`, stdioOpts);
cpSync(versionFilePath, binVersionPath);
// Cleanup
rmSync(pkgPath);
}
})().catch((e) => error(e));
View on GitHub (pinned to b3f37c91ac)
Solutions
- Open `internal/forc/VERSION`, read the pinned version, and confirm a matching `forc-binaries-<platform>.tar.gz` asset exists at `https://github.com/FuelLabs/sway/releases/tag/v<version>`.
- Bump or downgrade fuels to a release whose pinned forc version has assets for your platform.
- Replace the VERSION contents with a `git:<branch>` string to build forc from source instead of downloading (see `isGitBranch` / `buildFromGitBranch` in shared.js).
- If behind a proxy, unset it or point `npm_config_https_proxy` at one that can reach GitHub raw release assets.
Example fix
// before: internal/forc/VERSION 0.66.3 // after: pin to a tag that has the asset for your platform, OR build from source git:master
Defensive patterns
Strategy: validation
Validate before calling
// before triggering the install, verify the release asset exists
import { getCurrentVersion, getPkgPlatform } from './shared.js';
const version = getCurrentVersion().trim();
const platform = getPkgPlatform(); // throws early if unsupported
const url = `https://github.com/FuelLabs/sway/releases/download/v${version}/forc-binaries-${platform}.tar.gz`;
const ok = await fetch(url, { method: 'HEAD' }).then((r) => r.status === 200);
if (!ok) throw new Error(`Forc ${version} asset not found at ${url}`); Try / catch
try {
// run the installer
} catch (e) {
if (/Version '.*' not found/.test(e.message)) {
console.error('Pinned forc version has no GitHub release asset for this platform. Edit internal/forc/VERSION or build from source via git:<branch>.');
}
throw e;
} Prevention
- Pin `internal/forc/VERSION` only to sway tags that publish assets for all of linux/darwin × arm64/x64.
- In CI, add a pre-check that HEADs the release URL before running install.
- Use `git:<branch>` in VERSION to skip the download path entirely when iterating.
When it happens
Trigger: The `internal/forc/VERSION` file points at a sway release tag that has no published binary asset for the current platform (e.g. `darwin_arm64`); a downstream fork pinned a version that FuelLabs never released; a corporate proxy/mirror serves an HTML 'not found' page in place of the tarball.
Common situations: Upgrading fuels to a commit whose VERSION references an unreleased forc; running on linux_arm64 when that asset was not uploaded for the tag; a transient GitHub outage returning a 404 HTML body that matches `/not found/i`.
Related errors
- Version '${fuelCoreVersion}' not found\n at ${pkgUrl}
- Unsupported platform ${process.platform}.${process.platform
- Unsupported arch ${process.arch}
- Unsupported platform ${process.platform}.${process.platform
- Unsupported arch ${process.arch}
AI-assisted analysis of FuelLabs/fuels-ts@b3f37c91ac (2026-08-12).
Data as JSON: /api/errors/1a88029bdcf7440d.
Report an issue: GitHub.