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

  1. Invoke exactly: node scripts/release/assemble-release-assets.js --verify ASSET_DIR
  2. 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

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


AI-assisted analysis of Hmbown/CodeWhale@8880682c63 (2026-08-16). Data as JSON: /api/errors/b0aba612387eb3f2. Report an issue: GitHub.