REPLAYRecorded run from 2026-10-23, played on its recorded clock by the same view a live run uses. Nothing here is live.

Small online shop: card order with webhook resendRun 20261023231552-60ea96BUG

BUG: one payment event was fulfilled twice.

Event WH-23242717T8452430B-4FP87531JX1278159 was delivered 2 times and fulfilled 2 times.

Recorded clock 1m 58s of 1m 58s
2 of 2 accepted, 2 of 2 verified

Finished

All 2 steps done. 2 of 2 webhooks arrived, all verified.

Steps
2 of 2
Amount in calls
USD 25
Slowest arrival
20s
Verified
2 of 2

Steps

What Rehearsal sent, and what arrived back

  1. Done

    Step 1, Rehearsal sent

    Payment captured

    USD 25

    PayPal accepted

    Arrived 20s after the call1st to arrive

    Arrived

    • Payment completedVerified
    Details
    Step kind
    card_order
    Step id
    order
    Request
    POST /v2/checkout/orders
    order_id
    3Y2144672G186725Y
    capture_id
    80644537PH409550V
    Started
    2026-10-23 23:15:53 UTC
    PayPal answered
    2026-10-23 23:15:56 UTC
    Engine detail
    captured USD 25.00 by card, no human step
    Event type
    PAYMENT.CAPTURE.COMPLETED
    Event id
    WH-23242717T8452430B-4FP87531JX1278159
    Received
    2026-10-23 23:16:17 UTC
    Signature check
    verified: PayPal's verify call said SUCCESS (2 of 2 copies)
    Store action
    fulfilled
    Latency
    20s, from the step finishing to the store recording the event
  2. Done

    Step 2, Rehearsal sent

    Asked PayPal to resend an event

    PayPal accepted

    Arrived 4s after the call2nd to arrive

    Arrived

    • PayPal delivered it again; the store fulfilled the order a second timeVerified
    Details
    Step kind
    resend_webhook
    Step id
    resend-capture
    Request
    POST /v1/notifications/webhooks-events/{event_id}/resend
    resent_event_id
    WH-23242717T8452430B-4FP87531JX1278159
    webhook_id
    4DE52141J0303334X
    Started
    2026-10-23 23:15:56 UTC
    PayPal answered
    2026-10-23 23:17:47 UTC
    Engine detail
    asked PayPal to redeliver PAYMENT.CAPTURE.COMPLETED WH-23242717T8452430B-4FP87531JX1278159 to webhook 4DE52141J0303334X
    Event type
    PAYMENT.CAPTURE.COMPLETED (second delivery)
    Event id
    WH-23242717T8452430B-4FP87531JX1278159
    Received
    2026-10-23 23:17:51 UTC
    Signature check
    verified: PayPal's verify call said SUCCESS (2 of 2 copies)
    Store action
    fulfilled 2 times
    Latency
    4s, from the step finishing to the store recording the event

Finder verdict duplicate-webhook

BUG Check: A redelivered capture event fulfills the order twice

Expected
one fulfillment for an event id, however many times it is delivered
Observed
event WH-23242717T8452430B-4FP87531JX1278159 was delivered 2 times and fulfilled 2 times
Likely fix
treat the webhook event id as an idempotency key: record it and ignore an event already seen before fulfilling

The verdict comes from the store's verified records of this run's events, or from PayPal's own read-back, depending on the check. With no such record it says INCONCLUSIVE, never OK.

Where this replay comes from
  • evidence/runs/20261023231552-60ea96.json
  • evidence/finder/2026-10-23-duplicate-webhook-before-fix.md
  • store state endpoint, read during the run (store rows 23:16:17 and 23:17:51, both verified, cert host api.sandbox.paypal.com)

The store records events to the second, so latencies are shown to the second. Events went to the sample store's webhook 4DE52141J0303334X.

After the store's one-line fix: run 20261024011812-208f4e