{"record":{"id":"01f524ae93b6a48e","repo":"paperclipai/paperclip","slug":"failed-to-install-the-adapter-runtime-command-via","errorCode":null,"errorMessage":"Failed to install the adapter runtime command via: ${installCommand}","messagePattern":"Failed to install the adapter runtime command via: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/adapter-utils/src/execution-target.ts","lineNumber":1046,"sourceCode":"  detail?: string;\n  hint?: string;\n}\n\n// Best-effort run of an adapter-supplied install command on a sandbox target\n// before the resolvability + hello probe. Returns null for non-sandbox\n// targets so callers can no-op. Returns a structured check otherwise — never\n// throws — so the rest of the test still runs and reports the post-install\n// state honestly. Caller pushes the check into its result array; the test\n// report shows whether install was attempted and what came back.\nexport async function maybeRunSandboxInstallCommand(input: {\n  runId: string;\n  target: AdapterExecutionTarget | null | undefined;\n  adapterKey: string;\n  installCommand: string;\n  /** When provided, skip the install if `command -v <detectCommand>` succeeds. */\n  detectCommand?: string | null;\n  env?: Record<string, string>;\n  timeoutSec?: number;\n}): Promise<AdapterSandboxInstallCommandCheck | null> {\n  const { target, adapterKey, installCommand } = input;\n  if (!target || target.kind !== \"remote\" || target.transport !== \"sandbox\") {\n    return null;\n  }\n  const trimmed = installCommand.trim();\n  if (trimmed.length === 0) return null;\n\n  const code = `${adapterKey}_install_command_run`;\n\n  // Skip install when the binary is already on PATH. Avoids running\n  // network-dependent installers (e.g. `curl ... | bash`) on every test\n  // probe when the CLI is preinstalled on the lease/template.\n  const detectCommand = input.detectCommand?.trim();\n  if (detectCommand) {\n    try {\n      const probe = await runAdapterExecutionTargetShellCommand(\n        input.runId,","sourceCodeStart":1028,"sourceCodeEnd":1064,"githubUrl":"https://github.com/paperclipai/paperclip/blob/3f1d897a7c018d76563a21c6e39c3c9b03933622/packages/adapter-utils/src/execution-target.ts#L1028-L1064","documentation":"Install failure for adapter runtime bootstrapping: the configured install command exited non-zero (and the binary is still not on PATH), so the sandbox has no runnable adapter CLI; the install command itself is named in the message.","triggerScenarios":"Thrown at packages/adapter-utils/src/execution-target.ts:996 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run the install command manually in the sandbox to see the failure: ${installCommand}.","Fix the install command or use a sandbox image with the runtime preinstalled."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3f1d897a7c018d76563a21c6e39c3c9b03933622","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}