Critical Data Integrity Issue
-
Title:
Critical Data Integrity Issue: Google Listings & Ads Causing Missing Order Items in Lookup Table Description:
We identified a serious data integrity issue affecting WooCommerce order processing, potentially caused by the Google Listings & Ads plugin. Summary of issue
Orders are correctly stored in:
wp_woocommerce_order_items
However, some line items are missing from:
wp_wc_order_product_lookup
This causes:
- Missing products in WooCommerce admin order view
- Incorrect packing lists
- Risk of short-shipping orders
- No error or warning in admin
Evidence 1. Database mismatch confirmed
Example:
SELECT COUNT(*) FROM wp_woocommerce_order_items WHERE order_id = X;
— returns 7SELECT COUNT(*) FROM wp_wc_order_product_lookup WHERE order_id = X;
— returns 5 2. Scope of issue- 132 affected orders
- 1,671 missing line items
- Issue spans multiple years and worsens over time
3. Action Scheduler failures
Large number of failed actions tied to GLA:
gla/jobs/update_products/process_item → 650 failures
gla/jobs/resubmit_expiring_products/process_item → multiple failures
gla/jobs/update_merchant_product_statuses → failuresErrors include:
- “Error updating Google product”
- job processing failures
- repeated retries
4. Timing correlation
- Missing lookup rows occur during same periods as heavy GLA failures
- Suggests plugin is interrupting or conflicting with order-related writes
5. WooCommerce behavior
WooCommerce admin UI appears to rely on:
wp_wc_order_product_lookup
When lookup entries are missing:
- Items are not shown in admin
- No fallback to
wp_woocommerce_order_items - No error raised
Mitigation applied
- Disabled:
- Google Listings & Ads plugin
- HPOS data sync (was enabled while HPOS disabled)
After disabling:
- No new missing lookup entries observed (pending further testing)
Questions
- Can GLA background jobs interfere with order creation or analytics lookup writes?
- Should WooCommerce fallback to
wp_woocommerce_order_itemsif lookup rows are missing? - Is there a known issue with:
- Action Scheduler failures
- lookup table writes being interrupted
- Should lookup table writes be transactional or retried?
Impact severity
This is a high severity issue because:
- Silent failure (no admin warning)
- Causes incorrect order fulfillment
- Leads to customer-facing errors (missing products)
- Difficult to detect without direct DB inspection
Suggested improvements
- Add validation between order_items and lookup table
- Add admin warning when mismatch occurs
- Add retry mechanism for lookup writes
- Ensure plugin failures cannot interrupt core data writes
Environment
- WooCommerce 10.4.3
- MariaDB 10.5
- WordPress (Cloudways)
- HPOS disabled, but data sync previously enabled
You must be logged in to reply to this topic.