We mark orders and authzs as "beganProcessing" in the database, but if a validation gets stuck, that can leave the authorization in the processing state forever. This can cause clients to get stuck, because we're willing to reuse orders which have authorizations in the processing state.
The generic and intuitive fix for this is that processing should have a timeout. Any object which has been moved into the processing state should be considered failed if it hasn't finished and the processing began more than X minutes ago.
Steps to get there:
- Replace the order and authz tables'
beganProcessing bools with timestamps
- Add checks for that timestamp being too far in the past, and return a new shape of error if it is
We mark orders and authzs as "beganProcessing" in the database, but if a validation gets stuck, that can leave the authorization in the processing state forever. This can cause clients to get stuck, because we're willing to reuse orders which have authorizations in the processing state.
The generic and intuitive fix for this is that processing should have a timeout. Any object which has been moved into the processing state should be considered failed if it hasn't finished and the processing began more than X minutes ago.
Steps to get there:
beganProcessingbools with timestamps