CiviCRM 5.16.3 Event uses price sets

Background: We offered a $40.00 price set option for an event that later became free. We created a new price set option for $0.00, disabled the old one, and updated the registration to select the new one. After this, the contribution changed status to 'Pending Refund'. We click more > record refund, the refund due is $40.00, we enter the date, payment method, transaction ID, fee amount, etc. and click 'Record Refund'. The green triangle spins forever, nothing happens, and we do not see an error message in the Civi log viewer or in our error.log from apache. Suggestions for how to proceed?

Update - 9/6/2019. We can make a test contribution as 'Check' and it refunds without a problem. We also created another registration for this event, and paid by check, going through the same pattern, and it was unable to be refunded (same error). Thus, it does not seem to be limited to a payment processor error?

I followed this guide (https://docs.civicrm.org/dev/en/latest/tools/debugging/) and then enabled various forms of debugging and eventually got the page to display the error:

Error: Call to undefined function bccomp() in CRM_Financial_BAO_Payment::isPaymentCompletesContribution() (line 545 of /srv/www/www.biodynamics.com/public_html/sites/all/modules/civicrm/CRM/Financial/BAO/Payment.php)

Record Refund

  • I've seen situations where errors from the card processor don't get displayed and things just spin forever. Try this: instead of clicking and bringing up the overlay form, open in new tab/window. When you submit the form, you might get the error that is being lost in the overlay.
    – ericG
    Commented Sep 5, 2019 at 0:17
  • I now get: "Error: The website encountered an unexpected error. Please try again later." no error hits the log with debugging on (it seems)
    – Zachary
    Commented Sep 5, 2019 at 0:38
  • does this have to do with the processor? we manually refunded via iats, and then wanted this to reflect the refund. fyi - i get the same error no matter what 'payment method' i choose
    – Zachary
    Commented Sep 5, 2019 at 1:07

1 Answer 1


Apparently our PHP installation was missing the bcmath package which bccomp() needs. By installing the package via php7.1-bcmath we were able to then process the refunds accordingly. Did not see it here (https://docs.civicrm.org/sysadmin/en/latest/requirements/) but I could be missing something?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.