## TL;DR
A five-day gap in a Plaid import is usually a cursor or item problem, not missing bank data. Check the Plaid item status and error for that window, inspect where the sync cursor stopped, and pull the gap dates through a date-ranged transactions request. Import the backfill with bank transaction ids intact so the days either side dedupe instead of doubling.

```text
"transactions missing from 2026-10-01 to 2026-10-05" error in the Plaid bank import
```

## Use this when
- Transactions exist at the bank for 2026-10-01 to 2026-10-05 but never arrived in the ERP.
- Days before and after the gap imported normally through the same Plaid link.
- The Plaid item shows a consent, login, or sync event inside or near the gap window.

## Not for this skill when
- The bank link is fully disconnected and nothing imports at all. Reconnect the item first.
- The bank itself shows no transactions in the window. There is no gap to backfill.

## Steps
1. Open the Plaid item status and event history for the gap window and note any login-required, consent-expired, or error states. Verify: the item state during the gap is known, not assumed
2. Record the last successful sync cursor or timestamp before the gap and the first successful one after it. Verify: the cursor history brackets the missing dates
3. Request transactions for exactly 2026-10-01 to 2026-10-05 through the Plaid transactions endpoint or the ERP backfill tool. Verify: the returned count and total are visible before importing
4. Import the backfill with original transaction ids and run the dedupe check against the neighbouring days. Verify: no transaction from 2026-09-30 or 2026-10-06 is duplicated
5. Resume normal sync and confirm new transactions flow, then reconcile the backfilled window. Verify: the gap dates reconcile with no unmatched residue

## Variant phrasings
### Plaid transactions missing date range sync gap
The sync-gap phrasing.
### Plaid import skipped days backfill transactions
When the fix is a targeted backfill.

Compatibility: Plaid Transactions sync used by QuickBooks, Xero, NetSuite connectors, and custom ERP integrations.

## Why it happens
Plaid sync is cursor-based: the client asks what changed since the last cursor and trusts the answer. If the cursor advances during an item error, a consent renewal, or a pending-transaction cleanup, the skipped changes are never re-offered, and the gap is silent because later syncs succeed. Date-ranged pulls bypass the cursor, which is why they recover data the incremental sync insists is current.

## Edge cases / pitfalls
- Pending transactions that post after the window can shift dates by a day. Search plus or minus two days before declaring an item missing.
- Some banks delay Plaid availability for several days after posting. A recent gap may close itself; a gap weeks old will not.
- After a reconnect, Plaid may offer historical refresh that overlaps the backfill. Keep transaction ids as the dedupe key during that overlap.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_zFcMteRjpSp87TwVLHfZFQ
