Title: Intermittent Webhook Issue
Last modified: March 25, 2026

---

# Intermittent Webhook Issue

 *  Resolved [gerold1968](https://wordpress.org/support/users/gerold1968/)
 * (@gerold1968)
 * [2 months, 2 weeks ago](https://wordpress.org/support/topic/intermittent-webhook-issue/)
 * For some orders paid via the order-pay page, Stripe sends the payment_intent.
   succeeded webhook, and my site returns 200 OK. However, the order status does
   not update, and absolutely no errors are logged in the WooCommerce fatal errors
   or the plugin’s own logs. What early bail-out conditions in your webhook handler
   cause a silent 200 OK without updating the order?
 * Best Gerold

Viewing 7 replies - 1 through 7 (of 7 total)

 *  Plugin Author [Clayton R](https://wordpress.org/support/users/mrclayton/)
 * (@mrclayton)
 * [2 months, 2 weeks ago](https://wordpress.org/support/topic/intermittent-webhook-issue/#post-18862516)
 * Hi [@gerold1968](https://wordpress.org/support/users/gerold1968/)
 * Thank you for contacting Payment Plugins. The plugin will early return a 200 
   response code to the `payment_intent.succeeded` webhook if the order has already
   been paid or there is an order lock, which lasts 2 minutes. If that happens, 
   the following log entry is written to the `wc-stripe` log file:
 *     ```wp-block-code
       payment_intent.succeeded event received. Intent has been completed for order %s. Event exited.
       ```
   
 * But the order lock is only applied in certain conditions like a local payment
   method being processed. The order lock prevents the webhook from double processing
   a request.
 * Typically the order status is not managed by the webhook events. It’s only for
   payment methods that take hours or days to process that the order status is managed
   by the webhook event.
 * Kind Regards
 *  Thread Starter [gerold1968](https://wordpress.org/support/users/gerold1968/)
 * (@gerold1968)
 * [2 months, 2 weeks ago](https://wordpress.org/support/topic/intermittent-webhook-issue/#post-18862527)
 * Hey there, thx for super-fast reply with tech insight. I appreciate!
 * Best Gerold
 *  Thread Starter [gerold1968](https://wordpress.org/support/users/gerold1968/)
 * (@gerold1968)
 * [2 months, 2 weeks ago](https://wordpress.org/support/topic/intermittent-webhook-issue/#post-18863359)
 * Hi Clayton,
 * I was able to narrow this down further.
 * For affected orders (order-pay / retry cases):
    - `payment_intent.succeeded` webhook is received (200 OK)
    - Action Scheduler job `wc_stripe_process_deferred_webhook` is created and **
      completed**
    - but the order remains `pending`
    - no transaction ID
    - no “payment completed” order note
 * Example scheduled action data:
    - type: `payment_intent.succeeded`
    - order_id: `23`555
    - payment_intent: `pi_3TExngHodsEAhbgg555cOu`
 * From reviewing the code of the plugin, the issue seems to be in the deferred 
   handler:
    - it ignores the scheduled `payment_intent` argument
    - it does not sync `_payment_intent` meta from the webhook payload
    - it relies solely on `process_payment( $order )`
    - and it has no logging if that returns `WP_Error` or `complete_payment = false`
 * So in these cases, the webhook is received and processed, but the deferred handler
   silently exits without completing the order.
 * This seems to affect order-pay / reused pending orders specifically, where local
   order state and Stripe state may be out of sync.
 * Best,
   Gerold
 * Best Gerold
 *  Plugin Author [Clayton R](https://wordpress.org/support/users/mrclayton/)
 * (@mrclayton)
 * [2 months, 2 weeks ago](https://wordpress.org/support/topic/intermittent-webhook-issue/#post-18863754)
 * Hi [@gerold1968](https://wordpress.org/support/users/gerold1968/)
 * > it ignores the scheduled `payment_intent` argument
 * It’s not ignoring the argument, it just doesn’t need it. The plugin fetches the
   payment intent object in the `process_payment` method. You should never rely 
   on a stale object but rather fetch the object when the scheduled job runs. That
   ensures you have the most up to date data, which is what the plugin does.
 * I will have that code re-tested but based on past test scripts there aren’t any
   issues with how the deferred webhook handler works.
 * Kind Regards
 *  Thread Starter [gerold1968](https://wordpress.org/support/users/gerold1968/)
 * (@gerold1968)
 * [2 months, 2 weeks ago](https://wordpress.org/support/topic/intermittent-webhook-issue/#post-18866030)
 * Hi, I figured it out for my setup. Suggestion: log if a webhook is recieved but
   no actio taken?
 * Best Gerold
 *  Plugin Author [Clayton R](https://wordpress.org/support/users/mrclayton/)
 * (@mrclayton)
 * [2 months, 2 weeks ago](https://wordpress.org/support/topic/intermittent-webhook-issue/#post-18866090)
 * Hi [@gerold1968](https://wordpress.org/support/users/gerold1968/)
 * For the `payment_intent.succeeded` event the plugin does log the following message:
 *     ```wp-block-code
       payment_intent.succeeded event received. Intent has been completed for order %s. Event exited.
       ```
   
 * What was the root cause?
 * Kind Regards
 *  Thread Starter [gerold1968](https://wordpress.org/support/users/gerold1968/)
 * (@gerold1968)
 * [2 months, 1 week ago](https://wordpress.org/support/topic/intermittent-webhook-issue/#post-18866537)
 * Hi, I meant to log if a webhook is sent with no errors (200) BUT the order isnt
   updated to paid.
 * I am not sure about the root cause by now, I cant reproduce it on staging, so
   troubleshooting is difficult.
 * Best Gerold

Viewing 7 replies - 1 through 7 (of 7 total)

You must be [logged in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fintermittent-webhook-issue%2F%3Foutput_format%3Dmd&locale=en_US)
to reply to this topic.

 * ![](https://ps.w.org/woo-stripe-payment/assets/icon-256x256.png?rev=2611337)
 * [Payment Plugins for Stripe WooCommerce](https://wordpress.org/plugins/woo-stripe-payment/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/woo-stripe-payment/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/woo-stripe-payment/)
 * [Active Topics](https://wordpress.org/support/plugin/woo-stripe-payment/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/woo-stripe-payment/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/woo-stripe-payment/reviews/)

 * 7 replies
 * 2 participants
 * Last reply from: [gerold1968](https://wordpress.org/support/users/gerold1968/)
 * Last activity: [2 months, 1 week ago](https://wordpress.org/support/topic/intermittent-webhook-issue/#post-18866537)
 * Status: resolved