Run a sync and read the result

Running a syncUpdated 23 September 2026

A sync run reads your supplier's feed, compares it to your store, and writes only what changed. You can start one at any time with Sync now, and every run is recorded so you can see exactly what it did.

Start a sync

There are two places to start a run. On Connections, click Sync now on the supplier's row. Or open the connection and click Sync now, the primary action in the page header.

Everstock queues the run rather than performing it in your browser. From the list you get a toast reading Sync queued for <supplier>, and from the detail page it reads Sync queued. Clicking Sync now twice while the first run is still queued does not start a second one, because a queued sync is deduplicated per connection. A preview is queued separately from a real sync, so those two can wait side by side. Closing the page does not stop a run either. It continues and appears in Sync history when it finishes.

If the run cannot be queued at all, the connections list shows a critical banner instead of a toast, headed "Couldn't start the sync". The most common reason is a frozen subscription, which reads "Your plan is inactive. Reactivate it to run a sync." Starting the run from the connection page instead shows that same message as an error toast.

Watch it run

Stay on the connection page and you will see a Queued or Running badge while the sync waits or works, with a spinner beside it. When it finishes, the page updates itself and a toast says Sync finished: Success (or Sync finished: Failed). A run Everstock stopped before writing says Sync held. Nothing was written. instead. The same Queued and Running badges appear at the top of Sync history.

The page stops watching after about two minutes. If the run has not finished by then, the spinner is replaced by a banner. It reads "This sync is taking longer than expected" when the run has started, or "This sync never started" when it has not. Click Check again in the banner for the latest status. The run itself is not cancelled, and it appears in Sync history when it finishes.

