paperclipai/paperclip · error · PaperclipRunnerProviderProfileError

paperclip_runner_provider_unsupported

paperclip_runner_provider_unsupported

Error message

Paperclip Runner provider must be Codex, OpenCode, Claude Managed, AWS AgentCore, or ACPX.

What it means

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.

Source

Thrown at server/src/services/native-runtime/provider-profile.ts:310

      "paperclip_runner_aws_agentcore_recovery_identity_mismatch",
      "The persisted AWS AgentCore identity no longer matches its qualified profile.",
    );
  }
}

/**
 * Resolve the immutable provider identity used for a fresh Paperclip Runner
 * selection. The persisted adapterConfig is the authority; runtimeConfig is
 * deliberately not consulted so model-profile or migration metadata cannot
 * silently switch the harness selected for a run.
 */
export function resolvePaperclipRunnerProviderProfile(
  adapterConfig: unknown,
): PaperclipRunnerProviderProfile {
  const config = asRecord(adapterConfig);
  const candidate = config.provider ?? "codex";
  if (!isPaperclipRunnerProvider(candidate)) {
    throw new PaperclipRunnerProviderProfileError(
      "paperclip_runner_provider_unsupported",
      "Paperclip Runner provider must be Codex, OpenCode, Claude Managed, AWS AgentCore, or ACPX.",
    );
  }

  assertPermissionMode(candidate, config);
  const model = optionalString(config.model);
  if (candidate === "codex") {
    return {
      provider: "codex",
      backend: "codex_app_server",
      model,
    };
  }

  if (candidate === "opencode") {
    if (!model || !model.includes("/") || model.endsWith("/")) {
      throw new PaperclipRunnerProviderProfileError(

View on GitHub (pinned to 01ad858492)

Solutions

  1. Set adapterConfig.provider to a supported value: codex, opencode, claude_managed, aws_agentcore, or acpx.
  2. Migrate config written by a newer build before this server can resolve it.
  3. Fix whatever wrote a malformed/empty provider string into adapterConfig.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/services/native-runtime/provider-profile.ts:304 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-09-02). Data as JSON: /api/errors/c938e8787ef2f0a3. Report an issue: GitHub.