{"record":{"id":"f96a4d901543a04b","repo":"paperclipai/paperclip","slug":"assigned-native-mcp-launch-binding-is-unavailable","errorCode":null,"errorMessage":"assigned native MCP launch binding is unavailable","messagePattern":"assigned native MCP launch binding is unavailable","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/paperclip-runner/src/drivers/acpx/runtime-host.ts","lineNumber":300,"sourceCode":"    this.#claudeSkillNames = [...input.claudeSkillNames];\n  }\n\n  static async open(\n    options: OpenAcpxRuntimeHostOptions,\n    dependencies: AcpxRuntimeHostDependencies,\n  ): Promise<AcpxRuntimeHost> {\n    options.signal?.throwIfAborted();\n    if (options.agent === \"pi\") {\n      throw new Error(\n        \"ACPX pi is unavailable until its runtime has descriptor-confined verified launch\",\n      );\n    }\n    const nativeMcp = nativeMcpLaunchBinding(options.environment);\n    if (nativeMcp?.name === \"paperclip\") {\n      throw new Error(\"assigned native MCP name conflicts with the task bridge\");\n    }\n    if (options.runtimeContext?.mcp.bindingId && !nativeMcp) {\n      throw new Error(\"assigned native MCP launch binding is unavailable\");\n    }\n    const profile = resolveQualifiedAcpxProfile(options.agent, options.model);\n    const binding = await runAbortableAdmissionStage(\n      options.signal,\n      () =>\n        createAcpxRecoveryBinding({\n          runtimeDirectory: options.runtimeDirectory,\n          normalizedSessionId: options.normalizedSessionId,\n          workingDirectory: options.workingDirectory,\n          profile,\n          requestedModel: options.model,\n          permissionMode: options.permissionMode,\n        }),\n      dependencies.retainAdmissionCleanup,\n    );\n    if (options.expectedIdentity) {\n      verifyExpectedAcpxIdentity(options.expectedIdentity, binding, null);\n    }","sourceCodeStart":282,"sourceCodeEnd":318,"githubUrl":"https://github.com/paperclipai/paperclip/blob/3f1d897a7c018d76563a21c6e39c3c9b03933622/packages/paperclip-runner/src/drivers/acpx/runtime-host.ts#L282-L318","documentation":"Availability guard in AcpxRuntimeHost.open: nativeMcpLaunchBinding(options.environment) returned nothing usable, meaning the environment does not provide the native MCP launch binding the ACPX runtime host requires to start, so open() fails fast instead of launching a runtime without its native MCP server. Generic validation — the input at fault is the environment descriptor lacking the binding (missing config, unsupported agent/environment combination).","triggerScenarios":"Thrown at packages/paperclip-runner/src/drivers/acpx/runtime-host.ts:300 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the runtime environment descriptor includes a native MCP launch binding before calling open().","Check that the selected agent/environment combination supports native MCP launch (pi, for example, is explicitly unavailable).","Fix the binding resolution (nativeMcpLaunchBinding) if a valid binding was expected for this environment."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3f1d897a7c018d76563a21c6e39c3c9b03933622","analyzedAt":"2026-09-18T08:03:59.046Z","contentChangedAt":"2026-09-18T08:03:59.046Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}