paperclipai/paperclip · error · SecretProviderClientError

awsProviderSafeMessage(code)

Error message

awsProviderSafeMessage(code)

What it means

Safe-message helper (awsProviderSafeMessage) for AWS Secrets Manager errors: it maps an internal error code to a fixed, non-sensitive user-facing message. The 'message' value shown is the helper's invocation expression — the throw site is the switch default, returning a generic failure string when the code is unrecognized or provider_error.

Solutions

  1. Check the AWS error code in the server logs and remedy the Secrets Manager failure (permissions, network, or missing secret).
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at server/src/secrets/aws-secrets-manager-provider.ts:875 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18). Data as JSON: /api/errors/e3ef97974e9a91d1. Report an issue: GitHub.

Appendix: source

Thrown at server/src/secrets/aws-secrets-manager-provider.ts:875

      return "AWS Secrets Manager throttled the request. Wait and try again.";
    case "not_found":
      return "AWS Secrets Manager could not find the requested secret.";
    case "conflict":
      return "AWS Secrets Manager reported that the requested secret already exists.";
    case "invalid_request":
      return "AWS Secrets Manager rejected the request.";
    case "provider_unavailable":
      return "AWS Secrets Manager is unavailable right now.";
    case "provider_error":
    default:
      return "AWS Secrets Manager request failed.";
  }
}

function normalizeAwsError(operation: string, error: unknown): never {
  const rawMessage = error instanceof Error ? error.message : String(error);
  const code = classifyAwsProviderError(rawMessage);
  throw new SecretProviderClientError({
    code,
    provider: "aws_secrets_manager",
    operation,
    message: awsProviderSafeMessage(code),
    rawMessage,
    cause: error,
  });
}

class AwsSecretsManagerJsonGateway implements AwsSecretsManagerGateway {
  private readonly endpoint: URL;

  constructor(private readonly config: AwsSecretsManagerConfig) {
    this.endpoint = new URL(config.endpoint);
  }

  createSecret(input: {
    Name: string;

View on GitHub (pinned to 120ae5428f)