Driftwatch

Plaid / Plaid API (2020-09-14) /

Breakingdirection flip: their tools call this safe

value can now return "CRA_PARTNER_INSIGHTS_ERROR", "CRA_REPORT_ERROR"

What changed

Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.

Affects this value on PlaidErrorType reachable from 294 operations.

New values: CRA_PARTNER_INSIGHTS_ERROR, CRA_REPORT_ERROR.

can now return "CRA_PARTNER_INSIGHTS_ERROR", "CRA_REPORT_ERROR"

Who is affected

Code that reads Plaid's PlaidErrorType objects, used by 294 Plaid operations.

Before and after

WhereBeforeAfter
PlaidErrorType"API_ERROR", "ASSETS_ERROR", "ASSET_REPORT_ERROR", "BANK_TRANSFER_ERROR", "BASE_REPORT_ERROR", "CHECK_REPORT_ERROR", "CONSUMER_REPORT_ERROR", "CRA_MONITORING_ERROR", "CREDIT_PROFILE_REPORT_ERROR", "ENCOMPASS_ERROR", "ENRICH_ERROR", "FRAUD_INSIGHTS_ERROR", "FREDDIE_MAC_ERROR", "IDEMPOTENCY_ERROR", "INCOME_VERIFICATION_ERROR", "INSTITUTION_ERROR", "INVALID_INPUT", "INVALID_REQUEST", "INVALID_RESULT", "ITEM_ERROR", "LINK_DELIVERY_ERROR", "MICRODEPOSITS_ERROR", "OAUTH_ERROR", "PARTNER_ERROR", "PAYMENT_ERROR", "PROFILE_ERROR", "RATE_LIMIT_EXCEEDED", "RECAPTCHA_ERROR", "RECURRING_TRANSACTIONS_ERROR", "SANDBOX_ERROR", "SIGNAL_ERROR", "STATEMENTS_ERROR", "TRANSACTIONS_ERROR", "TRANSACTION_ERROR", "TRANSFER_ERROR", "TRANSFER_RECURRING_ERROR", "TRANSFER_REFUND_ERROR", "USER_ERROR""API_ERROR", "ASSETS_ERROR", "ASSET_REPORT_ERROR", "BANK_TRANSFER_ERROR", "BASE_REPORT_ERROR", "CHECK_REPORT_ERROR", "CONSUMER_REPORT_ERROR", "CRA_MONITORING_ERROR", "CRA_PARTNER_INSIGHTS_ERROR", "CRA_REPORT_ERROR", "CREDIT_PROFILE_REPORT_ERROR", "ENCOMPASS_ERROR", "ENRICH_ERROR", "FRAUD_INSIGHTS_ERROR", "FREDDIE_MAC_ERROR", "IDEMPOTENCY_ERROR", "INCOME_VERIFICATION_ERROR", "INSTITUTION_ERROR", "INVALID_INPUT", "INVALID_REQUEST", "INVALID_RESULT", "ITEM_ERROR", "LINK_DELIVERY_ERROR", "MICRODEPOSITS_ERROR", "OAUTH_ERROR", "PARTNER_ERROR", "PAYMENT_ERROR", "PROFILE_ERROR", "RATE_LIMIT_EXCEEDED", "RECAPTCHA_ERROR", "RECURRING_TRANSACTIONS_ERROR", "SANDBOX_ERROR", "SIGNAL_ERROR", "STATEMENTS_ERROR", "TRANSACTIONS_ERROR", "TRANSACTION_ERROR", "TRANSFER_ERROR", "TRANSFER_RECURRING_ERROR", "TRANSFER_REFUND_ERROR", "USER_ERROR"

Code that breaks

switch (response) {
  // existing branches …
  // no branch for "CRA_PARTNER_INSIGHTS_ERROR"
  // no branch for "CRA_REPORT_ERROR"
  default:
    throw new Error("unexpected value");
}

Based on Plaid’s published API specification. How severity is decided.