Vendor UAT almost always passes. That's not reassuring — it's the problem. A self-test is built to demonstrate that the thing works, and it's very good at that. The defects that page you at go-live were never in scope to find.
This isn't a knock on vendors. Their UAT confirms the integration does what the spec says under the conditions the spec assumes. But integrations don't fail on the happy path. They fail on the inputs nobody scripted, the timing nobody guaranteed, and the recovery behavior nobody tested because the test never broke anything.
The happy path is the easy 80%
A typical self-UAT enrolls a clean subject, randomizes them, watches the data land in the EDC, and checks the boxes. Every step is the expected one. The fields are populated, the formats match, the transfer fires. Green across the board.
The trouble is that a live study is mostly not that. It's screen failures after dispensation, re-randomizations, manual corrections, late visits, partial transfers, and the occasional record that arrives in an order the spec didn't promise. The integration's real job is how it behaves when reality doesn't match the script — and that's precisely what a pass-oriented test skips.
Vendor UAT proves the integration can succeed. Integration UAT proves it fails safely.
Where the missed defects live
When I plan integration-specific UAT, the test cases that earn their keep are almost always in the same neighborhoods:
- Error handling. Feed it a record that should fail. Does it reject cleanly, surface to the right person, and stay recoverable — or does it fail silently and leave a gap no one notices until reconciliation?
- Reversals and corrections. Re-randomization, un-randomization, a corrected value upstream. Does the EDC reflect the change, and what happens to what was there before?
- Timing and ordering. Transfers that arrive out of expected order, or before a dependency exists. Does the integration wait, queue, or quietly drop?
- Edge-case subjects. Screen failures, early terminations, subjects who skip an expected step. The states that are rare per subject but guaranteed across a real enrollment.
- Boundary formats. Dates at month ends, empty optional fields, the maximum-length value the spec technically allows.
Independent UAT planning, not more checkboxes
The fix isn't running the vendor's scripts twice. It's a test plan written from the integration's point of view — one that deliberately tries to break the seam in the ways a live study will, develops the scripts to do it, triages the defects that surface, and turns "we ran UAT" into a defensible go-live readiness call.
Done well, it's the cheapest insurance on the study. Every defect caught in a planned UAT scenario is a defect that didn't become a production incident, a reconciliation effort, or a protocol deviation. The goal isn't a prettier test report. It's a go-live that holds.