How-toUpdated 2026-07-06

Common sync errors and how to fix them

Diagnose and fix failed or partial catalogue syncs in /tools: unreachable feed URLs, expired Shopify connections, changed feed structure, rate limiting and partial fetches.

Plain-English summary

When a sync fails or only brings in some of your products, the cause is almost always one of five things: an unreachable or renamed feed URL, an expired Shopify connection, a feed whose columns changed, rate limiting, or a partial fetch that stopped mid-run. This guide shows how to read what /tools tells you, match it to the cause, and fix it, then resync and confirm the whole catalogue came through.

Start with the sync message

A failed or partial sync in /tools always leaves a status and a message on the store dashboard. That message is the diagnosis: it tells you whether the sync failed completely or brought in only part of your catalogue, and usually names the cause. Read it before changing anything; the five causes below have five different fixes, and treating them as one wastes the afternoon.

There are two shapes of problem:

  • Failed: the sync couldn't run or couldn't finish, and little or nothing came through.
  • Partial: some products synced but others are missing, so your feed is incomplete.

The five common causes

1. Unreachable or renamed feed URL

If your store syncs from a feed URL, the most common failure is that the URL no longer returns your feed: it was renamed, moved, taken offline, or is now behind a login. The sync can't fetch what it can't reach.

Fix: confirm the URL loads in a browser and returns your product feed, not an error or a login page. If the address changed, update it in your store's connection settings and resync. (This is the source feed you sync from: not the /tools feed serving URL you give Google, which is different.)

2. Expired Shopify connection

If your store syncs from Shopify, the connection can expire: for example if access was revoked in Shopify, the app was uninstalled, or the authorisation lapsed. Once it expires, /tools can no longer read your catalogue.

Fix: reconnect Shopify from the store's Connections screen and re-approve read access. See Connect a Shopify store. Once reconnected, the next sync pulls your full catalogue again.

3. Changed feed structure

A feed that used to sync fine can start failing when its structure changes: columns removed or renamed, a different delimiter, or a switch between CSV and XML at the source. /tools maps your feed's fields on sync; if the fields it relied on have vanished, products can be skipped or the sync can fail.

Fix: restore the removed or renamed columns at the source so the feed matches its previous structure, then resync. If the change is permanent, update the connection so /tools maps the new structure.

4. Rate limiting

Very large or frequent syncs can hit a rate limit from the source (Shopify's API or the feed host throttling requests). This usually shows as a partial sync that stopped part-way, or a sync that failed with a throttling message.

Fix: wait a short while and resync: /tools resumes chunked processing and picks up where a large catalogue left off. If it recurs, avoid triggering many manual resyncs back-to-back; one clean run is better than several throttled ones.

5. Partial fetch

Sometimes the source returns only part of the catalogue: a connection dropped mid-transfer, or the feed host timed out under load. The result is a partial sync: real products, but not all of them.

Fix: resync. A fresh run almost always completes what a dropped one didn't. If the count is still short after a clean resync, look at causes 1 and 3: a structurally broken feed can silently skip a block of products every time.

Deep dive Why a resync is safe, and how chunking helps

Resyncing is the right first move for almost every sync problem, and it's safe to do repeatedly:

  • It's non-destructive. A resync re-reads your source and rebuilds /tools' view of the catalogue. It never edits your Shopify store or your source feed, and it doesn't discard your enrichment: enriched fields are a supplemental layer that re-applies over the refreshed base (see Your feed serving URL).
  • Large catalogues sync in chunks. /tools processes big catalogues in self-chaining chunks in the background, so a 50,000-SKU store syncs as reliably as a 50-SKU one. If one chunk is interrupted (the usual cause of a partial sync) resyncing resumes the run rather than starting from zero, which is why partial syncs so often clear on the second attempt.
  • Resync per store. Each store syncs independently, so a resync touches only the store you run it on. Fixing one store never disturbs another under the same account: see Multi-store setup.

The one thing resyncing won't fix is a broken source: an unreachable URL, an expired Shopify connection or a feed missing columns will fail again until you fix the source. Resync is the confirmation step, not the fix, for causes 1, 2 and 3.

Confirm the sync is clean

After fixing the cause and resyncing, verify:

  • Product count matches what's live in your store. A short count points at a partial sync or a structural feed problem (causes 3 and 5).
  • Feed Health Score is present and stable. A sync that completed but dropped fields shows up here.

A clean sync with the right count and a stable score means /tools has your full catalogue and your feed serving URL will serve it to Google on the next fetch.

Step by step

  1. Read the sync status in /tools. Open the store dashboard and check the sync status and message. /tools tells you whether the sync failed outright or completed partially, and usually names the cause, start from that message, not a guess.
  2. Match the message to one of the five causes. Failed syncs almost always trace to an unreachable/renamed feed URL, an expired Shopify connection, a changed feed structure, rate limiting, or a partial fetch. Identify which one applies.
  3. Fix at the source. Fix the underlying cause, restore the feed URL, reconnect Shopify, restore the removed columns, or wait out a rate limit. Fixing the symptom in /tools without fixing the source just fails again on the next sync.
  4. Trigger a manual resync. From the store dashboard, run a manual resync. There's no penalty for resyncing, and large catalogues resume chunked processing automatically.
  5. Confirm the full catalogue came through. Check the product count and Feed Health Score after the resync. If the count matches your store and the score is stable, the sync is clean.
Put this into practice. /tools rebuilds messy product data into Merchant Center-ready feeds. Connect a store and see your Feed Health Score in minutes.
Try /tools →