paperclipai/paperclip · error · Error

${entrypoint.name} bundle emitted ${outputs.length} entrypoi

Error message

${entrypoint.name} bundle emitted ${outputs.length} entrypoint outputs instead of one

What it means

Guard in assertSelfContainedBundle in build-verified-provider-entrypoints.mjs: after esbuild, the bundle's metafile lists more than one (or zero) output with an entryPoint for the given entrypoint (e.g. opencode-app-server-proxy). The build expects exactly one self-contained entrypoint output; multiple entry outputs mean the build config split or duplicated the entry, breaking the verified-bundle contract.

Source

Thrown at packages/paperclip-runner/scripts/build-verified-provider-entrypoints.mjs:38

    output: resolve(packageRoot, "dist/cli/opencode-app-server-proxy.js"),
    verifiedOutput: resolve(
      packageRoot,
      "dist/cli/opencode-app-server-proxy.cjs",
    ),
  }),
]);

const nodeBuiltins = new Set([
  ...builtinModules,
  ...builtinModules.map((name) => `node:${name}`),
]);

function assertSelfContainedBundle(entrypoint, result) {
  const outputs = Object.entries(result.metafile.outputs).filter(
    ([, output]) => output.entryPoint !== undefined,
  );
  if (outputs.length !== 1) {
    throw new Error(
      `${entrypoint.name} bundle emitted ${outputs.length} entrypoint outputs instead of one`,
    );
  }
  const imports = outputs[0][1].imports;
  for (const dependency of imports) {
    if (!dependency.external || !nodeBuiltins.has(dependency.path)) {
      throw new Error(
        `${entrypoint.name} bundle retained a non-builtin import: ${dependency.path}`,
      );
    }
  }
}

export async function bundleVerifiedProviderEntrypoints({ write = true } = {}) {
  const results = [];
  for (const entrypoint of verifiedProviderEntrypoints) {
    const buildBundle = async (outfile, format) => {
      const result = await build({

View on GitHub (pinned to 01ad858492)

Solutions

  1. Inspect the esbuild config for the entrypoint and remove extra entry-emitting outputs
  2. Ensure only a single output format (js or cjs) is configured per entrypoint
  3. Re-run the verified-entrypoints build after fixing the bundle configuration
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/paperclip-runner/scripts/build-verified-provider-entrypoints.mjs:38 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/e14241d538c2b037. Report an issue: GitHub.