Hmbown/CodeWhale · info · Error
Usage: node scripts/release/assemble-release-assets.js INP
Error message
Usage: node scripts/release/assemble-release-assets.js INPUT_DIR OUTPUT_DIR node scripts/release/assemble-release-assets.js --verify ASSET_DIR
What it means
CLI usage guard in main(): the script was started with --verify as the first argument but the total argv length is not exactly 4, i.e. the asset directory argument is missing or extra arguments were passed. The two supported invocation forms are printed and the top-level handler exits 1 with 'Release asset assembly failed: ...'.
Source
Thrown at scripts/release/assemble-release-assets.js:171
);
const checksumRows = [];
for (const name of [...checksummedReleaseAssetNames()].sort()) {
checksumRows.push(`${await sha256(path.join(outputDirectory, name))} ${name}`);
}
await fs.writeFile(
path.join(outputDirectory, CHECKSUM_MANIFEST),
`${checksumRows.join("\n")}\n`,
"utf8",
);
await verifyAssetDirectory(outputDirectory);
}
async function main() {
if (process.argv[2] === "--verify") {
if (process.argv.length !== 4) {
throw new Error(usage());
}
await verifyAssetDirectory(path.resolve(process.argv[3]));
return;
}
if (process.argv.length !== 4) {
throw new Error(usage());
}
await assemble(path.resolve(process.argv[2]), path.resolve(process.argv[3]));
}
if (require.main === module) {
main().catch((error) => {
console.error(`Release asset assembly failed: ${error.message}`);
process.exit(1);
});
}
module.exports = {View on GitHub (pinned to 8880682c63)
Solutions
- Invoke exactly: node scripts/release/assemble-release-assets.js --verify ASSET_DIR
- If wrapping the script, pass arguments as an array (execFile-style) to avoid quoting surprises
Example fix
# before node scripts/release/assemble-release-assets.js --verify # after node scripts/release/assemble-release-assets.js --verify ./release-out
Defensive patterns
Strategy: validation
Validate before calling
#!/usr/bin/env bash if [ "$#" -ne 2 ] || [ "$1" != "--verify" ]; then echo "usage: $0 --verify ASSET_DIR" >&2; exit 2; fi exec node scripts/release/assemble-release-assets.js "$1" "$2"
Prevention
- Wrap the script in your own entry point that checks argument count before delegating
- Invoke with execFile-style argument arrays to avoid shell quoting shifting positions
When it happens
Trigger: node scripts/release/assemble-release-assets.js --verify (directory omitted); --verify DIR extra-arg (length 5); --verify given as the third positional after something else.
Common situations: Copy-pasting the command without substituting the placeholder; scripts appending default flags the tool does not parse; invoking with extra quoting that shifts argv positions.
Related errors
- Usage: node scripts/release/ensure-release-assets-absent.js
- Invalid GitHub repository: ${repo}
- Invalid release tag: ${tag}
- Could not inspect GitHub Release ${tag}: ${detail}
- GitHub Release ${tag} returned invalid JSON: ${error.message
AI-assisted analysis of Hmbown/CodeWhale@8880682c63 (2026-08-16).
Data as JSON: /api/errors/b0aba612387eb3f2.
Report an issue: GitHub.