Failmail search: "Failmail alert Validation error during recurring charge, in field: payment_method/id" "paypal"
Low priority since the first in weeks affecting paypal, however it's one of the many "Payment method has not been successfully stored" errors returned by Gravy unexpectedly without knowing exactly what it means; it was successfully stored in the past, so why the message? What changed? Why now it starts failing? etc.
Failmail logged error:
paypal. . {"recurring_payment_token":"4be102b9-c204-4305-9b13-e166443776a0","amount":1.75,"currency":"GBP","first_name":"xxx","last_name":"xxx","email":"xxx@xxx.co.uk","country":"GB","order_id":"250383642.2","installment":"recurring","description":"Wikimedia 877 600 9454","recurring":true,"user_ip":"xxx","processor_contact_id":null,"payment_service_id":"b4e49424-f463-4d0d-b05a-b427a4d21c95","fiscal_number":null}. Validation error during recurring charge, in field: payment_method/id. Message: Payment method has not been successfully stored. Current status: failed.. Response: {"type":"error","code":"bad_request","status":400,"message":"Request failed validation","details":[{"location":"body","pointer":"/payment_method/id","message":"Payment method has not been successfully stored. Current status: failed.","type":"value_error"}]}Notes from investigation:
- Payment method id 4be102b9-c204-4305-9b13-e166443776a0 (PayPal); this failed because the payment method has now status failed, but Gravy doesn't expose when and why its status changed (topic flagged in this phab discussion T436299: [ Discussion ] Evaluate how to best handle changes to payment methods for recurring contributions in Gravy, similar to the ACH recent investigation T435615: [ACH] Validation error: Payment method has not been successfully stored). However, if you see the transactions of this payment method, a month ago this payment method was successfully stored and charged.
- PayPal profile tells us nothing about this failure
- Asked Gravy to provide inputs in Slack since we don't seem to have access to the required information to understand why it failed, and so if it's a normal behavior vs a bug: https://wikimedia.slack.com/archives/C070F1DVBRN/p1788788599288979?thread_ts=1787595063.506599&cid=C070F1DVBRN