AbleCommerce unable to process payment after initial rejection

If a payment for an anonymous order does not go through the first time for whatever reason (invalid card number, payment gateway timeout, etc.) subsequent attempts to submit a payment for that order will fail with the error:

Value cannot be null. Parameter name: request.Payment.Order.User

This is due to a bug in AbleCommerce that causes the user ID associated with the order to be removed. This is the correct action for anonymous orders that have been completed, but in this case order processing is not yet complete.

To work around the issue you have to dive into the database and add the anonymous user’s ID back to the order record. After this step has been done the next attempt to process a payment should proceed normally. This has to be done after each payment failure.