paperclipai/paperclip · error · PaperclipRunnerProviderProfileError

paperclip_runner_claude_managed_recovery_identity_mismatch

paperclip_runner_claude_managed_recovery_identity_mismatch

Error message

The persisted Claude Managed identity no longer matches its qualified profile.

What it means

Guard assertManagedProfileRecoveryBinding: when recovering a Claude Managed run, the persisted recovery snapshot (profileId, anthropicAgentId, agentVersion, environmentId, betaVersion) is compared field-by-field against the currently qualified stored profile; any divergence throws 'paperclip_runner_claude_managed_recovery_identity_mismatch' because the run can no longer be safely bound to the changed profile.

Source

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

  };
  stored: {
    id: string;
    anthropicAgentId: string;
    agentVersion: string;
    environmentId: string;
    betaVersion: string;
    apiKeySecretId: string;
  };
}): void {
  const { snapshot, stored } = input;
  if (
    snapshot.profileId !== stored.id
    || snapshot.anthropicAgentId !== stored.anthropicAgentId
    || snapshot.agentVersion !== stored.agentVersion
    || snapshot.environmentId !== stored.environmentId
    || snapshot.betaVersion !== stored.betaVersion
  ) {
    throw new PaperclipRunnerProviderProfileError(
      "paperclip_runner_claude_managed_recovery_identity_mismatch",
      "The persisted Claude Managed identity no longer matches its qualified profile.",
    );
  }
  const rawBinding = asRecord(asRecord(input.adapterConfig).env).ANTHROPIC_API_KEY;
  const boundSecretId = asRecord(rawBinding).secretId;
  if (boundSecretId !== stored.apiKeySecretId) {
    throw new PaperclipRunnerProviderProfileError(
      "paperclip_runner_claude_managed_recovery_secret_mismatch",
      "The persisted Claude Managed run is not bound to its profile's current API-key secret.",
    );
  }
}

/** Revalidate the operator's AWS profile revocation and immutable identity on recovery. */
export function assertAgentCoreProfileRecoveryBinding(input: {
  snapshot: {
    profileId: string;

View on GitHub (pinned to 01ad858492)

Solutions

  1. Re-qualify the managed profile so its identity again matches the persisted snapshot, or re-qualify and start a fresh run.
  2. Start a new run instead of resuming, since the profile changed since the snapshot was taken.
  3. Roll back the profile change (agent version/environment/beta) that broke binding if resumption is required.
Defensive patterns

Strategy: validation

When it happens

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