A sync did not start, or the feed could not be reached

TroubleshootingUpdated 23 September 2026

When a sync does not start, or the feed cannot be read, the answer is on the run, not on the connection. Open Sync history, open the run, and read the banner and counts there.

One thing to rule out: a connection's Status never changes when a sync fails. It reads Active either way, so it tells you nothing about the problem.

"Couldn't reach the supplier feed"

This banner appears on the Connect a supplier page, in the Inventory endpoint & mapping section near the end of the form, when Test connection cannot read a REST API feed. It carries the supplier's own error text, or, when there is none, "Check the base URL, inventory path, and credentials above, then test again."

The usual causes:

  • The Base URL or Inventory path is wrong. The message usually reads like HTTP 404 from ....
  • The credentials are wrong, expired, or of the wrong auth type. Expect HTTP 401 or HTTP 403.
  • The supplier is rate-limiting you. The message reads rate-limited (429). BigBuy publishes a limit of 10 requests per hour on its stock endpoint, so do not run that connection more often than once an hour.
  • The supplier has not approved you yet. Lipsey's pre-approves caller domains and egress IPs, so ask Normalize for the addresses and submit them before your first sync.

Fix the field and press Test connection again. A test writes nothing, so repeat it freely.

On a saved connection, do this in the Credentials section of the connection page. Test connection there reports "Connection test passed" or "Connection test failed", and the Shopify admin save bar stores the change once you press Save. Leave a secret field blank to keep its current value.

"Couldn't read that file"

For a CSV or spreadsheet connection, Test connection shows this banner when the file cannot be read. Check these first:

  • The File URL must start with https://, and anyone with the link must be able to open it. A Google Sheet must be shared as "Anyone with the link can view", or published to the web.
  • For FTP or SFTP, check the Protocol, Host, File path and login details. Leave Port blank unless your supplier gave you a different one.
  • An uploaded file must be a .csv or .xlsx file of 20 MB or less.

A connection set to Upload a file with no file yet fails with "No file has been uploaded yet for this connection." Upload one from the Credentials section of the connection page. See Connect a CSV file or spreadsheet.

If a real sync hits the same problem, the run is recorded as Failed and the run detail shows "Sync run didn’t complete" with the same message underneath. Do not go looking for a Fetch log on that run. A call is logged only once it comes back, so a call that never got an answer leaves no row, and the section does not render at all. A Fetch log appears when at least one call succeeded, and it lists Endpoint, Duration, Rows and Cache.

"The supplier's feed took longer than 2 minutes to download"

Everstock gives each supplier feed a set time to arrive. A feed that arrives in one piece has 2 minutes. That covers a CSV or XLSX file at a web address, a Google Sheet, and a REST API feed sent as a single response. A feed that Everstock reads page by page, such as a WooCommerce store or the BigBuy preset, has 15 seconds for each page. Either way, the supplier's server has 15 seconds to start answering.

When that time runs out, the sync stops before it changes any of your products. The run is recorded as Failed, and its detail shows "Sync run didn’t complete" with the reason underneath, for example "The supplier's feed took longer than 2 minutes to download, so Everstock stopped without changing any products." For a feed read page by page, the sentence names 15 seconds instead. Test connection and the file preview show the same sentence. Two related messages mean much the same thing:

  • "The supplier's server did not respond within 15 seconds" means the server never started to send the feed.
  • "The supplier's feed stopped partway through the download" means the download broke off before the whole feed arrived.

A feed that did not arrive in full is never read as a shorter or empty feed, so your stock, prices and products stay exactly as they were. A connection on a schedule tries again at its next sync, so a supplier that was slow for a moment needs nothing from you. If it keeps happening:

  • Ask your supplier for a faster link to the same feed, or a smaller one with only what you sync, such as a file of stock and prices.
  • For a CSV or XLSX file, connect it over FTP or SFTP instead, if your supplier offers that and their server is faster. There the whole download must finish within 30 seconds.
  • Or download the file yourself and upload it, as a .csv or .xlsx file of 20 MB or less. An uploaded file does not update itself. A scheduled sync reuses it until you upload a new one. See Connect a CSV file or spreadsheet.

The supplier's feed is too large to read in one sync

There is a technical limit on how large a supplier feed Everstock can read in one sync. It depends on the feed's size and its number of rows, not on your plan, and no plan raises it. A feed over it stops the sync before anything is compared or written: the run fails with a message saying the feed is too large, and your stock, prices and products stay exactly as they were.

