Driftwatch

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

Breakingdirection flip: their tools call this safe

warning_code can now return "BANK_INCOME_INSIGHTS_INCOMPLETE", "BANK_INCOME_INSIGHTS_INSUFFICIENT_DATA", "BANK_INCOME_INSIGHTS_INTERNAL_ERROR", "BANK_INCOME_INSIGHTS_MISMATCHED_DAYS_REQUESTED", "BANK_INCOME_INSIGHTS_STATUS_IN_PROGRESS"

What changed

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

Affects warning_code on Warning reachable from 3 operations.

New values: BANK_INCOME_INSIGHTS_INCOMPLETE, BANK_INCOME_INSIGHTS_INSUFFICIENT_DATA, BANK_INCOME_INSIGHTS_INTERNAL_ERROR, BANK_INCOME_INSIGHTS_MISMATCHED_DAYS_REQUESTED, BANK_INCOME_INSIGHTS_STATUS_IN_PROGRESS.

can now return "BANK_INCOME_INSIGHTS_INCOMPLETE", "BANK_INCOME_INSIGHTS_INSUFFICIENT_DATA", "BANK_INCOME_INSIGHTS_INTERNAL_ERROR", "BANK_INCOME_INSIGHTS_MISMATCHED_DAYS_REQUESTED", "BANK_INCOME_INSIGHTS_STATUS_IN_PROGRESS"

Who is affected

Code that reads Plaid's Warning objects, used by 3 Plaid operations.

Before and after

WhereBeforeAfter
Warning.warning_code"INVESTMENTS_UNAVAILABLE", "OWNERS_UNAVAILABLE", "TRANSACTIONS_UNAVAILABLE""BANK_INCOME_INSIGHTS_INCOMPLETE", "BANK_INCOME_INSIGHTS_INSUFFICIENT_DATA", "BANK_INCOME_INSIGHTS_INTERNAL_ERROR", "BANK_INCOME_INSIGHTS_MISMATCHED_DAYS_REQUESTED", "BANK_INCOME_INSIGHTS_STATUS_IN_PROGRESS", "INVESTMENTS_UNAVAILABLE", "OWNERS_UNAVAILABLE", "TRANSACTIONS_UNAVAILABLE"

Code that breaks

switch (response.warning_code) {
  // existing branches …
  // no branch for "BANK_INCOME_INSIGHTS_INCOMPLETE"
  // no branch for "BANK_INCOME_INSIGHTS_INSUFFICIENT_DATA"
  // no branch for "BANK_INCOME_INSIGHTS_INTERNAL_ERROR"
  // no branch for "BANK_INCOME_INSIGHTS_MISMATCHED_DAYS_REQUESTED"
  // no branch for "BANK_INCOME_INSIGHTS_STATUS_IN_PROGRESS"
  default:
    throw new Error("unexpected warning_code");
}

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