{"record":{"id":"c938e8787ef2f0a3","repo":"paperclipai/paperclip","slug":"paperclip-runner-provider-unsupported-c938e8","errorCode":"paperclip_runner_provider_unsupported","errorMessage":"Paperclip Runner provider must be Codex, OpenCode, Claude Managed, AWS AgentCore, or ACPX.","messagePattern":"Paperclip Runner provider must be Codex, OpenCode, Claude Managed, AWS AgentCore, or ACPX\\.","errorType":"error_code","errorClass":"PaperclipRunnerProviderProfileError","httpStatus":null,"severity":"error","filePath":"server/src/services/native-runtime/provider-profile.ts","lineNumber":310,"sourceCode":"      \"paperclip_runner_aws_agentcore_recovery_identity_mismatch\",\n      \"The persisted AWS AgentCore identity no longer matches its qualified profile.\",\n    );\n  }\n}\n\n/**\n * Resolve the immutable provider identity used for a fresh Paperclip Runner\n * selection. The persisted adapterConfig is the authority; runtimeConfig is\n * deliberately not consulted so model-profile or migration metadata cannot\n * silently switch the harness selected for a run.\n */\nexport function resolvePaperclipRunnerProviderProfile(\n  adapterConfig: unknown,\n): PaperclipRunnerProviderProfile {\n  const config = asRecord(adapterConfig);\n  const candidate = config.provider ?? \"codex\";\n  if (!isPaperclipRunnerProvider(candidate)) {\n    throw new PaperclipRunnerProviderProfileError(\n      \"paperclip_runner_provider_unsupported\",\n      \"Paperclip Runner provider must be Codex, OpenCode, Claude Managed, AWS AgentCore, or ACPX.\",\n    );\n  }\n\n  assertPermissionMode(candidate, config);\n  const model = optionalString(config.model);\n  if (candidate === \"codex\") {\n    return {\n      provider: \"codex\",\n      backend: \"codex_app_server\",\n      model,\n    };\n  }\n\n  if (candidate === \"opencode\") {\n    if (!model || !model.includes(\"/\") || model.endsWith(\"/\")) {\n      throw new PaperclipRunnerProviderProfileError(","sourceCodeStart":292,"sourceCodeEnd":328,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/services/native-runtime/provider-profile.ts#L292-L328","documentation":"Guard at the top of resolvePaperclipRunnerProviderProfile: the persisted adapterConfig must name one of the five supported Paperclip Runner providers (codex, opencode, claude_managed, aws_agentcore, acpx); anything else throws 'paperclip_runner_provider_unsupported'. Fires when adapterConfig.provider is missing, mistyped, or written by a build supporting other providers.","triggerScenarios":"Thrown at server/src/services/native-runtime/provider-profile.ts:304 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set adapterConfig.provider to a supported value: codex, opencode, claude_managed, aws_agentcore, or acpx.","Migrate config written by a newer build before this server can resolve it.","Fix whatever wrote a malformed/empty provider string into adapterConfig."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-09-02T18:44:00.616Z","contentChangedAt":"2026-09-02T18:44:00.616Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}