paperclipai/paperclip · error
runner_local_provider_artifact_incompatible
runner_local_provider_artifact_incompatible
Error message
runner_local_provider_artifact_incompatible: ACPX local launch must use build-owned artifacts
What it means
Guard in acpxRunnerLaunchProfile: without a runnerFilesystemRoot the ACPX launch is local and must use build-owned artifacts (process.execPath and the in-build acpx-runtime-sidecar.js). Supplying remote-pack options — providerNodeCommand, providerNodeCommandSha256, acpxSidecarPath, acpxSidecarSha256, or providerPackAuthorityDigests — is contradictory, so the 'runner_local_provider_artifact_incompatible' error is thrown to prevent a local run from claiming remote-pack authority.
Source
Thrown at packages/paperclip-runner/src/live/runnerd-codex-transport.ts:2782
sidecarScriptSha256: string;
} {
const localDigest = (path: string) =>
`sha256:${createHash("sha256").update(readFileSync(path)).digest("hex")}`;
if (!options.runnerFilesystemRoot) {
const buildCommand = process.execPath;
const buildSidecarCandidates = buildOwnedCliArtifactCandidates(
"acpx-runtime-sidecar.cjs",
);
if (
options.providerNodeCommand !== undefined ||
options.providerNodeCommandSha256 !== undefined ||
options.acpxSidecarPath !== undefined ||
options.acpxSidecarSha256 !== undefined ||
options.providerPackAuthorityDigest !== undefined ||
command !== buildCommand ||
!buildSidecarCandidates.includes(sidecarScript)
) {
throw new Error(
"runner_local_provider_artifact_incompatible: ACPX local launch must use build-owned artifacts",
);
}
const buildSidecar = resolveBuildOwnedCliArtifact(
"acpx-runtime-sidecar.cjs",
buildSidecarCandidates,
);
if (sidecarScript !== buildSidecar) {
throw new Error(
"runner_local_provider_artifact_incompatible: ACPX local launch must use build-owned artifacts",
);
}
const commandSha256 = localDigest(buildCommand);
const sidecarScriptSha256 = localDigest(buildSidecar);
return {
authorityDigest: commandDigest({
schema: "paperclip.runner.local-acpx-authority.v1",
commandSha256,View on GitHub (pinned to 01ad858492)
Solutions
- Remove providerNodeCommand/providerNodeCommandSha256/acpxSidecarPath/acpxSidecarSha256 and provider-pack authority digest options for local launches.
- Set runnerFilesystemRoot if a remote provider pack is actually intended, so the remote artifact path is taken.
- Let the local branch compute its own digests from build-owned files instead of passing them in.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/paperclip-runner/src/live/runnerd-codex-transport.ts:844 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/18681fa588b458e0.
Report an issue: GitHub.