When something looks wrong
Common symptoms in the Shopify app and what they mean
Audience: Logistics Manager
Symptoms you may meet, what each one means, and what to do about it.
Start at the Activity page. It lists every sync attempt with its status and details, and most of what follows is visible there.
A stock sync stopped because it would have emptied a location
What you see. A red banner on the Warehouse stock page: "Sync stopped — it would have emptied your location", naming how many SKUs would have gone to zero.
What it means. pyck reported most of that location's stock as zero. Nothing was written and your Shopify stock is exactly as it was. Far more often this is a storage area that was emptied, re-seeded or renamed in pyck than a real sell-out, so the app stops instead of taking your storefront down.
What to do. Check the paired storage area in pyck. Once it reports normal counts again the next sync goes through by itself, with nothing to click.
If the warehouse really did empty, use Let this sync through once. It applies to one sync only — the next is checked exactly as before.
"No production connection"
What you see. A warning on the Warehouse stock page saying no stock will move whichever option you pick, or a 403 reported by your pyck worker when it tries to write stock.
What it means. Only the production connection may fulfil orders and write stock. Your store currently has none — usually because it was deleted, or because a different connection was made production and the old one demoted.
What to do. Open Connections and use Make production on the connection that runs your real warehouse. If the connection exists but is switched off, switch it back on: a deactivated production connection is refused for the same reason a missing one is.
A record will not sync, and the reason names a label
What you see. In Activity, a failed entry saying an unknown pyck route label was used, or that the label names a connection that is switched off.
What it means. The product, customer or order carries a route label — in its pyck route field or a pyck-route-… tag — that matches no connection on your store. A typo like pyck-route-stagg does this, and so does a label pointing at a connection that has since been deleted or deactivated.
The record was not sent anywhere. It did not partially deliver and it did not fall back to sending everywhere, because you wrote a label in order to restrict it and quietly ignoring that would send your data to tenants you deliberately excluded.
What to do. Compare the label against your connection names under Connections. Fix the label on the record, or reactivate the connection it names. The record syncs on its next change; to push it immediately, run a Full sync from Activity.
See Sending data to several pyck tenants for how labels work.
A value I set in pyck keeps changing back, or disappears
What it means. The field has a Shopify source in the connection's Data mapping (under Settings, Advanced), so Shopify owns it. Every sync writes Shopify's value again, and a value cleared in Shopify is removed in pyck. A mapping that still names a metafield definition deleted or renamed in Shopify counts as cleared too.
What to do. Change the value in Shopify, or set the field to Not synced so pyck owns it from then on. If the field keeps disappearing although Shopify has a value, look for a metafield marked as stale in the Data mapping and pick the current one. See What a sync overwrites in pyck.
A record fails with "jsonschema validation failed"
What you see. In Activity, a failed entry such as at '/unitOfMeasure': maxLength: got 6, want 3 or at '/status': got array, want string. When an existing product is updated because it changed in Shopify, the entry only appears after you choose Record every attempt on the Activity page; without it, the product simply stops changing in pyck. A required field that was cleared in Shopify fails the same way.
What it means. A mapped Shopify source sends a value your pyck schema does not accept, and pyck rejects the whole record. Typical causes: a product's Weight unit (POUNDS) mapped to a short unit-of-measure field, or Order tags (always a list) mapped to a single-value field.
What to do. In Data mapping (under Settings, Advanced), pick a source whose values fit the field, or set the field to Not synced. The record syncs on its next change, or straight away with Sync now on the Home page.
A file attached in Shopify disappeared from pyck
What it means. Files always follow Shopify. When a file metafield is cleared or points at a different file, the file the app delivered earlier is deleted. Files your team attached in pyck directly are not affected.
What to do. Attach the file again in Shopify. See What a sync overwrites in pyck.
A product is not appearing in pyck
What you see. The product exists in Shopify but never turns up in pyck, and Activity shows it as skipped or reports that variants were left out.
What it means. The most common cause is that the variant has no SKU. pyck identifies stock by SKU, so a variant without one has nothing to be matched against and is never sent. This is not a setting you can loosen.
What to do. Give the variant a SKU in Shopify and it will sync on the next change. If some variants of a product have SKUs and some do not, only the ones with SKUs are sent.
Two other possibilities worth checking:
Products are switched off under Connections.
The product carries a route label — see the previous section.
Stock is not updating in Shopify
Work down this list; the first one that is not true is your answer.
The location is paired with a pyck storage area
Connections, Warehouse stock card
The mode is not off
Warehouse stock page
The location's first sync has been approved
Warehouse stock page — a location badged "Never synced" is waiting for you
A production connection exists and is switched on
Connections
If all four are fine, look at the location's last run. A run badged in orange stopped on purpose and wrote nothing — see the table on the Warehouse stock page for what each reason means.
One SKU never changes while others do
What it means. Two likely causes, both of which the app handles by leaving the SKU alone rather than guessing:
pyck holds no entry for that SKU. It is skipped, never set to zero. Anything you do not keep in the paired storage area stays exactly as it is in Shopify.
More than one Shopify product uses that SKU. The app refuses to decide which of them a count belongs to.
What to do. For the first, check the item exists in the paired storage area in pyck. For the second, give the products distinct SKUs in Shopify.
An order shows as available below zero
What it means. This is usually correct, not a fault. pyck reports the physical count on the shelf, and Shopify subtracts the units already promised to open orders:
3 on the shelf with 5 already sold shows as −2 available. You are oversold, and the number is telling you by how much.
What to do. Treat it as a stock alert rather than a display bug.
An order was not shipped, and pyck reports a conflict
What you see. Your pyck worker gets a 409 saying another connection owns the order.
What it means. An order can be delivered to several pyck tenants, but exactly one owns it and may ship it. The tenant that called is holding a copy. This is what stops one order being posted twice.
What to do. Nothing on the copy's side — it should log and move on. If the owning tenant is not shipping either, check under Connections that it has not been switched off: an order whose owner is deactivated cannot be shipped by anyone until it syncs again.
A test order reached the wrong place, or did not reach production
Orders Shopify marks as tests — Bogus gateway or Shopify Payments test mode — are deliberately excluded from the production connection whatever labels they carry. They still reach your other tenants. This is by design and cannot be overridden.
Nothing at all is syncing
Setup may be incomplete. If the app's menu shows Setup instead of Connections, Warehouse stock and Activity, no connection exists. See Setup.
Deleting your last connection reopens setup and stops syncing until you connect one again.
Products, customers and orders each have their own switch under Connections.
Use Validate on a connection's card to check the connection itself is healthy.
Last updated
Was this helpful?