The run then shows up in three places: Recent runs on the connection detail page (the three newest, with View full history for the rest), the full table on Sync history, and Recent sync runs on the Dashboard (the app's home page). Note that the connections list's Last run column shows the most recent real sync; it and the dashboard totals both exclude preview runs.

If syncs sit in the queue for more than three minutes, a warning banner appears headed "Queued syncs have not started". It shows on the connection page, on Sync history, and on the dashboard, and it usually clears on its own.

Run statuses

A run is badged Success, Failed, Held, Running, or Skipped. Running means it has started and has not finished yet. Held means Everstock stopped the run before it wrote anything, usually because the feed looked broken, and sometimes because the run was over a plan limit or waiting for your approval; the next section explains it. Skipped happens only when your subscription is frozen: the run is recorded with the note "Plan inactive. Sync skipped." Neither a held nor a skipped run is a failure, and nothing in your store was touched.

When a sync is held

Before a run writes to your store, Everstock checks what it is about to do. If a large share of the products it matched would go from in stock to zero, it holds the run instead of writing it. A supplier feed rarely reports that many zeros at once unless something is wrong with it, such as a broken export or a quantity field mapped to the wrong column.

The check holds a run when at least one in five of the matched products would drop to zero stock. It also needs at least 10 of them, or every matched product when fewer than 10 matched, so a couple of ordinary sell-outs never hold a run. Products the feed does not mention at all are never counted, because those are never set to zero: the ones this connection synced before go to review, and the rest are left alone. New products the run would create are not counted either.

Open the held run to decide what to do. Its banner says how many matched products would have gone to zero, and every change the run would have made is still listed in its audit table, badged Planned. If the zeros are real, click Sync anyway in that banner. It fetches the feed again and writes the changes for that one run only, and the run keeps a note that you confirmed it. If the zeros are not real, fix the feed or the field mapping first.

A held run leaves your store exactly as it was. A scheduled sync that is held will be held again on its next run until the feed changes or you confirm. A preview is never held, but when a real sync would be, the preview records the note "A real sync would be held", so you can find out before a scheduled run stops.

When the feed itself looks different

Everstock also checks the shape of the feed, separate from what it plans to write. Before it compares anything to your store, it looks at how many rows the feed has, whether every field you sync is still there, how often each of those fields is blank, and the typical stock quantity and price across the whole feed. It compares that reading to the connection's last successful sync.

A run is held when the feed has far fewer rows than last time, when a field you sync has stopped appearing in the feed at all, when a field is blank on far more rows than usual, or when the typical stock quantity or price has moved by about tenfold in either direction. Each of those is what a wrong spreadsheet tab, a shifted column, or a broken mapping usually looks like from the outside, even on a day when none of the individual changes it would make look unusual by themselves. This runs before your store is even compared, so it can catch a broken feed that the zero-stock check above would miss. A brand new connection has nothing to compare against yet, so its first sync is never held for this reason, and an ordinary week to week swing on a small supplier is not enough on its own to hold a run.

Open the held run to see which of those tripped, in plain language, for example "This supplier sent 900 items, down from 3,000 last time." Every change the run would have made is still listed in its audit table, badged Planned. If the feed is right, click Sync anyway, the same button the zero-stock check uses, to fetch it again and write the changes for that one run only. If it is not, fix the feed or the field mapping first.

A run can also be held for reasons that have nothing to do with a broken feed. A single field can be held on its own while the rest of the run still writes, and a connection set to Hold changes for my approval holds its first run until you approve it from a preview. See Held changes and approval for both.

On the Free plan a run is also held whole when it would sync more than 2,000 of your products or variants, counting any it would create or add, and on any plan when one connection's run goes over the fair-use ceiling of 50,000, counted the same way. Supplier items you don't sell and don't create never count. Nothing is written and nothing is trimmed in either case, and a held run is never charged. A feed too large to read in one sync is different: the run stops with a message and changes nothing. See Plans, connection limits, and changing plan.

The Run summary

Open a run and the page is headed "Run", a dot and the connection name, or "Preview" and the connection name for a dry run. Its Run summary section shows Started and Finished, a Duration, and five counts. Download CSV in the page header exports the same run.

Fetched is how many records Everstock read from the supplier feed. Applied is how many records it wrote to your store. A record counts once, however many of its fields changed, so a new stock level and a new price on one item is 1. Skipped is how many records were left alone: those that matched a product in your store and needed no change, which is the normal outcome for a record whose stock has not moved, plus any that were not written for a reason the audit names, such as a new item when Create missing products is off. For review is how many records a person needs to look at, such as a supplier row with no SKU or barcode, two rows sharing a key, a product this connection synced before that was absent from the feed, a group of variants Shopify cannot build, or a category with no matching collection. Those are never written. Failed is how many records Everstock could not write, counted the same way.

A real run that wrote something also shows how long you can undo it, for example "You can revert this run until" a date 30 days after it finished. The line goes away once the whole run has been reverted. Revert run sits in the page header. See Read the per-record audit trail.

Under those counts, Run summary also names what the run deliberately left alone, for example "This run did not change: title, description, vendor, product type, tags, images." The counts say what moved; that line says what could not have, because the connection is not syncing those fields. It comes from the connection's own What syncs settings, and it is left out when everything is syncing. The same line appears in the Run details panel on the connection page, so you see it wherever you open a run.

If a field you expected to change is in that line, the fix is on the connection, not the run: open it, turn that field's On existing products switch on, and preview before the next real sync. See Update product content, one field at a time.

On a preview, Applied is always 0, because a preview writes nothing. Its would-be changes appear in the run's audit table below the summary, each one badged Planned. You start a preview with Preview changes, which sits beside Sync now on the connection page and in the row's overflow menu on Connections.

Outcome banners

A preview carries an info banner headed "This run was a preview" with the line "Nothing was written to Shopify." A failed run carries a critical banner headed "Sync run didn’t complete", followed by the underlying messages. A held run carries a warning banner headed "Sync held before anything was written", with a Sync anyway button. A run that finished but recorded something worth reading is headed "Sync run finished with notices", for example the note that a very large run left some review and skipped lines out of its audit.

The Fetch log

When a run made calls to your supplier, a Fetch log section follows the summary and lists them, with Endpoint, Duration, Rows, and Cache. Rows is how many records that entry returned. A feed split into several sub-feeds logs one entry per sub-feed. A feed read over several pages is logged once, as a single entry covering the whole read.

The Cache column badges Miss or Hit. Miss means Everstock fetched that data live from the supplier, which is what you will normally see. Hit means the run reused a recently fetched copy of the feed instead of calling the supplier again, so its duration reads 0 ms.

Dates

Every date and time in the admin is shown in UTC, with the zone printed after the time. The dashboard's activity chart repeats this as "Dates shown in UTC". A run started at 23:30 UTC therefore belongs to that UTC day, not to your local one.

Need help? Visit the support page or email hello@usenormalize.com.