paperclipai/paperclip · error · PaperclipRunnerProviderProfileError

paperclip_runner_claude_managed_retention_required

paperclip_runner_claude_managed_retention_required

Error message

Paperclip Runner Claude Managed requires acknowledgement of stateful beta retention.

What it means

Guard in resolvePaperclipRunnerProviderProfile for claude_managed: adapterConfig.managedAgentsRetentionAcknowledged must be explicitly true, else 'paperclip_runner_claude_managed_retention_required' is thrown. Claude Managed agents are stateful server-side and retain data, so the operator must have acknowledged that retention before runs are allowed.

Source

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

      );
    }
    return {
      provider: "opencode",
      backend: "opencode_server",
      model,
    };
  }

  if (candidate === "claude_managed") {
    const managedProfileId = optionalString(config.managedProfileId);
    if (!managedProfileId) {
      throw new PaperclipRunnerProviderProfileError(
        "paperclip_runner_claude_managed_profile_required",
        "Paperclip Runner Claude Managed requires a company managed-agent profile.",
      );
    }
    if (config.managedAgentsRetentionAcknowledged !== true) {
      throw new PaperclipRunnerProviderProfileError(
        "paperclip_runner_claude_managed_retention_required",
        "Paperclip Runner Claude Managed requires acknowledgement of stateful beta retention.",
      );
    }
    if (model !== null && model !== CLAUDE_MANAGED_QUALIFIED_MODEL) {
      throw new PaperclipRunnerProviderProfileError(
        "paperclip_runner_claude_managed_model_unqualified",
        `The Claude Managed profile requires exact model ${CLAUDE_MANAGED_QUALIFIED_MODEL}.`,
      );
    }
    return {
      provider: "claude_managed",
      backend: "claude_managed_agents_api",
      managedProfileId,
      model,
      maxSessionListCostUsd: positiveNumberOrNull(
        config.maxSessionListCostUsd,
        "paperclip_runner_claude_managed_spend_cap_invalid",

View on GitHub (pinned to 01ad858492)

Solutions

  1. Set managedAgentsRetentionAcknowledged to true in adapterConfig after the operator accepts the retention terms.
  2. Drive the acknowledgement through the UI/provider onboarding flow rather than editing config by hand.
  3. Use a stateless provider (codex/opencode) if retention cannot be accepted.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/services/native-runtime/provider-profile.ts:343 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/f2c10807785b8898. Report an issue: GitHub.