{"record":{"id":"6516e8f788b7d844","repo":"paperclipai/paperclip","slug":"runner-remote-provider-artifact-incompatible-6516e8","errorCode":"runner_remote_provider_artifact_incompatible","errorMessage":"runner_remote_provider_artifact_incompatible: ${label} path must be ${expectedPath}","messagePattern":"runner_remote_provider_artifact_incompatible: (.+?) path must be (.+?)","errorType":"error_code","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"server/src/services/native-runtime/native-session-executor.ts","lineNumber":5761,"sourceCode":"    ],\n    [\n      \"OpenCode proxy\",\n      payload.artifacts?.opencodeProxy,\n      REMOTE_PROVIDER_PACK_ARTIFACT_PATHS.opencodeProxy,\n    ],\n    [\n      \"ACPX sidecar\",\n      payload.artifacts?.acpxSidecar,\n      REMOTE_PROVIDER_PACK_ARTIFACT_PATHS.acpxSidecar,\n    ],\n  ] as const;\n  for (const [label, artifact, expectedPath] of artifactEntries) {\n    const artifactPath = providerPackRelativePath(\n      artifact?.path,\n      `${label} path`,\n    );\n    if (artifactPath !== expectedPath) {\n      throw new Error(\n        `runner_remote_provider_artifact_incompatible: ${label} path must be ${expectedPath}`,\n      );\n    }\n    if (\n      typeof artifact?.sha256 !== \"string\" ||\n      sha256File(resolve(packRoot, artifactPath)) !== artifact.sha256\n    ) {\n      throw new Error(\n        `runner_remote_provider_artifact_incompatible: ${label} digest mismatch`,\n      );\n    }\n  }\n  if (sha256DirectoryTree(resolve(packRoot, \"dist\")) !== payload.distDigest) {\n    throw new Error(\n      \"runner_remote_provider_artifact_incompatible: provider dist tree digest mismatch\",\n    );\n  }\n  const bridgeDigest = `sha256:${createHash(\"sha256\")","sourceCodeStart":5743,"sourceCodeEnd":5779,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/services/native-runtime/native-session-executor.ts#L5743-L5779","documentation":"Artifact verification guard over the remote provider pack: each artifact entry (provider Node command, production lockfile, OpenCode command/executable, etc.) must exist at the exact expected path in REMOTE_PROVIDER_PACK_ARTIFACT_PATHS; any deviation throws 'runner_remote_provider_artifact_incompatible: <label> path must be <expectedPath>'. This prevents launching from relocated or tampered pack artifacts.","triggerScenarios":"Thrown at server/src/services/native-runtime/native-session-executor.ts:4098 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Install the provider pack so each artifact sits at its expected canonical path.","Fix the payload's artifacts paths to match REMOTE_PROVIDER_PACK_ARTIFACT_PATHS.","Re-download/repackage the provider pack if artifacts were moved or partially extracted."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-09-02T18:44:00.616Z","contentChangedAt":"2026-09-02T18:44:00.616Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}