A big supplier catalogue is not a problem in itself. Your plan's limit counts only the products in your store that a run syncs, plus any it would create, so a feed far larger than your store is fine up to this technical limit. If a feed goes over it:

  • Ask your supplier for a smaller export with only what you sync, such as the brands you carry, or stock and prices only.
  • If your supplier splits its catalogue into several files, for example one per brand or warehouse, connect each file as its own connection. Each one counts towards your plan's connection limit.

A frozen plan stops syncs before they start

If your Everstock subscription is frozen, nothing runs. Pressing Sync now or Preview changes answers "Your plan is inactive. Reactivate it to run a sync." and no run is created at all. Scheduled and catch up syncs behave differently: they do record a run, with the status Skipped and the message "Plan inactive. Sync skipped." A Skipped run is neither a failure nor a sync. Open Billing in the app, which takes you to your store's own Shopify pricing page for Everstock, reactivate the plan there, and the next sync runs normally.

Queued syncs that have not started

If a queued sync sits unprocessed for more than three minutes, Everstock shows "Queued syncs have not started" on the dashboard under "Needs attention", on Sync history, and on the connection page. The body reads: "N syncs are queued and have not started, so your inventory is not being updated right now. This usually clears on its own. If it does not, contact support."

After you press Sync now or Preview changes, the connection page watches the run for two minutes. If it has not finished by then, the page stops watching and shows a banner in place of the spinner. It reads "This sync is taking longer than expected" or "This sync never started", with a Check again button. If the sync is still queued, the "Queued syncs have not started" banner shows instead.

None of these cancel anything. The page stopped watching, the run did not. It carries on and shows in Sync history once you reload.

The run finished but nothing changed

Read the Run summary first: Fetched, Applied, Skipped, For review, Failed, and Duration. Applied at 0 with a high Skipped is the normal, healthy case: those records matched a product and were already correct. They are counted in Skipped and nowhere else. They get no row in the per record audit, so an empty table under a large Skipped count is the app working, not detail going missing.

On a Preview run nothing is written at all, so Applied is honestly 0 and every would be change is listed as Planned.

A high "For review" is the other common answer. Open the run and set the "Item status" filter to Review. The "Change" column names the reason. The common ones are "No SKU or barcode in the feed", "Duplicate SKU or barcode in the feed", and "Not in this feed" (a product this connection synced before that was not in the latest feed). Groups of variants Shopify cannot build, and categories with no matching collection, land there too. See What "For review" means. That last one is deliberate. Everstock never writes a product down to zero for being missing from a feed, so a short or empty feed sends rows to review.

Your settings can also produce a quiet run. A feed row whose quantity is blank or unreadable is skipped and your stock is left alone. Prices only move when Price is on for existing products. Other fields only move when their On existing products checkbox is on, and those start off. New variants are only added when New variants on existing products is set to add them, and collections only change when Collections is turned on. Anything in Ignore list (optional) is dropped before the diff runs, although those rows still count towards Fetched. The run page names the fields the connection does not update, in a line that starts "This run did not change".

A dry run with nothing to do says so, in the "Preview: proposed changes" modal: "Everything is in sync. A real run would change nothing."

A run badged Held is a different case again. Everstock stopped it before it wrote anything, because the feed looked broken, because the run was over a plan limit, or because the connection is set to hold changes for your approval. The run's own banner says which, and nothing was written or trimmed. See Run a sync and read the result and Plans, connection limits, and changing plan.

Retries

A failed sync job is tried up to 5 times by default, meaning the first attempt plus four retries, with a wait that starts at 1 second and doubles after each failed attempt. Change both per connection under Retry, in the Advanced section near the bottom of the connection page. Click Show advanced settings, then use Max retry attempts (optional) and Retry backoff (optional), which is in seconds. Leave either blank to use the default.

Everstock runs inside your Shopify admin. If you open an Everstock link straight in a browser tab, for example from a bookmark or an email, the page cannot tell which store you mean. Instead of an error, you see a page titled "Open Everstock in Shopify".

Enter your store name, like my-store, or its my-store.myshopify.com address in Store, then click Open in Shopify admin. Everstock opens the same page inside your admin. If the store name is not valid, the field says "Enter your store name, like my-store or my-store.myshopify.com".

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