{"record":{"id":"13f3316e0ac83846","repo":"paperclipai/paperclip","slug":"assigned-native-mcp-name-conflicts-with-the-task-bridge","errorCode":null,"errorMessage":"assigned native MCP name conflicts with the task bridge","messagePattern":"assigned native MCP name conflicts with the task bridge","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/paperclip-runner/src/drivers/acpx/runtime-host.ts","lineNumber":297,"sourceCode":"    this.#credential = input.credential;\n    this.#command = input.command;\n    this.#toolBridge = input.toolBridge;\n    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    );","sourceCodeStart":279,"sourceCodeEnd":315,"githubUrl":"https://github.com/paperclipai/paperclip/blob/3f1d897a7c018d76563a21c6e39c3c9b03933622/packages/paperclip-runner/src/drivers/acpx/runtime-host.ts#L279-L315","documentation":"Name-collision guard in AcpxRuntimeHost.open: before launching the runtime host, the resolved native MCP launch binding's assigned name is checked against the reserved task-bridge name ('paperclip'); if the environment's assignment collides with the bridge that hosts Paperclip's own task tools, opening is refused to avoid registering two MCP servers under one name. Generic validation — the input at fault is the environment's MCP name assignment.","triggerScenarios":"Thrown at packages/paperclip-runner/src/drivers/acpx/runtime-host.ts:297 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Rename the environment's assigned native MCP server so it no longer uses the reserved 'paperclip' name.","Update nativeMcpLaunchBinding/environment configuration to pick a non-reserved server name.","If the reservation list changed, coordinate which component owns the conflicting name."],"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"}