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
- Inspect the esbuild config for the entrypoint and remove extra entry-emitting outputs
- Ensure only a single output format (js or cjs) is configured per entrypoint
- 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.