Plaid breaking change: 44.0.0
What changed
ItemProductsTerminateReasonCode/UserProductsTerminateReasonCode removed; InterestOnly serialization change
From the upstream announcement:
Merge pull request #718 from plaid/generated_20260722T174500Z
Who is affected
Two mechanical edits cover the real breakage.
To find out whether your repo is hit — file and line number, no code leaving your machine:
npx mendapi scan --repo .
How to fix it
mendapi ships a deterministic migration pack for this change (plaid-node-v43-v44-breaking-renames). Preview the patch locally (dry-run is the default; nothing is modified without --apply):
npx mendapi fix --repo . --migration plaid-node-v43-v44-breaking-renames
The pack is idempotent, gold-regression tested, and safe on partially migrated code.
What the migration does:
Two mechanical edits cover the real breakage. (1) Replace every reference to ItemProductsTerminateReasonCode or UserProductsTerminateReasonCode with ProductsTerminateReasonCode - a pure type-name rename map, accepted JSON values are unchanged. (2) Any code comparing StudentRepaymentPlanType values against the raw string 'interest-only' must switch to 'interest only'; the enum member name is unchanged so enum-based comparisons need no edit. Both are safe token-level rewrites.
Before:
const code: ItemProductsTerminateReasonCode = reason;
if (plan.type === 'interest-only') { ... }
After:
const code: ProductsTerminateReasonCode = reason;
if (plan.type === 'interest only') { ... }
Detected and tracked by mendapi — Dependabot for every API you depend on. Scans run locally; your code never leaves your machine.
Related
- All monitored providers — live change counts for plaid and 19 others.
- Migration pack catalog — every deterministic fix mendapi ships.
- Getting started — scan your repo in 30 seconds, no code leaves your machine.