View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0007888 | module PayPal Checkout | module PayPal checkout - sub | public | 2026-01-30 12:11 | 2026-02-03 10:02 |
| Reporter | mount7 | Assigned To | |||
| Priority | normal | Severity | minor | Reproducibility | sometimes |
| Status | resolved | Resolution | fixed | ||
| Product Version | 2.6.4 / 3.5.2 | ||||
| Target Version | 2.6.5 / 3.5.3 | Fixed in Version | 2.6.5 / 3.5.3 | ||
| Summary | 0007888: Race Condition zwischen Frontend Call und Webhook führt zu "422 ORDER_ALREADY_CAPTURED" | ||||
| Description | In der Produktivumgebung treten Fehler vom Typ 422 Unprocessable Entity mit der Meldung ORDER_ALREADY_CAPTURED auf. Ursache: Es besteht eine Race Condition im Standard-Checkout-Prozess: Prozess A (Frontend): Das PayPal Button-Skript empfängt das onApprove-Event und sendet einen Request an den Shop um das Capture auszulösen. Prozess B (Backend): Nahezu zeitgleich sendet PayPal den Webhook CHECKOUT.ORDER.APPROVED an den Shop-Server, der ebenfalls versucht, das Capture auszuführen. Wenn der Webhook Request schneller ist wird Bestellprozess mit einem Fehler abgebrochen. | ||||
| Steps To Reproduce | 1. Normale Paypal Bestellung 2. Paypal Popup bestätigen 3. Frontend request muss langsamer sein als Webhook request (Zufall?) | ||||
| Additional Information | Simulation in der Sandbox funktioniert nicht da ein doppeltes Capture mit unterschiedlicher PayPal-Request-Id keinen Fehler auslöst. Die PayPal-Request-Id des Frontend Capture Request und des Webhook Request ist unterschiedlich da die Id von der Session Variable abhängt. | ||||
| Tags | No tags attached. | ||||