NousResearch/hermes-agent · error · Error

[stage-native-deps] get-windows has no win32 prebuilt bindin

Error message

[stage-native-deps] get-windows has no win32 prebuilt binding under lib/binding. Recover from the checkout root with:
  npm install-scripts approve get-windows
  npm rebuild get-windows

What it means

Error "[stage-native-deps] get-windows has no win32 prebuilt binding under lib/binding. Recover from the checkout root with: npm install-scripts approve get-windows npm rebuild get-windows" thrown in NousResearch/hermes-agent.

Source

Thrown at apps/desktop/scripts/stage-native-deps.mjs:501

            (dir) =>
              dir.includes(`-${platform}-`) &&
              existsSync(join(bindingRoot, dir, 'node-get-windows.node'))
          )
        : []
    let bindingDirs = scanBindingDirs()
    if (bindingDirs.length === 0 && typeof rebuild === 'function') {
      // A plain `npm install` won't re-run an install script for a package
      // that is already on disk, so every checkout that installed while
      // get-windows was missing from allowScripts stays bricked even after
      // the allowlist is fixed. `npm rebuild` re-runs it.
      console.log(
        '[stage-native-deps] get-windows has no win32 binding; running `npm rebuild get-windows`...'
      )
      rebuild()
      bindingDirs = scanBindingDirs()
    }
    if (bindingDirs.length === 0) {
      throw new Error(
        '[stage-native-deps] get-windows has no win32 prebuilt binding under lib/binding. ' +
          'Recover from the checkout root with:\n' +
          '  npm install-scripts approve get-windows\n' +
          '  npm rebuild get-windows'
      )
    }
    for (const dir of bindingDirs) {
      const dest = join(destRoot, 'lib', 'binding', dir)
      mkdirSync(dest, { recursive: true })
      const destFile = join(dest, 'node-get-windows.node')
      cpSync(join(bindingRoot, dir, 'node-get-windows.node'), destFile)
      const classified = classifyNativeBinary(destFile)
      if (classified !== platform) {
        throw new Error(
          `[stage-native-deps] get-windows binding ${dir}/node-get-windows.node: ` +
            `expected ${platform}, got ${classified ?? 'unknown'}. ` +
            'Refusing to stage a binary compiled for the wrong platform.'
        )

View on GitHub (pinned to c896c09c42)

Solutions

  1. From the checkout root run `npm install-scripts approve get-windows` then `npm rebuild get-windows`.
  2. Verify the package's postinstall produced lib/binding for win32 before staging.

When it happens

Trigger: Thrown at apps/desktop/scripts/stage-native-deps.mjs:501 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14). Data as JSON: /api/errors/782036e09cd0d79b. Report an issue: GitHub.