{"record":{"id":"d9360821c7170333","repo":"paperclipai/paperclip","slug":"timed-out-while-installing-the-adapter-runtime-com","errorCode":null,"errorMessage":"Timed out while installing the adapter runtime command via: ${installCommand}","messagePattern":"Timed out while installing the adapter runtime command via: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/adapter-utils/src/execution-target.ts","lineNumber":1044,"sourceCode":"  level: \"info\" | \"warn\" | \"error\";\n  message: string;\n  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 {","sourceCodeStart":1026,"sourceCodeEnd":1062,"githubUrl":"https://github.com/paperclipai/paperclip/blob/3f1d897a7c018d76563a21c6e39c3c9b03933622/packages/adapter-utils/src/execution-target.ts#L1026-L1062","documentation":"Install-timeout failure for adapter runtime bootstrapping: the configured install command for the sandbox CLI ran past its timeout (and a post-timeout recheck still could not find the binary), so the runtime command was never successfully installed.","triggerScenarios":"Thrown at packages/adapter-utils/src/execution-target.ts:994 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the install; it timed out.","Pre-install the adapter runtime command in the sandbox image to avoid runtime installs."],"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"}