HPOS sync failing
Your orders live in two places. The two places disagree.
High-Performance Order Storage moved WooCommerce orders into dedicated tables — faster, cleaner, and, during the compatibility era, synchronized with the old storage for legacy plugins. When that sync falters, the same order can exist in two versions, and every tool reading the 'wrong' table sees a store that doesn't match reality.
Diagnosis within one business day (Mon–Fri). Flat quote before any fix.
What’s actually happening
HPOS is a database migration wearing a feature's name. Orders historically lived scattered through the generic posts tables; HPOS gives them purpose-built tables. Because thousands of older plugins still read the legacy location, WooCommerce offers compatibility mode: writes go to both, a background sync keeps them agreeing. Sync failure means divergence — an order edited in one representation but not the other — and divergence is why the symptoms look supernatural: the dashboard says one thing, the exporter says another, the shipping plugin sees a third.
Divergence has mundane causes: a legacy plugin writing directly to the old tables (bypassing the sync's bookkeeping), server timeouts killing the background migration mid-batch, or admin toggling storage modes mid-conflict. The repair is reconciliation — determining which representation is authoritative, aligning the other to it, finding the plugin that keeps breaking the peace, and only then completing the migration to HPOS-only, which ends the two-places era for good. What it is not: toggling settings back and forth, which multiplies the divergence with every flip.
The usual causes, ranked
After twenty-seven years of these calls, the odds are well mapped. Start at the top.
Legacy plugins writing around the sync
Older order-touching plugins (exporters, shipping, custom reports) writing directly to legacy tables — the sync never hears about it.
The migration died mid-batch
Large order histories timing out during the initial HPOS migration — thousands moved, thousands stranded, the counter stuck.
Mode-flipping under pressure
Toggling compatibility mode on and off as symptoms appear — each flip changes which table is truth and deepens the disagreement.
What you can safely try first
Nothing below can make things worse — that’s the selection criterion. Anything riskier belongs in professional hands, on a backup.
- 1
Locate the sync status
WooCommerce → Settings → Advanced → Features: note the storage mode and any pending-sync count. A stuck nonzero count that never drains is the diagnosis in one number.
- 2
Stop changing modes
Whatever mode you're in, stay there until reconciliation. The instinct to flip settings is the single most damage-multiplying move available.
- 3
List your order-touching plugins with dates
Exporters, shipping labels, accounting bridges, custom reports — anything last updated before HPOS went mainstream is a prime direct-writer suspect.
Stop and call when…
- Orders genuinely differ between representations — reconciliation is careful database work with the store's money data
- The stuck migration needs completing on a large history — batch tooling, not the admin button that already timed out
- Accounting or fulfillment ran on diverged data — the cleanup includes figuring out what shipped and what got booked
From there it’s our job: a look within one business day, flat quote, and the $199 flat repair covers most cases of exactly this.
Theme, Builder or Plugin Conflict — buy it now, skip the hunt.
The builder won't load, an update broke the layout, a license won't activate or checkout misbehaves.
A full backup first. We find the theme, plugin or version at fault and fix or roll it back, tested on desktop and phone, with a note on what changed. We start within one business day (Monday–Friday) of payment. Full refund if we can't fix it.
Questions we hear a lot.
Is my order data lost?
Almost never — it's disagreeing, not deleted. Both representations exist; they've drifted. Reconciliation compares them, establishes the authoritative version per order (usually the one the store actually fulfilled from), and aligns the rest. The danger isn't the drift itself; it's mode-flipping and 'cleanup' plugins acting on the wrong table before the truth is established.
Should I just turn HPOS off?
Retreating to legacy mode mid-divergence doesn't merge anything — it changes which version of the disagreement you look at, and any orders living only in HPOS tables fall out of view. The direction of travel is forward: reconcile, fix the plugin that breaks sync, finish the migration, and get the performance HPOS was built for without the compatibility-mode overhead.
What does the $199 fix cover?
Diagnosis of the divergence (what differs, since when, which plugin's fingerprints), safe reconciliation with the authoritative set established and backed up first, the offending direct-writer updated or replaced, the stuck migration completed in batches, and the store landed in a single stable storage mode with sync verified clean.
Related symptoms & help
Errors travel in packs. If this one visited, check its friends.
- Checkout BrokenWhen the front of the money path fails too.
- Order EmailsThe notification side of order chaos.
- Database ErrorsThe blunter database emergency.
- WooCommerce RepairThe store-wide bench.
- Website RepairThe whole bench.
- Subscriptions Not RenewingSubscriptions not renewing
- Variations MissingVariations not showing
- WordPress 6.96.9 update went sideways
One store, one truth. Orders reconciled.
Send the symptom, get a look within one business day and a flat quote from the developer who's fixed this exact thing more times than either of us can count.
