WooCommerce HPOS Sync Problems

WooCommerce Store Fixes

Orders look wrong because two systems disagree about where they live.

datacram.com/fix/woocommerce-hpos-sync-issues
Likely causes, ranked
WooCommerce HPOS Sync Problems
An interrupted migrationmost likely
A plugin writing orders the old waycommon
Sync disabled while both stores are in usecommon
A failed or backed-up scheduled actionpossible
Fix steps in this guide5
the causes explained below, most likely first
What you’re seeing

Orders are missing from the admin list, show incorrect details, or appear in reports but not in the order screen. WooCommerce may warn that order data is out of sync.

What it actually means

WooCommerce historically stored orders as WordPress posts, which was never a good fit for a store with real volume. High-Performance Order Storage moves them into dedicated database tables, which is considerably faster.

During the transition WooCommerce can run both systems at once, keeping them synchronized. Sync problems mean the two copies have drifted apart — an order written to one and not the other — so what you see depends on which source the screen you are looking at reads from.

This is a data-integrity problem rather than a display bug, which is why it deserves care rather than a quick toggle.

What usually causes it

Most likely first.

  1. 1

    An interrupted migration

    The conversion was started and stopped partway, leaving some orders in one store and some in both.

  2. 2

    A plugin writing orders the old way

    Extensions not yet compatible with HPOS write directly to post tables, bypassing the new storage entirely.

  3. 3

    Sync disabled while both stores are in use

    Compatibility mode switched off before the migration finished, so writes stop propagating.

  4. 4

    A failed or backed-up scheduled action

    Synchronization runs as scheduled actions. If cron is unreliable, sync silently falls behind.

  5. 5

    A restore from a mismatched backup

    Restoring only part of the database can put the two stores permanently out of step.

How to fix it

Work through these in order. Take a backup before you change anything.

  1. Step 1Check the status page first

    WooCommerce, Status shows which order storage is active and whether compatibility mode is on. Know your current state before changing anything.

  2. Step 2Back up the database before touching sync

    This is order data. Take a full backup and confirm you can restore it before running any migration or resync.

  3. Step 3Confirm scheduled actions are running

    Sync depends on them. If the queue is backed up, fix cron first — resyncing without working cron simply stalls again.

  4. Step 4Run the sync and let it finish

    Enable compatibility mode and allow synchronization to complete fully. On a large store this takes time and must not be interrupted.

  5. Step 5Audit plugin compatibility

    Check each extension declares HPOS compatibility. Anything that does not is a candidate for the drift and should be updated or replaced before you disable the legacy store.

When to stop and call someone

Call someone before running a migration on a live store with order history you cannot afford to lose. This is one of the few faults on this site where a hasty fix can cause permanent damage — mismatched order data is difficult to reconstruct after the fact.

Frequently asked

High-Performance Order Storage moves orders out of WordPress's posts tables into dedicated database tables built for the job. It makes order queries and admin screens substantially faster on stores with real volume, and is now the default for new installations.

Because orders are being written to one storage system and not the other. That happens when a migration is interrupted, when a plugin writes orders the legacy way, or when the scheduled actions that perform synchronization are not running reliably.

Generally yes, but back up the database first and confirm every extension declares HPOS compatibility. Incompatible plugins are the main source of problems, and order data is the last thing on a store you want to reconstruct.

Only once synchronization has fully completed and every plugin is confirmed HPOS-compatible. Disabling it early stops writes propagating between the two stores and is a common way sites end up with orders visible in one place and not the other.

On stores with significant order volume, noticeably — order lists, searches, and reports all get faster because they no longer query a table shared with every post and revision on the site. On a very small store the difference is minor.

Free · AI-powered · Emailed to you

See exactly what’s holding your website back.

Get a free audit of your site — speed, SEO, mobile, and security — with the fixes that matter most, delivered as a PDF to your inbox.

Get my free audit
CallGet a quote