# Subscription renewal skipped: pre-release checklist

Source: https://releasefailures.com/incidents/subscription-renewal-skipped/
Content version: 1.0.0
Verified on: 2026-10-21
Licence: CC BY 4.0

Definition: Scheduled renewals do not run or run with stale plan data after a billing job change.
- [ ] PR-01 Write a unit test that feeds the subscription renewal handler a gateway response with missing fields and confirm it records a handled failure instead of raising a null pointer exception. (test class: Unit tests)
- [ ] PR-02 Write a unit test for the collect-invoice handler with each documented direct debit gateway error response and confirm each one marks the transaction failed with a reason. (test class: Unit tests)
- [ ] PR-03 Run a subscription renewal through the direct debit gateway sandbox after any change to the payment code path and confirm the renewal invoice is collected. (test class: Integration tests)
- [ ] PR-04 Run the scheduled renewal job in staging against memberships whose renewal date is today and confirm each one is renewed or recorded as failed. (test class: Integration tests)
- [ ] PR-05 Compare the count of memberships due for renewal with the count the renewal job processed in that staging run and confirm the two match. (test class: Integration tests)
- [ ] PR-06 After a system-wide change, list every scheduled billing job it touches and run each one once in staging before release. (test class: Integration tests)
- [ ] PR-07 Re-run the renewal job twice for the same date in staging and confirm no membership is renewed or charged twice. (test class: Integration tests)
