Page MenuHomePhabricator

PayPal recurring fail wellness check
Closed, ResolvedPublic2 Estimated Story Points

Description

This task is a request to determine whether a recurring donation failed for an ordinary or a buggy reason. The donor in CID 51505520 reached out to us in Zendesk to ask why their recurring donation didn't process. It should have processed most recently on March 7th, but there are no attempts visible at Gravy and the recurring auto-canceled in Civi after three attempts.

The donor had received no prior communication from PayPal, and we advised them to check with PayPal to see whether they needed to update their account. They got an irrelevant answer from PayPal, so we reached out to PayPal support. PayPal says:

I'm not seeing that the payment is a recurring payment associated with any subscription. However, I am seeing that you do have an active Billing Agreement with the donor. This may explain why they weren't able to get details for the subscription because its a Billing Agreement using Reference Transactions or Tokenization rather than an automatic subscription.

This particular transaction: 19K86468XF8662631 Date: Feb 06, 2026, 5:03:15 PM MST was processed as a Reference Transaction in conjunction with a billing agreement. Billing Agreement: B-2T580797LC2936001 If the donor has given permission, I would recommend trying the payment again since the Billing Agreement is still active.

At the PayPal console they do not offer us the usual option More Actions > View Recurring Payment Details for the Feb 6th donation, or visibility for the March attempt.

Does this look like an ordinary failed PayPal recurring, or was the donor somehow able to create a recurring donation outside of our usual flow?

Details

Event Timeline

There was an older issue that might have been like this, putting a placeholder comment here to update once I find it

Looks like it failed with a validation error at Gravy

2026-03-07 18:27:23,513 ERROR civicrm.wmf.INFO: Charging contribution_recur id: 2734476 with invoice_id: 244755570.2
2026-03-07 18:27:23,679 ERROR civicrm.wmf.INFO: Error: 1000014 invoice_id:244755570.2
2026-03-07 18:27:23,679 ERROR civicrm.wmf.INFO: Raw response: {"type":"error","code":"bad_request","status":400,"message":"Request failed validation","details":[{"location":"body","pointer":"\/buyer_id","message":"Input should be a valid UUID, invalid character: expected an optional prefix of urn:uuid: followed by [0-9a-fA-F-], found Q at 5","type":"uuid_parsing"}]}

Change #1260074 had a related patch set uploaded (by Wfan; author: Wfan):

[wikimedia/fundraising/SmashPig@master] Do not send buyer_id for paypal

https://gerrit.wikimedia.org/r/1260074

Change #1260074 abandoned by Wfan:

[wikimedia/fundraising/SmashPig@master] Do not send buyer_id for paypal

Reason:

ejegg done data clean up from db directly

https://gerrit.wikimedia.org/r/1260074

https://gerrit.wikimedia.org/r/c/mediawiki/extensions/DonationInterface/+/1260070 remove payment_processor_id and elliott clean the saved payment_processor_id from civicrm_contribution_recur_smashpig directly from db. so should works for unfailed paypal recur

Here's a searchkit to find all the people affected with a cancel_date after Feb 28th: https://civicrm.wikimedia.org/civicrm/search#/display/Recurrings_cancelled_from_paypal_error_T420651 (1363 results). It's not yet filtering out people who have another active recurring, but I can probably add that.

AnnWF set the point value for this task to 2.Apr 7 2026, 8:57 PM
AnnWF set Final Story Points to 2.