# API version dropped while old app live: pre-release checklist

Source: https://releasefailures.com/incidents/api-version-dropped-while-old-app-live/
Content version: 1.0.0
Verified on: 2026-10-21
Licence: CC BY 4.0

Definition: The backend removes an API version still used by installed app versions.
- [ ] PR-01 Keep one contract test per client version still in distribution, including each old command-line release, and run all of them against the API before a version retirement takes effect. (test class: Contract tests)
- [ ] PR-02 Run the contract suite of every client pinned to the API version being retired against a staging environment with the retirement switched on, and block the retirement if any contract fails. (test class: Contract tests)
- [ ] PR-03 Add a contract test that pins the response a retired API version returns, so old clients receive a version-retired message and a minimum client version. (test class: Contract tests)
- [ ] PR-04 Query request logs for calls per API version before the end-of-life date and block the retirement config change while the retired version still receives requests. (test class: Configuration and environment tests)
- [ ] PR-05 Confirm the end-of-life date for each API version is a configuration value that can be moved to a later date without a deploy. (test class: Configuration and environment tests)
- [ ] PR-06 Schedule a production probe that calls the API with each oldest still-supported version and alerts on any HTTP 410 response. (test class: Synthetic monitoring)
- [ ] PR-07 Schedule a production check that runs the oldest still-distributed upload command-line version against the release upload endpoint and alerts on failure. (test class: Synthetic monitoring)
