{"record":{"id":"e590b6a271534607","repo":"paperclipai/paperclip","slug":"the-pi-acpx-profile-is-not-available-e590b6","errorCode":null,"errorMessage":"The Pi ACPX profile is not available","messagePattern":"The Pi ACPX profile is not available","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/paperclip-runner/src/live/live-session.ts","lineNumber":865,"sourceCode":"}\n\nexport class CapabilityLiveSessionService {\n  readonly #store: CapabilityLiveSessionStore;\n  readonly #transportFactory: CapabilityLiveTransportFactory;\n  readonly #transportOptions: CapabilityRunnerdCodexTransportOptions;\n  readonly #now: () => Date;\n  readonly #sessions = new Map<string, CapabilityLiveSession>();\n\n  constructor(options: CapabilityLiveSessionServiceOptions = {}) {\n    this.#store = options.store ?? new InMemoryCapabilityLiveSessionStore();\n    this.#transportFactory = options.transportFactory ?? createCapabilityRunnerdCodexTransport;\n    this.#transportOptions = options.transportOptions ?? {};\n    this.#now = options.now ?? (() => new Date());\n  }\n\n  async create(input: CreateCapabilityLiveSessionInput = {}): Promise<CapabilityLiveSession> {\n    if (input.provider === \"acpx\" && input.acpxAgent === \"pi\") {\n      throw new Error(\"The Pi ACPX profile is not available\");\n    }\n    if (input.provider === \"claude_managed\" && !input.managedProfile) {\n      throw new Error(\"Claude Managed live sessions require a qualified managed profile\");\n    }\n    if (input.provider === \"aws_agentcore\" && !input.agentCoreProfile) {\n      throw new Error(\"AWS AgentCore live sessions require a qualified AgentCore profile\");\n    }\n    if (\n      (input.provider === \"claude_managed\" || input.provider === \"aws_agentcore\") &&\n      !input.requestedModel?.trim()\n    ) {\n      throw new Error(\"Managed live sessions require an explicit qualified model\");\n    }\n    const port = new CapabilityMockControlPlaneAdapter(input.seed);\n    const seedState = port.serialize();\n    await port.start();\n    const state = port.snapshot();\n    const sessionId = input.sessionId ?? randomUUID();","sourceCodeStart":847,"sourceCodeEnd":883,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/packages/paperclip-runner/src/live/live-session.ts#L847-L883","documentation":"CapabilityLiveSession.create refuses to start a live session for the 'acpx' provider with acpxAgent 'pi'. The Pi profile is intentionally disabled/unavailable in this runner build, so requesting it is rejected up front instead of failing later in transport setup.","triggerScenarios":"Calling create({ provider: 'acpx', acpxAgent: 'pi', ... }) or any caller (session/first/reset helpers) that passes the pi ACPX agent profile.","commonSituations":"Config or eval matrix enumerates all ACPX agents including pi; stale config left over from when pi was supported; docs/examples referencing the pi profile.","solutions":["Switch to a supported acpxAgent (e.g. another available ACPX agent profile) or a different provider","Remove 'pi' from any config/eval matrix that enumerates ACPX agents","If pi support is needed, upgrade the runner package or check whether the profile was removed intentionally","Guard the call site so pi is skipped/marked unavailable rather than attempted"],"exampleFix":"// before\nawait liveSession.create({ provider: 'acpx', acpxAgent: 'pi' });\n// after\nconst ACPX_AGENTS = ['gemini', 'codex']; // supported profiles\nif (!ACPX_AGENTS.includes(agent)) throw new Error(`acpx agent ${agent} unavailable`);\nawait liveSession.create({ provider: 'acpx', acpxAgent: agent });","handlingStrategy":"validation","validationCode":"if (provider === 'acpx' && acpxAgent === 'pi') throw new Error('pi ACPX profile unavailable; pick a supported agent');","typeGuard":"function isSupportedAcpxAgent(agent: string): boolean {\n  return agent !== 'pi';\n}","tryCatchPattern":"try {\n  await liveSession.create(input);\n} catch (err) {\n  if (err instanceof Error && err.message === 'The Pi ACPX profile is not available') {\n    // mark this candidate unavailable and continue\n  } else throw err;\n}","preventionTips":["Maintain a list of supported provider/agent combos and filter before create","Exclude disabled profiles from eval matrices","Check package release notes for profile availability changes"],"tags":["live-session","acpx","unsupported-feature"],"backgroundTag":"provider-profile-unavailable","analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-09-02T18:44:00.616Z","contentChangedAt":"2026-09-02T18:44:00.616Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}