1

On a Civi 5.62.1 or 5.58.1 and WP 6.2.2 vanilla with all plugins except CiviCRM activated and 2023 theme, I am hitting this error upon adding or editing ANY payment processor (Stripe, Dummy, PayPal Standard, etc).

The payment processor technically does save to civicrm_payment_processortable, but not cleanly. Unsure of "NO DESCRIPTION SET" actually means. I did set a description on the processor.

Civi Error:

Exception: "Cannot determine api action for CRM_Admin_Form_PaymentProcessor.CRM_Core_Action "NO DESCRIPTION SET" not recognized."

#0 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Form/EntityFormTrait.php(357): CRM_Core_Form->getApiAction()
#1 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Admin/Form/PaymentProcessor.php(69): CRM_Admin_Form_PaymentProcessor->setEntityFieldsMetadata()
#2 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Form/EntityFormTrait.php(295): CRM_Admin_Form_PaymentProcessor->setEntityFields()
#3 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(379): CRM_Admin_Form_PaymentProcessor->setTranslatedFields()
#4 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(457): CRM_Core_Form->__construct(NULL, NULL, "post", "PaymentProcessor")
#5 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller/Simple.php(64): CRM_Core_Controller->addPages(Object(CRM_Core_StateMachine), NULL)
#6 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Wrapper.php(62): CRM_Core_Controller_Simple->__construct("CRM_Admin_Form_PaymentProcessor", NULL, NULL, FALSE, FALSE, FALSE, FALSE)
#7 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(292): CRM_Utils_Wrapper->run("CRM_Admin_Form_PaymentProcessor", NULL, (Array:0))
#8 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem((Array:16))
#9 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke((Array:4))
#10 /home/example/public_html/wp-content/plugins/civicrm/civicrm.php(1199): CRM_Core_Invoke::invoke((Array:4))
#11 /home/example/public_html/wp-includes/class-wp-hook.php(308): CiviCRM_For_WordPress->invoke("")
#12 /home/example/public_html/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters("", (Array:1))
#13 /home/example/public_html/wp-includes/plugin.php(517): WP_Hook->do_action((Array:1))
#14 /home/example/public_html/wp-admin/admin.php(259): do_action("toplevel_page_CiviCRM")
#15 {main}

and

Deprecated: Deprecated function CRM_Financial_BAO_PaymentProcessor::retrieve, use API. in /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php on line 1096

The server error is:

Thu Jun 29 21:23:09.727747 2023] [core:error] [pid 17875:tid 23033501107968] [remote 216.196.254.35:33585] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: https://example.org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2FpaymentProcessor%2Fedit&action=update&id=4&reset=1

FWIW, I am able to save other entities like groups, SMS providers and profiles.

Site is only set to non-www everywhere. Thoughts?

Feels like a redirect issue. I've reviewed .htaccess and it is just the standard installation.

Apache Version: 2.4.57

Occurs on both PHP 7.4 and 8.0

Update on 5.63.3:

The payment processor add or edit screen does not load, even if accessing from a payment processor search in SK.

enter image description here

Only a warning is logged:

[warning] Deprecated function CRM_Financial_BAO_PaymentProcessor::retrieve, use API. 

A related issue: On membership contribution pages, the contribution fails to record and shows "Failed to update contribution in database " on the front-end with a URL e.g.

https://example.org/civicrm/contribute/transact/?_qf_Main_display=true&qfKey=CRMContributeControllerContributionngt357t9bnkwggs0k4gocc0wgwwk4g8k0cwscow4k0kwk84oc_1801

and results in this error:

[error] CRM_Contribute_Form_Contribution_Confirm::completeTransaction CRM_Core_Exception: DB Constraint Violation - status_id should possibly be marked as mandatory for Membership,create API. If so, please raise a bug report.

and a few second later:

[error] StripeIPN: processWebhookEvent failed. EventID: evt_1NenHpK2puNhrOvhitPjYPxK : DB Constraint Violation - status_id should possibly be marked as mandatory for Membership,create API. If so, please raise a bug report. 

The status of the contribution remains in pending, but the line item is completed:

enter image description here

In Stripe, it shows the subscription is active. So, the issue is on the return back to CiviCRM to update the recurring contribution status and the contribution status also: enter image description here

The invoice.payment_succeeded Stripe webhook shows success:

enter image description here

This bad behavior occurs with an auto-renew membership required and a one-time membership. Disabling premiums made no difference. So all instances of membership contributions.

Regular contributions process OK.

6
  • When you try to do this from the user interface does it refresh the page when you choose the payment processor? If so I'm having the same problem. No fix, sorry.
    – Cozy4907
    Jun 30, 2023 at 15:13
  • Yes, they refresh OK. Seems like a LimitInternalRecursion redirect issue.
    – Andy Burns
    Jun 30, 2023 at 15:20
  • Do you have the Admin UI extension enabled? If so try disabling it.
    – Coleman
    Jun 30, 2023 at 19:33
  • No Admin UI extension. I've disabled all extensions.
    – Andy Burns
    Jun 30, 2023 at 19:50
  • Do you have access to the db. Could you look at the payment processor table in case you can spot anything odd there. There is (should be) a description field in there but don't see why it would be complaining. unlikely to be a helpful comment but only idea i have
    – petednz - fuzion
    Jun 30, 2023 at 22:21

0

Your Answer

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