• Resolved Lee

    (@icrashrcfoam)


    Some of our customers are experiencing errors at checkout.
    I have not been able to reproduce this, however we have several, but not all, customers placing duplicate orders. We then need to refund one of them. The WooPayments log has some errors in it.

    Please help. What should we be looking for? We are only using WooPayments for credit card and paypal to complete the transactions on our site.

    The page I need help with: [log in to see the link]

Viewing 15 replies - 1 through 15 (of 19 total)
  • Thread Starter Lee

    (@icrashrcfoam)

    One of our customers responded with this information:
    I only intended to place one order. After clicking the order button it sat for at least a minute spinning, then I received an error (red text saying something about a customer ID issue connected to the payment method that didn’t make much sense) and an email (see below) that the order did not complete, so I created an account and placed it again. The second time it went through immediately. Please only charge and send one order.

    Thread Starter Lee

    (@icrashrcfoam)

    A few minutes ago we updated from PHP version 8.3.25 to 8.5 which broke the backend of our website. We were getting error 502. Then we went to PHP version 8.4.12 which appears to be working on the frontend and backend. Flushed all cache as well.

    Plugin Support LovingBro (woo-hc)

    (@lovingbro)

    Hi @icrashrcfoam,

    I get how worrying duplicate orders and “spinning → error” at checkout can be—thanks for sharing what the customer saw and the PHP changes you made. We’ll zero in on whether this is a checkout/caching issue, a webhook/processing delay, or a conflict.

    Here’s the quickest way to pinpoint it:

    1. Share the exact error + examples
    • A screenshot or exact text of the red error.
    • 2–3 affected Order IDs, the payment method used (WooPayments Card vs PayPal via WooPayments), and approximate timestamps.
    1. WooPayments + WooCommerce logs (same timeframe)
    • Go to WooCommerce → Status → Logs.
    • From the dropdown, select the latest woopayments log, and also today’s fatal-errors log if present.
    • Copy the relevant entries (remove any sensitive data) and paste here.
    1. Exclude checkout from any cache/CDN Long spinners followed by errors and duplicates often come from caching on dynamic endpoints. Please make sure your host/CDN/page cache excludes: /cart/, /checkout/, /my-account/, /wc-api/*, /?wc-ajax=* Then clear all caches (server/CDN/plugin) and retest.
    2. Confirm cron is running WooPayments relies on Action Scheduler/cron to process events quickly. In WooCommerce → Status → Scheduled Actions, ensure Past-due isn’t piling up. If DISABLE_WP_CRON is true, either re-enable WP-Cron or set a real server cron every 5 minutes to call wp-cron.php.
    3. Quick conflict test (fast) Temporarily switch to Storefront (or Twenty Twenty-Four) and deactivate all plugins except WooCommerce + WooPayments, then test checkout (card and PayPal). If that stops the duplicates/error, re-enable items one by one to find the culprit.
    4. Checkout implementation Let us know if you’re using the Checkout block or the classic [woocommerce_checkout] shortcode. If block, try the shortcode on a test page (and vice versa) and see if the spinner/error persists.
    5. Browser/console check Open your checkout page, press F12 (DevTools), and try a test payment. If you see JS errors or failed network requests (especially to wp-json, wc/store, or WPCOM/WooPayments endpoints), share a screenshot.
    6. PHP / server notes You mentioned PHP 8.5 caused 502s and 8.4.12 works now. Please keep PHP error logs handy for the same timeframe and confirm required PHP extensions (curl, mbstring, json, dom, openssl) are active. 502s suggest the server was under strain—timeouts can trigger retries and duplicate submissions.

    Once you send the error text, example orders, and the WooPayments log lines, we can map them to the payment intent/session flow and advise next steps (e.g., webhook retries, a specific plugin conflict, or cache rule to adjust).

    Thread Starter Lee

    (@icrashrcfoam)

    I am unable to reproduce this error, however we’ve had several customers experience this issue today.
    I don’t have a screenshot from our website. I do have a screenshot from an automated email our customer received after the first order. The order was completed successfully. Confirmed by the Payment Transactions, however they received an email that stated:
    “Sorry, your order was unsuccessful
    Hi ****,
    Unfortunately, we couldn’t complete your order due to an issue with your payment method.

    If you’d like to continue with your purchase, please return to WIND CATCHER RC and try a different method of payment.” It continued on with the customer’s order details.

    Please note that this all happened before we updated our PHP versions.

    I think every time this happened it was using Cards.

    Times are Eastern Time Zone
    Order#20720 Paid on September 6, 2025 @ 8:06 PM
    Order#20708 Paid on September 6, 2025 @ 4:08 PM
    Order#20673 Paid on September 5, 2025 @ 5:11 PM

    I will paste the logs in a separate post to try and keep this organized. There’s a lot to copy/paste.

    Thread Starter Lee

    (@icrashrcfoam)

    This is the log for Order# 20720:



    2025-09-07T00:06:17+00:00 Info : POST https://public-api.wordpress.com/wpcom/v2/sites/%s/wcpay/customers Additional context { "WP_USER": "Guest (non logged-in user)", "HTTP_REFERER": "https://windcatcherrc.com/checkout/", "HTTP_USER_AGENT": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36", "REQUEST_URI": "/wp-json/wc/store/v1/checkout?locale=site", "DOING_AJAX": "", "DOING_CRON": "", "WP_CLI": "", "WOOPAYMENTS_MODE": "prod", "request": { "url": "https://public-api.wordpress.com/wpcom/v2/sites/%s/wcpay/customers", "method": "POST", "headers": { "Content-Type": "application/json; charset=utf-8", "User-Agent": "WooCommerce Payments/9.9.0", "Idempotency-Key": "",
    "X-Request-Initiated":
    },
    "timeout": 70,
    "connect_timeout": 70
    },
    "0": {
    "body": {
    "test_mode": false,
    "name": "(redacted)",
    "description": "Name: , Guest", "email": "(redacted)", "phone": "(redacted)", "address": { "line1": "(redacted)", "line2": "(redacted)", "postal_code": "(redacted)", "city": "(redacted)", "state": "(redacted)", "country": "(redacted)" }, "shipping": { "name": "(redacted)", "address": { "line1": "(redacted)", "line2": "(redacted)", "postal_code": "(redacted)", "city": "(redacted)", "state": "(redacted)", "country": "(redacted)" } }, "session_id": "
    "
    }
    }
    }
    2025-09-07T00:06:18+00:00 Info API RESPONSE (): POST https://public-api.wordpress.com/wpcom/v2/sites/%s/wcpay/customers
    Additional context
    {
    "WP_USER": "Guest (non logged-in user)",
    "HTTP_REFERER": "https://windcatcherrc.com/checkout/",
    "HTTP_USER_AGENT": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36",
    "REQUEST_URI": "/wp-json/wc/store/v1/checkout?_locale=site",
    "DOING_AJAX": "",
    "DOING_CRON": "",
    "WP_CLI": "",
    "WOOPAYMENTS_MODE": "prod",
    "body": {
    "id": "",
    "object": "customer",
    "address": {
    "city": "(redacted)",
    "country": "(redacted)",
    "line1": "(redacted)",
    "line2": "(redacted)",
    "postal_code": "(redacted)",
    "state": "(redacted)"
    },
    "balance": 0,
    "created": ,
    "currency": null,
    "default_currency": null,
    "default_source": null,
    "delinquent": false,
    "description": "Name: , Guest", "discount": null, "email": "(redacted)", "invoice_prefix": "", "invoice_settings": { "custom_fields": null, "default_payment_method": null, "footer": null, "rendering_options": null }, "livemode": true, "metadata": "stdClass()", "name": "(redacted)", "next_invoice_sequence": 1, "phone": "(redacted)", "preferred_locales": [], "shipping": { "address": { "city": "(redacted)", "country": "(redacted)", "line1": "(redacted)", "line2": "(redacted)", "postal_code": "(redacted)", "state": "(redacted)" }, "name": "(redacted)", "phone": "(redacted)" }, "tax_exempt": "none", "test_clock": null } } 2025-09-07T00:06:18+00:00 Info -0003 API REQUEST (): POST https://public-api.wordpress.com/wpcom/v2/sites/%s/wcpay/intentions Additional context { "WP_USER": "Guest (non logged-in user)", "HTTP_REFERER": "https://windcatcherrc.com/checkout/", "HTTP_USER_AGENT": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36", "REQUEST_URI": "/wp-json/wc/store/v1/checkout?_locale=site", "DOING_AJAX": "", "DOING_CRON": "", "WP_CLI": "", "WOOPAYMENTS_MODE": "prod", "request": { "url": "https://public-api.wordpress.com/wpcom/v2/sites/%s/wcpay/intentions", "method": "POST", "headers": { "Content-Type": "application/json; charset=utf-8", "User-Agent": "WooCommerce Payments/9.9.0", "Idempotency-Key": "",
    "X-Request-Initiated":

    },
    "timeout": 70,
    "connect_timeout": 70
    },
    "0": {
    "body": {
    "test_mode": false,
    "confirm": "true",
    "capture_method": "automatic",
    "is_platform_payment_method": false,
    "woopay_has_subscription": false,
    "save_payment_method_to_platform": false,
    "amount": 7556,
    "currency": "usd",
    "payment_method": "", "customer": "cus
    ",
    "metadata": {
    "customer_name": "(redacted)",
    "customer_email": "(redacted)",
    "site_url": "https://windcatcherrc.com",
    "order_id": 20720,
    "order_number": "20720",
    "order_key": "wc_order_",
    "payment_type": "WCPay\Constants\Payment_Type()",
    "checkout_type": "store-api",
    "client_version": "9.9.0",
    "subscription_payment": "no",
    "fraud_prevention_data_shopper_ip_hash": "", "fraud_prevention_data_shopper_ua_hash": "",
    "fraud_prevention_data_ip_country": "US",
    "fraud_prevention_data_cart_contents": 13,
    "fraud_prevention_data_available": true
    },
    "description": "Online Payment for Order #20720 for windcatcherrc.com blog_id ", "level3": { "merchant_reference": "20720", "customer_reference": "20720", "shipping_amount": 1168, "line_items": [ "stdClass()", "stdClass()", "stdClass()" ], "shipping_address_zip": "
    ", "shipping_from_zip": ""
    },
    "payment_method_types": [
    "card",
    "link"
    ],
    "cvc_confirmation": null,
    "mandate_data": {
    "customer_acceptance": {
    "type": "online",
    "online": {
    "ip_address": "
    ****",
    "user_agent": "WooCommerce Payments/9.9.0; https://windcatcherrc.com"
    }
    }
    }
    }
    }
    }
    2025-09-07T00:06:21+00:00 Info **-0004 API RESPONSE (): POST https://public-api.wordpress.com/wpcom/v2/sites/%s/wcpay/intentions Additional context { "WP_USER": "Guest (non logged-in user)", "HTTP_REFERER": "https://windcatcherrc.com/checkout/", "HTTP_USER_AGENT": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36", "REQUEST_URI": "/wp-json/wc/store/v1/checkout?locale=site", "DOING_AJAX": "", "DOING_CRON": "", "WP_CLI": "", "WOOPAYMENTS_MODE": "prod", "body": { "id": "", "object": "payment_intent", "amount": 7556, "amount_capturable": 0, "amount_details": { "tip": [] }, "amount_received": 7556, "amount_subtotal": 7556, "application": "", "application_fee_amount": 249, "automatic_payment_methods": null, "canceled_at": null, "cancellation_reason": null, "capture_method": "automatic", "charges": { "object": "list", "data": [ { "id": "", "object": "charge", "amount": 7556, "amount_captured": 7556, "amount_refunded": 0, "application": "", "application_fee": "fee", "application_fee_amount": 249, "balance_transaction": { "id": "txn_",
    "object": "balance_transaction",
    "amount": 7556,
    "available_on":
    **,
    "balance_type": "payments",
    "created": *,
    "currency": "usd",
    "description": "Online Payment for Order #20720 for windcatcherrc.com blog_id ", "exchange_rate": null, "fee": 249, "fee_details": [ { "amount": 249, "application": "ca_",
    "currency": "usd",
    "description": "WooPayments application fee",
    "type": "application_fee"
    }
    ],
    "net": 7307,
    "reporting_category": "charge",
    "source": "ch_
    ***",
    "status": "pending",
    "type": "charge"
    },
    "billing_details": {
    "address": {
    "city": "(redacted)",
    "country": "(redacted)",
    "line1": "(redacted)",
    "line2": "(redacted)",
    "postal_code": "(redacted)",
    "state": "(redacted)"
    },
    "email": "(redacted)",
    "name": "(redacted)",
    "phone": "(redacted)",
    "tax_id": null
    },
    "calculated_statement_descriptor": "WINDCATCHERRC.COM",
    "captured": true,
    "created": **, "currency": "usd", "customer": "cus_", "description": "Online Payment for Order #20720 for windcatcherrc.com blog_id ",
    "destination": null,
    "dispute": null,
    "disputed": false,
    "failure_balance_transaction": null,
    "failure_code": null,
    "failure_message": null,
    "fraud_details": [],
    "invoice": null,
    "level3": {
    "customer_reference": "20720",
    "line_items": [
    {
    "discount_amount": 0,
    "product_code": "651",
    "product_description": "Carbon Fiber TUBE 6mm x 4m",
    "quantity": 7,
    "tax_amount": 0,
    "unit_cost": 532
    },
    {
    "discount_amount": 0,
    "product_code": "641",
    "product_description": "Carbon Fiber TUBE 3mm x 1.",
    "quantity": 3,
    "tax_amount": 0,
    "unit_cost": 247
    },
    {
    "discount_amount": 0,
    "product_code": "650",
    "product_description": "Carbon Fiber Rod 5mm x 100",
    "quantity": 3,
    "tax_amount": 0,
    "unit_cost": 641
    }
    ],
    "merchant_reference": "20720",
    "shipping_address_zip": "
    ", "shipping_amount": 1168, "shipping_from_zip": ""
    },
    "livemode": true,
    "metadata": {
    "checkout_type": "store-api",
    "client_version": "9.9.0",
    "customer_email": "(redacted)",
    "customer_name": "(redacted)",
    "fraud_outcome": "allow",
    "fraud_prevention_data_available": "1",
    "fraud_prevention_data_cart_contents": "13",
    "fraud_prevention_data_ip_country": "US",
    "fraud_prevention_data_shopper_ip_hash": "
    ", "fraud_prevention_data_shopper_ua_hash": "", "order_id": "20720", "order_key": "wc_order_", "order_number": "20720", "payment_type": "single", "site_url": "https://windcatcherrc.com", "subscription_payment": "no" }, "on_behalf_of": null, "order": null, "outcome": { "advice_code": null, "network_advice_code": null, "network_decline_code": null, "network_status": "approved_by_network", "reason": null, "risk_level": "normal", "seller_message": "Payment complete.", "type": "authorized" }, "paid": true, "payment_intent": "pi_",
    "payment_method": "pm_",
    "payment_method_details": {
    "card": {
    "amount_authorized": 7556,
    "authorization_code": "
    ", "brand": "visa", "checks": { "address_line1_check": "pass", "address_postal_code_check": "pass", "cvc_check": "pass" }, "country": "(redacted)", "description": "", "exp_month": ,
    "exp_year": , "extended_authorization": { "status": "disabled" }, "fingerprint": "",
    "funding": "credit",
    "iin": "",
    "incremental_authorization": {
    "status": "unavailable"
    },
    "installments": null,
    "issuer": "
    ", "last4": "", "mandate": null, "multicapture": { "status": "unavailable" }, "network": "",
    "network_token": {
    "used": false
    },
    "network_transaction_id": "",
    "overcapture": {
    "maximum_amount_capturable": 7556,
    "status": "unavailable"
    },
    "regulated_status": "unregulated",
    "three_d_secure": null,
    "wallet": null
    },
    "type": "card"
    },
    "radar_options": [],
    "receipt_email": null,
    "receipt_number": null,
    "receipt_url": "https://pay.stripe.com/receipts/payment/", "refunded": false, "refunds": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/charges/
    "
    },
    "review": null,
    "shipping": null,
    "source": null,
    "source_transfer": null,
    "statement_descriptor": null,
    "statement_descriptor_suffix": null,
    "status": "succeeded",
    "transfer_data": null,
    "transfer_group": null
    }
    ],
    "has_more": false,
    "total_count": 1,
    "url": "/v1/charges?payment_intent=pi_
    "
    },
    "client_secret": "(redacted)",
    "confirmation_method": "automatic",
    "created": ,
    "currency": "usd",
    "customer": "cus_
    ",
    "description": "Online Payment for Order #20720 for windcatcherrc.com blog_id
    ", "excluded_payment_method_types": null, "invoice": null, "last_payment_error": null, "latest_charge": "ch_", "level3": { "customer_reference": "20720", "line_items": [ { "discount_amount": 0, "product_code": "651", "product_description": "Carbon Fiber TUBE 6mm x 4m", "quantity": 7, "tax_amount": 0, "unit_cost": 532 }, { "discount_amount": 0, "product_code": "641", "product_description": "Carbon Fiber TUBE 3mm x 1.", "quantity": 3, "tax_amount": 0, "unit_cost": 247 }, { "discount_amount": 0, "product_code": "650", "product_description": "Carbon Fiber Rod 5mm x 100", "quantity": 3, "tax_amount": 0, "unit_cost": 641 } ], "merchant_reference": "20720", "shipping_address_zip": "", "shipping_amount": 1168, "shipping_from_zip": ""
    },
    "livemode": true,
    "metadata": {
    "checkout_type": "store-api",
    "client_version": "9.9.0",
    "customer_email": "(redacted)",
    "customer_name": "(redacted)",
    "fraud_outcome": "allow",
    "fraud_prevention_data_available": "1",
    "fraud_prevention_data_cart_contents": "13",
    "fraud_prevention_data_ip_country": "US",
    "fraud_prevention_data_shopper_ip_hash": "
    ", "fraud_prevention_data_shopper_ua_hash": "", "order_id": "20720", "order_key": "wc_order_", "order_number": "20720", "payment_type": "single", "site_url": "https://windcatcherrc.com", "subscription_payment": "no" }, "next_action": null, "on_behalf_of": null, "payment_method": "pm_**",
    "payment_method_configuration_details": null,
    "payment_method_options": {
    "card": {
    "installments": null,
    "mandate_options": null,
    "network": null,
    "request_three_d_secure": "automatic"
    },
    "link": {
    "persistent_token": null
    }
    },
    "payment_method_types": [
    "card",
    "link"
    ],
    "processing": null,
    "receipt_email": null,
    "review": null,
    "setup_future_usage": null,
    "shipping": null,
    "source": null,
    "statement_descriptor": null,
    "statement_descriptor_suffix": null,
    "status": "succeeded",
    "total_details": {
    "amount_discount": 0,
    "amount_tax": 0,
    "amount_tip": null
    },
    "transfer_data": null,
    "transfer_group": null,
    "fee_history": [
    {
    "type": "base",
    "additional_type": "",
    "fee_id": "base-us-card-fee",
    "percentage_rate": ******,
    "fixed_rate": ******,
    "currency": "usd"
    }
    ]
    }
    }
    2025-09-07T00:06:24+00:00 Debug **-0001 WEBHOOK RECEIVED: payment_intent.succeeded evt_
    Additional context
    {
    "WP_USER": "admin",
    "HTTP_REFERER": "https://windcatcherrc.com/?rest_route=wcv3paymentswebhook&for=jetpack&token=&timestamp=&nonce=&body-hash=&signature=", "HTTP_USER_AGENT": "Jetpack by WordPress.com", "REQUEST_URI": "/?rest_route=wcv3paymentswebhook&_for=jetpack&token=&timestamp=&nonce=&body-hash=&signature=",
    "DOING_AJAX": "",
    "DOING_CRON": "",
    "WP_CLI": "",
    "WOOPAYMENTS_MODE": "prod",
    "body": {
    "id": "evt
    ",
    "type": "payment_intent.succeeded",
    "livemode": true,
    "account": "acct_", "data": { "object": { "id": "pi_", "object": "payment_intent", "amount": 7556, "amount_capturable": 0, "amount_details": { "tip": [] }, "amount_received": 7556, "application": "ca_",
    "application_fee_amount": 249,
    "automatic_payment_methods": null,
    "canceled_at": null,
    "cancellation_reason": null,
    "capture_method": "automatic",
    "charges": {
    "object": "list",
    "data": [
    {
    "id": "ch_", "object": "charge", "amount": 7556, "amount_captured": 7556, "amount_refunded": 0, "application": "ca_",
    "application_fee": "fee_
    ", "application_fee_amount": 249, "balance_transaction": "txn_**",
    "billing_details": {
    "address": {
    "city": "(redacted)",
    "country": "(redacted)",
    "line1": "(redacted)",
    "line2": "(redacted)",
    "postal_code": "(redacted)",
    "state": "(redacted)"
    },
    "email": "(redacted)",
    "name": "(redacted)",
    "phone": "(redacted)",
    "tax_id": null
    },
    "calculated_statement_descriptor": "WINDCATCHERRC.COM",
    "captured": true,
    "created": **,
    "currency": "usd",
    "customer": "cus_", "description": "Online Payment for Order #20720 for windcatcherrc.com blog_id ",
    "destination": null,
    "dispute": null,
    "disputed": false,
    "failure_balance_transaction": null,
    "failure_code": null,
    "failure_message": null,
    "fraud_details": [],
    "invoice": null,
    "livemode": true,
    "metadata": {
    "fraud_prevention_data_cart_contents": "13",
    "client_version": "9.9.0",
    "site_url": "https://windcatcherrc.com",
    "fraud_prevention_data_available": "1",
    "fraud_prevention_data_shopper_ip_hash": "
    ", "order_number": "20720", "checkout_type": "store-api", "order_id": "20720", "order_key": "wc_order_", "subscription_payment": "no", "customer_email": "(redacted)", "fraud_prevention_data_shopper_ua_hash": "
    ", "customer_name": "(redacted)", "fraud_outcome": "allow", "fraud_prevention_data_ip_country": "US", "payment_type": "single" }, "on_behalf_of": null, "order": null, "outcome": { "advice_code": null, "network_advice_code": null, "network_decline_code": null, "network_status": "approved_by_network", "reason": null, "risk_level": "normal", "seller_message": "Payment complete.", "type": "authorized" }, "paid": true, "payment_intent": "pi_",
    "payment_method": "pm_
    ",
    "payment_method_details": {
    "card": {
    "amount_authorized": 7556,
    "authorization_code": "", "brand": "***",
    "checks": {
    "address_line1_check": "pass",
    "address_postal_code_check": "pass",
    "cvc_check": "pass"
    },
    "country": "(redacted)",
    "exp_month": *,
    "exp_year": ,
    "extended_authorization": {
    "status": "disabled"
    },
    "fingerprint": "
    ",
    "funding": "credit",
    "incremental_authorization": {
    "status": "unavailable"
    },
    "installments": null,
    "last4": "
    ", "mandate": null, "multicapture": { "status": "unavailable" }, "network": "",
    "network_token": {
    "used": false
    },
    "network_transaction_id": "
    ", "overcapture": { "maximum_amount_capturable": 7556, "status": "unavailable" }, "regulated_status": "unregulated", "three_d_secure": null, "wallet": null, "description": "", "iin": "", "issuer": ""
    },
    "type": "card"
    },
    "radar_options": [],
    "receipt_email": null,
    "receipt_number": null,
    "receipt_url": "https://pay.stripe.com/receipts/payment/", "refunded": false, "refunds": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/charges/
    "
    },
    "review": null,
    "shipping": null,
    "source": null,
    "source_transfer": null,
    "statement_descriptor": null,
    "statement_descriptor_suffix": null,
    "status": "succeeded",
    "transfer_data": null,
    "transfer_group": null,
    "level3": {
    "customer_reference": "20720",
    "line_items": [
    {
    "discount_amount": 0,
    "product_code": "651",
    "product_description": "Carbon Fiber TUBE 6mm x 4m",
    "quantity": 7,
    "tax_amount": 0,
    "unit_cost": 532
    },
    {
    "discount_amount": 0,
    "product_code": "641",
    "product_description": "Carbon Fiber TUBE 3mm x 1.",
    "quantity": 3,
    "tax_amount": 0,
    "unit_cost": 247
    },
    {
    "discount_amount": 0,
    "product_code": "650",
    "product_description": "Carbon Fiber Rod 5mm x 100",
    "quantity": 3,
    "tax_amount": 0,
    "unit_cost": 641
    }
    ],
    "merchant_reference": "20720",
    "shipping_address_zip": "", "shipping_amount": 1168, "shipping_from_zip": "
    "
    }
    }
    ],
    "has_more": false,
    "total_count": 1,
    "url": "/v1/charges?payment_intent=pi_
    ****"
    },
    "client_secret": "(redacted)",
    "confirmation_method": "automatic",
    "created": **, "currency": "usd", "customer": "cus_***",
    "description": "Online Payment for Order #20720 for windcatcherrc.com blog_id **", "excluded_payment_method_types": null, "invoice": null, "last_payment_error": null, "latest_charge": "ch_",
    "livemode": true,
    "metadata": {
    "fraud_prevention_data_cart_contents": "13",
    "client_version": "9.9.0",
    "site_url": "https://windcatcherrc.com",
    "fraud_prevention_data_available": "1",
    "fraud_prevention_data_shopper_ip_hash": "
    ",
    "order_number": "20720",
    "checkout_type": "store-api",
    "order_id": "20720",
    "order_key": "wc_order_
    ", "subscription_payment": "no", "customer_email": "(redacted)", "fraud_prevention_data_shopper_ua_hash": "", "customer_name": "(redacted)", "fraud_outcome": "allow", "fraud_prevention_data_ip_country": "US", "payment_type": "single" }, "next_action": null, "on_behalf_of": null, "payment_method": "pm_", "payment_method_configuration_details": null, "payment_method_options": { "card": { "installments": null, "mandate_options": null, "network": null, "request_three_d_secure": "automatic" }, "link": { "persistent_token": null } }, "payment_method_types": [ "card", "link" ], "processing": null, "receipt_email": null, "review": null, "setup_future_usage": null, "shipping": null, "source": null, "statement_descriptor": null, "statement_descriptor_suffix": null, "status": "succeeded", "transfer_data": null, "transfer_group": null, "amount_subtotal": 7556, "level3": { "customer_reference": "20720", "line_items": [ { "discount_amount": 0, "product_code": "651", "product_description": "Carbon Fiber TUBE 6mm x 4m", "quantity": 7, "tax_amount": 0, "unit_cost": 532 }, { "discount_amount": 0, "product_code": "641", "product_description": "Carbon Fiber TUBE 3mm x 1.", "quantity": 3, "tax_amount": 0, "unit_cost": 247 }, { "discount_amount": 0, "product_code": "650", "product_description": "Carbon Fiber Rod 5mm x 100", "quantity": 3, "tax_amount": 0, "unit_cost": 641 } ], "merchant_reference": "20720", "shipping_address_zip": "",
    "shipping_amount": 1168,
    "shipping_from_zip": "
    **"
    },
    "total_details": {
    "amount_discount": 0,
    "amount_tax": 0,
    "amount_tip": null
    }
    }
    }
    }
    }
    Thread Starter Lee

    (@icrashrcfoam)

    We did get 4 Fatal Errors.  They are all the same and at the same time.  I think this happened while I was changing the PHP versions.



    2025-09-07T01:57:08+00:00 Critical Uncaught Error: Class "PH_Shipping_UPS_Rest_Tracking" not found in /home/customer/www/windcatcherrc.com/public_html/wp-content/plugins/ups-woocommerce-shipping/includes/class-wf-shipping-ups-tracking.php:59
    Additional context
    {
    "error": {
    "type": 1,
    "file": "/home/customer/www/windcatcherrc.com/public_html/wp-content/plugins/ups-woocommerce-shipping/includes/class-wf-shipping-ups-tracking.php",
    "line": 59
    },
    "remote-logging": true,
    "backtrace": [
    "",
    "#0 /home/customer/www/windcatcherrc.com/public_html/wp-content/plugins/ups-woocommerce-shipping/includes/class-wf-shipping-ups-tracking.php(518): WF_Shipping_UPS_Tracking->__construct()",
    "#1 /home/customer/www/windcatcherrc.com/public_html/wp-content/plugins/ups-woocommerce-shipping/includes/class-wf-shipping-ups-admin.php(498): include_once('/home/customer/…')",
    "#2 /home/customer/www/windcatcherrc.com/public_html/wp-content/plugins/ups-woocommerce-shipping/includes/class-wf-shipping-ups-admin.php(210): WF_Shipping_UPS_Admin->wf_init()",
    "#3 /home/customer/www/windcatcherrc.com/public_html/wp-content/plugins/ups-woocommerce-shipping/includes/class-wf-shipping-ups-admin.php(4806): WF_Shipping_UPS_Admin->__construct()",
    "#4 /home/customer/www/windcatcherrc.com/public_html/wp-content/plugins/ups-woocommerce-shipping/ups-woocommerce-shipping.php(288): include_once('/home/customer/…')",
    "#5 /home/customer/www/windcatcherrc.com/public_html/wp-includes/class-wp-hook.php(324): UPS_WooCommerce_Shipping->init('')",
    "#6 /home/customer/www/windcatcherrc.com/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array)",
    "#7 /home/customer/www/windcatcherrc.com/public_html/wp-includes/plugin.php(517): WP_Hook->do_action(Array)",
    "#8 /home/customer/www/windcatcherrc.com/public_html/wp-settings.php(727): do_action('init')",
    "#9 /home/customer/www/windcatcherrc.com/public_html/wp-config.php(92): require_once('/home/customer/…')",
    "#10 /home/customer/www/windcatcherrc.com/public_html/wp-load.php(50): require_once('/home/customer/…')",
    "#11 /home/customer/www/windcatcherrc.com/public_html/wp-blog-header.php(13): require_once('/home/customer/…')",
    "#12 /home/customer/www/windcatcherrc.com/public_html/index.php(17): require('/home/customer/…')",
    "#13 {main}",
    "thrown"
    ]
    }
    Thread Starter Lee

    (@icrashrcfoam)

    This all could possibly be caused by Cache as you mentioned.

    We removed SiteGround’s Speed Optimizer plugin due to high CPU and disk usage. I think it is supposed to work with their CDN. It’s possible without the plugin, CDN was not caching correctly.

    We added this using the plugin Code Snippets for PHP:

    add_action( ‘send_headers’, function() {
    if ( is_cart() || is_checkout() || is_account_page() ) {
    header( ‘Cache-Control: no-store, no-cache, must-revalidate, max-age=0’ );
    header( ‘Pragma: no-cache’ );
    }
    });

    Thread Starter Lee

    (@icrashrcfoam)

    We currently have 190 past-due.
    I set up a manual Cron job to run wp-cron.php every 5 minutes.

    Thread Starter Lee

    (@icrashrcfoam)

    We have always run only Storefront theme.

    I can not disable our other plugins because we rely on all of them for our site to function correctly for our customers.

    We are using Checkout blocks, not the classic.

    I’ve not been able to reproduce this error other customers are seeing. And not everyone is seeing it. I know, this makes it more difficult to figure out.

    New information about the duplicate orders. They appear to be caused by customers thinking their previous order failed, so they place a second order.

    Plugin Support LovingBro (woo-hc)

    (@lovingbro)

    Hi @icrashrcfoam,

    Thanks for all the detail — super helpful. From what you shared, two things stand out:

    1. Customers sometimes get a “payment unsuccessful” email, yet the order later shows Paid/Completed → this suggests an initial failure (or timeout) followed by a successful retry/second submission, which can also explain duplicates.
    2. Your server hit 502s during PHP version changes, and you have a UPS plugin fatal error in the same window — both can prolong checkout, break AJAX calls, or delay webhooks, which leads to spinners and mixed signals to customers.

    Here’s the focused checklist to move this forward:

    1. Exclude checkout from ALL caching/CDN Make sure these are never cached or challenged: /cart/, /checkout/, /my-account/, /wc-api/*, /?wc-ajax=*, /wp-json/* Then purge all caches (host/CDN/plugin) and retest.
    2. Confirm cron/action scheduler is healthy WooCommerce → Status → Scheduled Actions → ensure Past-due is not piling up. If DISABLE_WP_CRON is true, re-enable it or add a real server cron every 5 minutes to call wp-cron.php.
    3. Collect exact WooPayments signals around the 3 orders For Order #20720, #20708, #20673 (times you listed), please share from WooCommerce → Status → Logs:
    • The relevant woopayments log lines (same timestamps)
    • Any fatal-errors entries other than the UPS one Also, in Payments → Transactions, grab each transaction’s ID and status timeline (you can redact sensitive bits).
    1. Rule out conflicts fast Temporarily switch to Storefront (or Twenty Twenty-Four) and leave only WooCommerce + WooPayments active, then do a live $0.50 test (or test mode) on card. If the spinner/error disappears, re-enable plugins one by one. Given the fatal you posted, start by disabling the UPS plugin during tests or updating it to a PHP-compatible version.
    2. Checkout implementation + browser console Tell us whether your checkout page uses the Checkout block or the classic shortcode. While testing, open DevTools (F12) on /checkout/ and attempt a payment. If you see JS errors or failed requests (especially to wp-json, wc/store, or WPCOM/WooPayments endpoints), share a screenshot.
    3. Server/PHP Please keep PHP at a stable, supported minor (your current 8.4.12 sounds fine) and check your server error log for timeouts during those orders. Timeouts or 502s commonly cause “spinner → error,” then customers retry and create duplicates when the first attempt eventually completes.

    Once we have the WooPayments log snippets for those three orders (plus the checkout cache rules in place), we can map exactly where the first attempt failed vs. where it later succeeded and advise the next precise step (e.g., webhook delays, a plugin interference, or a cache rule to tweak).

    Thread Starter Lee

    (@icrashrcfoam)

    A lot of what you requested hasn’t posted yet to this thread. It appears I’m being throttled? Probably because of everything I’m trying to post. This slows down our troubleshooting efforts and could further lead to confusion.

    “Your post is being held for moderation by our automated system and will be manually reviewed by a volunteer as soon as possible.

    No action is needed on your part at this time, and you do not need to resubmit your message.”

    Plugin Support LovingBro (woo-hc)

    (@lovingbro)

    Hi @icrashrcfoam,

    I completely understand how frustrating it must feel to have your replies slowed down like this, especially when you’re trying to share details quickly for troubleshooting. The message you’re seeing is triggered by the forum’s automatic moderation system — sometimes longer posts with lots of logs or code snippets get held back until a moderator reviews and approves them. That part is unfortunately out of our control.

    In this case, the best step is to wait a few hours for moderation to review and release your reply if it doesn’t go against forum guidelines. Once it’s visible, we’ll be able to review the logs you’ve shared and continue troubleshooting from there.

    As a tip for next time, when sharing logs, system status reports, or screenshots, it’s often easier (and faster) to upload them to services like Snipboard, Pastebin, or GitHub Gist, and then just share the link in your reply here. That helps keep the forum cleaner and usually avoids delays caused by the moderation filter.

    We’ll keep an eye out for your post once it goes through and pick things up from there.

    Thread Starter Lee

    (@icrashrcfoam)

    I just checked the Cron jobs. It appears we still have 190 Past-due.
    I did set up to run wp-cron.php every 5 minutes. Done manually on SiteGround>Devs>Cron Jobs. It doesn’t look like it is working.
    I have the plugin WP Control installed. A moment ago I set up wp-cron.php to run every 5 minutes.
    After over 15 minutes, there are still 191 Past-due.

    Thread Starter Lee

    (@icrashrcfoam)

    Thanks for all your help. I’ll try to remember to use those other services next time. I understand the reason for the delay on the longer posts. I’ll check back tomorrow morning.

    Hi @icrashrcfoam,

    Thank you for getting back and for sharing the details. I reviewed the thread, and it looks like most of the issues you mentioned have already been resolved. Could you clarify what exactly we’re troubleshooting now? Is it only the past-due actions, the error you reported earlier, or the duplicate orders?

    You mentioned before that the error couldn’t be reproduced, and the duplicate orders turned out to be a customer mistake—correct?

    So are we now focusing just on the past-due actions? If so, could you please go to your past-due actions and share a screenshot of the ones that are stuck?

Viewing 15 replies - 1 through 15 (of 19 total)

The topic ‘Customer receives error message’ is closed to new replies.