paperclipai/paperclip · error · Error

pnpm deploy failed with exit code

Error message

pnpm deploy failed with exit code ${deployed.status}

What it means

Guard in build-provider-pack.mjs: `pnpm --filter @paperclipai/paperclip-runner deploy --prod` exited non-zero while assembling the provider pack into the temporary root. It wraps a packaging-tool failure (dependency resolution, build script, or registry error) reported via exit code with inherited stdio.

Solutions

  1. Inspect the pnpm deploy output printed above the error for the underlying failure
  2. Ensure workspace dependencies resolve and install cleanly (`pnpm install`) before building the pack
  3. Clear pnpm store/fetch cache if the failure is a corrupted fetch
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at packages/paperclip-runner/scripts/build-provider-pack.mjs:129 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@3f1d897a7c (2026-09-10). Data as JSON: /api/errors/5a88014396c4786b. Report an issue: GitHub.

Appendix: source

Thrown at packages/paperclip-runner/scripts/build-provider-pack.mjs:129

    ].join("\n"),
  );
  chmodSync(shimPath, 0o755);
}

try {
  const deployed = spawnSync(
    "pnpm",
    [
      "--filter",
      "@paperclipai/paperclip-runner",
      "deploy",
      "--prod",
      temporaryRoot,
    ],
    { cwd: workspaceRoot, encoding: "utf8", stdio: "inherit" },
  );
  if (deployed.status !== 0) {
    throw new Error(`pnpm deploy failed with exit code ${deployed.status}`);
  }

  // Fail the image build if a bridge silently brings back an older/private
  // provider CLI. A direct dependency alone does not deduplicate pnpm's graph.
  const packRequire = createRequire(join(temporaryRoot, "package.json"));
  const codexAcpRequire = createRequire(packRequire.resolve("@agentclientprotocol/codex-acp/package.json"));
  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 (

View on GitHub (pinned to 3f1d897a7c)