Docs / Conflicts and troubleshooting
What happens when both sides change the same thing, and what the messages you'll actually see mean.
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.
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.
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.
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.
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.
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.
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.
Email syncline@secondactlabs.io with the message you're seeing and, if it's from the activity log, the row it points to.