← All breaking-change reports

Plaid breaking change: 44.0.0

plaid · breaking · 2026-07-23 · upstream source

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

Pre-release. Change data is recorded from upstream provider releases, changelogs and OpenAPI spec diffs; every article links its source.