Something wrong when a pending contribution is changed manually to completed
We usually offer the possibility to pay with credit card or with pay later via cash or EFT.
Pay later contributions are registered as pending. Then when we receive the payment in some cases we modify the status of the payment to completed (also date received). This creates a payment with the amount of the contribution but without the payment method. Then if we try to update the payment method the process crashes with a 500 (the update screen remains with the logo of CiviCRM turning indefinitely).
Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred. Mandatory key(s) missing from params array: payment_instrument_id Return to home page.
The error can be reproduced at dmaster.
Note that if instead of changing contribution status we record the payment, this works well.