Driftwatch

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

Breakingdirection flip: their tools call this safe

value can now return "client_return_recovered", "guarantee_reimbursed", "plaid_return_recovered"

What changed

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

Affects this value on TransferEventType reachable from 2 operations.

New values: client_return_recovered, guarantee_reimbursed, plaid_return_recovered.

can now return "client_return_recovered", "guarantee_reimbursed", "plaid_return_recovered"

Who is affected

Code that reads Plaid's TransferEventType objects, used by 2 Plaid operations.

Before and after

WhereBeforeAfter
TransferEventType"cancelled", "failed", "funds_available", "guaranteed", "pending", "posted", "refund.cancelled", "refund.failed", "refund.pending", "refund.posted", "refund.return_swept", "refund.returned", "refund.settled", "refund.swept", "return_swept", "returned", "settled", "sweep.failed", "sweep.funds_available", "sweep.pending", "sweep.posted", "sweep.returned", "sweep.settled", "swept", "swept_settled""cancelled", "client_return_recovered", "failed", "funds_available", "guarantee_reimbursed", "guaranteed", "pending", "plaid_return_recovered", "posted", "refund.cancelled", "refund.failed", "refund.pending", "refund.posted", "refund.return_swept", "refund.returned", "refund.settled", "refund.swept", "return_swept", "returned", "settled", "sweep.failed", "sweep.funds_available", "sweep.pending", "sweep.posted", "sweep.returned", "sweep.settled", "swept", "swept_settled"

Code that breaks

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

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