paperclipai/paperclip · error · Error
Provider pack build Node is older than 24.11.0
Error message
Provider pack build Node is older than 24.11.0
What it means
Version guard in build-provider-pack.mjs: the Node interpreter running the pack build is older than the manifest's minimum (24.11.0). The pack manifest binds the interpreter version before any provider launches, so an under-qualified build Node aborts the build rather than shipping a pack that could behave differently at runtime.
Source
Thrown at packages/paperclip-runner/scripts/build-provider-pack.mjs:154
if (realpathSync(codexAcpRequire.resolve("@openai/codex/package.json")) !==
realpathSync(packRequire.resolve("@openai/codex/package.json"))) {
throw new Error("Codex ACP must share the image's Codex installation");
}
// Reuse the already-qualified build interpreter instead of introducing a
// package-manager lifecycle hook or a second binary supply chain. The pack
// manifest binds the copied bytes, platform, architecture, and minimum
// version before any provider is launched.
const minimumNodeVersion = [24, 11, 0];
const actualNodeVersion = process.versions.node.split(".").map(Number);
if (
actualNodeVersion[0] < minimumNodeVersion[0] ||
(actualNodeVersion[0] === minimumNodeVersion[0] &&
(actualNodeVersion[1] < minimumNodeVersion[1] ||
(actualNodeVersion[1] === minimumNodeVersion[1] &&
actualNodeVersion[2] < minimumNodeVersion[2])))
) {
throw new Error("Provider pack build Node is older than 24.11.0");
}
const stableNodeRoot = join(temporaryRoot, "node_modules", "node");
if (existsSync(stableNodeRoot)) {
throw new Error(
"Provider pack deployment unexpectedly claimed the stable Node path",
);
}
const stableNodeCommand = join(stableNodeRoot, "bin", "node");
mkdirSync(dirname(stableNodeCommand), { recursive: true, mode: 0o755 });
copyFileSync(process.execPath, stableNodeCommand);
chmodSync(stableNodeCommand, 0o755);
// pnpm's generated .bin shims embed the temporary deployment directory in
// NODE_PATH. That makes an otherwise identical provider pack hash differ on
// every build and leaks a nonexistent host path after relocation. Replace
// every provider-facing shim with a pack-relative launcher that always uses
// the pinned Node executable owned by this pack.
// The image exposes these same installations to every adapter. Never add aView on GitHub (pinned to 01ad858492)
Solutions
- Run the provider-pack build with Node >= 24.11.0
- Update the pinned build interpreter in CI/tooling to a qualifying Node release
- Lower minimumNodeVersion only if runtime compatibility with older Node is verified
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/paperclip-runner/scripts/build-provider-pack.mjs:154 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-09-10).
Data as JSON: /api/errors/b2fe5ce64e61c47c.
Report an issue: GitHub.