{"record":{"id":"95479e108209d5c9","repo":"paperclipai/paperclip","slug":"awsprovidersafemessage-clientcode","errorCode":null,"errorMessage":"awsProviderSafeMessage(clientCode)","messagePattern":"awsProviderSafeMessage\\(clientCode\\)","errorType":"http","errorClass":"SecretProviderClientError","httpStatus":null,"severity":"error","filePath":"server/src/secrets/aws-secrets-manager-provider.ts","lineNumber":986,"sourceCode":"      operation,\n      body,\n      credentials,\n    });\n    const response = await fetch(this.endpoint, {\n      method: \"POST\",\n      headers,\n      body,\n      signal: AbortSignal.timeout(AWS_SECRETS_MANAGER_REQUEST_TIMEOUT_MS),\n    });\n    const text = await response.text();\n    const parsed = text ? (JSON.parse(text) as Record<string, unknown>) : {};\n\n    if (!response.ok) {\n      const code = String(parsed.__type ?? parsed.code ?? parsed.Code ?? response.statusText ?? \"UnknownError\");\n      const message = String(parsed.message ?? parsed.Message ?? code);\n      const rawMessage = `${code}: ${message}`;\n      const clientCode = classifyAwsProviderError(rawMessage);\n      throw new SecretProviderClientError({\n        code: clientCode,\n        provider: \"aws_secrets_manager\",\n        operation,\n        message: awsProviderSafeMessage(clientCode),\n        rawMessage,\n      });\n    }\n\n    return parsed as T;\n  }\n}\n\nexport function createAwsSecretsManagerProvider(\n  options?: {\n    config?: AwsSecretsManagerConfig;\n    gateway?: AwsSecretsManagerGateway;\n  },\n): SecretProviderModule {","sourceCodeStart":968,"sourceCodeEnd":1004,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/server/src/secrets/aws-secrets-manager-provider.ts#L968-L1004","documentation":"Safe-message helper invoked after a non-OK AWS Secrets Manager HTTP response in the signed-request client: the parsed error code is normalized and passed to awsProviderSafeMessage to produce a sanitized message. This record's message is the helper-call expression itself; the throw site converts raw AWS error payloads into fixed, non-leaking strings.","triggerScenarios":"Thrown at server/src/secrets/aws-secrets-manager-provider.ts:986 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the AWS client error code in the server logs and fix the underlying Secrets Manager issue (IAM, region, or secret name)."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}