{"record":{"id":"18681fa588b458e0","repo":"paperclipai/paperclip","slug":"runner-local-provider-artifact-incompatible","errorCode":"runner_local_provider_artifact_incompatible","errorMessage":"runner_local_provider_artifact_incompatible: ACPX local launch must use build-owned artifacts","messagePattern":"runner_local_provider_artifact_incompatible: ACPX local launch must use build-owned artifacts","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/paperclip-runner/src/live/runnerd-codex-transport.ts","lineNumber":2782,"sourceCode":"  sidecarScriptSha256: string;\n} {\n  const localDigest = (path: string) =>\n    `sha256:${createHash(\"sha256\").update(readFileSync(path)).digest(\"hex\")}`;\n  if (!options.runnerFilesystemRoot) {\n    const buildCommand = process.execPath;\n    const buildSidecarCandidates = buildOwnedCliArtifactCandidates(\n      \"acpx-runtime-sidecar.cjs\",\n    );\n    if (\n      options.providerNodeCommand !== undefined ||\n      options.providerNodeCommandSha256 !== undefined ||\n      options.acpxSidecarPath !== undefined ||\n      options.acpxSidecarSha256 !== undefined ||\n      options.providerPackAuthorityDigest !== undefined ||\n      command !== buildCommand ||\n      !buildSidecarCandidates.includes(sidecarScript)\n    ) {\n      throw new Error(\n        \"runner_local_provider_artifact_incompatible: ACPX local launch must use build-owned artifacts\",\n      );\n    }\n    const buildSidecar = resolveBuildOwnedCliArtifact(\n      \"acpx-runtime-sidecar.cjs\",\n      buildSidecarCandidates,\n    );\n    if (sidecarScript !== buildSidecar) {\n      throw new Error(\n        \"runner_local_provider_artifact_incompatible: ACPX local launch must use build-owned artifacts\",\n      );\n    }\n    const commandSha256 = localDigest(buildCommand);\n    const sidecarScriptSha256 = localDigest(buildSidecar);\n    return {\n      authorityDigest: commandDigest({\n        schema: \"paperclip.runner.local-acpx-authority.v1\",\n        commandSha256,","sourceCodeStart":2764,"sourceCodeEnd":2800,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/packages/paperclip-runner/src/live/runnerd-codex-transport.ts#L2764-L2800","documentation":"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.","triggerScenarios":"Thrown at packages/paperclip-runner/src/live/runnerd-codex-transport.ts:844 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-09-10T03:14:50.855Z","contentChangedAt":"2026-09-10T03:14:50.855Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}