Every one of these has a cheap check that catches it early and an expensive version that catches it late. This is the list, ordered by how much the late version costs.

The short version. Almost all migration pain comes from six failures, and five of them are caught by counting things before and after.

1. Duplicates that survive

One client becomes two in the new system. Their history splits between the two records. Staff pick whichever they find first, and now both are half right.

This is the failure users notice first and forgive last, because it makes the new system look worse than the old one on day one.