Docs / Conflicts and troubleshooting

Conflicts and troubleshooting

What happens when both sides change the same thing, and what the messages you'll actually see mean.

How a conflict is detected

Every sync compares three values, not two: the baseline Syncline last recorded, the sheet's current value, and Shopify's current value. A baseline that matches only one side means just that side changed — an ordinary sync, nothing to record. A baseline that matches neither means both sides changed the same field independently, and that's a genuine conflict.

The resolution policy doesn't change because a conflict was detected: the sheet still wins going out, Shopify still wins coming in. What changes is that the loss becomes visible instead of silent — recorded in the activity log with the value that was overwritten and a link straight to the row.

Why content and inventory are tracked separately

Stock moves constantly and for reasons that have nothing to do with a pending content edit — an order, a return, another app. If inventory and content shared one comparison, every sale would look like a conflict with whatever price change happened to be waiting. They're hashed independently so a stock movement and a title edit can't be mistaken for the same event.

Common messages, explained

“Starting setup again” after reconnecting Google

The Google account you just connected can't open the spreadsheet a different account created. Syncline clears the old link rather than guessing — create a new spreadsheet and export your catalogue to resume. Nothing in Shopify is touched by this.

“Google Drive permission is missing”

On Google's consent screen, the checkbox for file-creation access was left unticked — it's off by default. Reconnect and tick it; without it, Syncline can see that Google is connected but can't create or write to a spreadsheet.

A conflict entry in the activity log

Both sides changed the same field before the last sync ran. The later edit wins, exactly as it would with no conflict detection at all — the difference is that this case is recorded rather than silent, with the value it overwrote and a link to the row.

A row you deleted is still in Shopify

That's by design. Deleting a row is flagged for review rather than acted on, so a cleanup pass in the sheet can't remove a product by accident.

An inventory write keeps failing as “stale”

Shopify rejects a quantity write when the count moved since Syncline last read it. This resolves itself on the next pass, which reads the current count first — it isn't a mapping or permissions problem.

Still stuck

Email syncline@secondactlabs.io with the message you're seeing and, if it's from the activity log, the row it points to.