So, an automated renewal failed because I didn't have enough money in my account.

I moved money and went to the payment section website to ask for payment to be taken, but there was no option to do so.

Lesson 1: If you provide autorenewal as an option, and don't provide the ability to "try again", you haven't yet finished implementing this feature.

I then added a backup payment method to see if it would take it automatically. It did.

So that was well implemented, yes?

Well, no, not really: I added the same card again.

Lesson 2: If you're going to validate payment details, validate them. That doesn't just mean checking the card is valid, it means checking your overall payment model makes sense. Your backup and primary should not be identical.

@kevlin, so you turned a bug into a missing feature. Noice.
@mlntdrv Yeah. Seems I do that more than I should have to.