Timestamp-only cursors on the source API let every edited record fall outside the sync window after the first successful pull. The receiving system never receives an explicit delete or update flag, so the stale row simply ages out of view.
Procurement teams then run spend reports against the incomplete supplier master. Duplicate or outdated bank details stay live because nothing triggered a reconciliation job.
AI models trained on that feed inherit the same blind spot. They learn to trust the first-seen values and flag later corrections as anomalies.
Most vendors ship default cursor logic that only tracks creation time because it simplifies their demo. Buyers rarely add an explicit last-modified index or change-data-capture feed before go-live.
The fix requires a separate audit table or event stream that records every field mutation with its own sequence number. Without it, nightly jobs continue to ship partial truth.
Contract clauses that treat the integration as a one-time data load make the problem permanent. Post-launch changes to cursor behaviour then hit the same change-control wall as any other scope item.
Run a weekly diff between source system totals and EDRMS counts on mutable fields. Any growing gap signals that the cursor design has already started pruning real updates.