A recorded fixture is a snapshot of a request/response pair captured at one moment and replayed later from disk, which is exactly what the cassette model in libraries like vcrpy and its peers does: developers run real requests once, commit the recording next to the test, and CI replays it without touching the vendor. That is the whole value and the whole risk. The recording freezes a contract that the vendor is free to change whenever they like.
When the vendor adds a field, removes a parameter, or renames a key, your replay keeps returning the old shape. Tests pass. Production does not. Redocly's contract testing primer frames this as the failure that traditional testing misses: a subtle change in response format that no unit test notices. The practical answer for fixture-based suites is not to abandon recordings but to refresh them on a schedule derived from how much the vendor actually changes.
That schedule is what the rest of this article builds. It is a counting exercise, not a judgment call.



