{"record":{"id":"e3fbcbbd0f18897d","repo":"paperclipai/paperclip","slug":"acpx-input-profile-agent-runtime-executable-pac","errorCode":null,"errorMessage":"ACPX ${input.profile.agent} runtime executable package version mismatch: expected ${qualification.packageVersion}, received ${executablePackage.version ?? \"unknown\"}","messagePattern":"ACPX (.+?) runtime executable package version mismatch: expected (.+?), received (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/paperclip-runner/src/drivers/acpx/installation-integrity.ts","lineNumber":885,"sourceCode":"    ] !== qualification.dependencyDeclaration\n  ) {\n    throw new Error(\n      `ACPX ${input.profile.agent} runtime omitted its verified platform executable package`,\n    );\n  }\n\n  const executablePackageJsonPath = await realpath(\n    input.resolvePackageJson(\n      qualification.packageName,\n      input.runtimePackageJsonPath,\n    ),\n  );\n  const executablePackage = await readPackageJson(\n    executablePackageJsonPath,\n    qualification.packageName,\n  );\n  if (executablePackage.version !== qualification.packageVersion) {\n    throw new Error(\n      `ACPX ${input.profile.agent} runtime executable package version mismatch: expected ${qualification.packageVersion}, received ${executablePackage.version ?? \"unknown\"}`,\n    );\n  }\n\n  const packageDirectory = dirname(executablePackageJsonPath);\n  const unresolvedExecutablePath = resolve(\n    packageDirectory,\n    qualification.relativeExecutable,\n  );\n  if (!isInside(packageDirectory, unresolvedExecutablePath)) {\n    throw new Error(\n      `ACPX ${input.profile.agent} runtime executable escapes its package`,\n    );\n  }\n  const executableDirectory = await realpath(dirname(unresolvedExecutablePath));\n  if (!isInsideOrEqual(packageDirectory, executableDirectory)) {\n    throw new Error(\n      `ACPX ${input.profile.agent} runtime executable escapes its package`,","sourceCodeStart":867,"sourceCodeEnd":903,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/packages/paperclip-runner/src/drivers/acpx/installation-integrity.ts#L867-L903","documentation":"The verifier resolves the platform executable package referenced by the runtime, reads its package.json, and requires its version to exactly equal the hash-pinned qualification.packageVersion. A mismatch means the installed executable package is not the audited build whose digest will be checked next, so the runner refuses to use it.","triggerScenarios":"The optional platform package (e.g. @paperclip/acpx-codex-linux-x64) resolved on disk is a different version than the qualification pin — stale node_modules, a lockfile drift, a semver-range install that pulled a newer release, or PAPERCLIP_ACPX_PROVIDER_PACKAGE_ROOT pointing at a tree with a different build.","commonSituations":"Upgrading the runtime but not reinstalling the platform package (or vice versa); npm dedupe/hoisting resolving an older/newer copy; local link:/file: overrides; a fresh environment restored from a partial lockfile; package.json version field missing (reported as 'unknown') because of a broken tarball.","solutions":["Compare installed version vs expected in the message (expected qualification.packageVersion) and install exactly that version of the platform executable package.","Regenerate the lockfile entry and reinstall: remove the platform package from node_modules and lockfile, then pnpm/npm install so versions re-sync with the runtime.","Align profile.agentRuntimeVersion with the installed runtime so qualification and disk state agree.","Check for overrides/resolutions/link: deps in the root package.json that redirect the platform package to a different version, and remove them.","Verify the resolved path (PAPERCLIP_ACPX_PROVIDER_PACKAGE_ROOT if set) contains the pinned build, not a locally built variant."],"exampleFix":"// before\npnpm add @paperclip/acpx-codex-linux-x64@latest\n// after: pin the qualified version\npnpm add @paperclip/acpx-codex-linux-x64@1.2.3 --save-exact","handlingStrategy":"validation","validationCode":"const pkg = JSON.parse(fs.readFileSync(execPkgJsonPath, \"utf8\"));\nif (pkg.version !== expectedVersion) {\n  throw new Error(`Platform package at ${execPkgJsonPath} is ${pkg.version ?? \"unknown\"}, need ${expectedVersion}; pin it exactly`);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin platform executable packages with exact versions (no ^/~) in the lockfile.","Keep runtime and platform packages installed together from one lockfile; never partially upgrade one.","Check root package.json overrides/resolutions and link:/file: deps that can redirect the platform package.","Confirm PAPERCLIP_ACPX_PROVIDER_PACKAGE_ROOT (if set) hosts the pinned build."],"tags":["version-mismatch","npm","package-integrity","acpx"],"backgroundTag":"checksum-mismatch","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"}