View Issue Details

IDProjectCategoryView StatusLast Update
0007888module PayPal Checkoutmodule PayPal checkout - subpublic2026-02-03 10:02
Reportermount7 Assigned To 
PrioritynormalSeverityminorReproducibilitysometimes
Status resolvedResolutionfixed 
Product Version2.6.4 / 3.5.2 
Target Version2.6.5 / 3.5.3Fixed in Version2.6.5 / 3.5.3 
Summary0007888: Race Condition zwischen Frontend Call und Webhook führt zu "422 ORDER_ALREADY_CAPTURED"
DescriptionIn 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 Reproduce1. Normale Paypal Bestellung
2. Paypal Popup bestätigen
3. Frontend request muss langsamer sein als Webhook request (Zufall?)
Additional InformationSimulation 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.
TagsNo tags attached.

Activities

QA

2026-01-30 13:05

administrator   ~0018340

QA - ES