Two days after EZBundle went live, Canadian Liquor Store installed it.
Then they emailed: "I've installed the app but I couldn't search my products."
My first instinct was — is there a bug? I went straight to the Railway logs. Auth worked. Session created. AfterAuth hook fired. No errors.
Then I looked at the products page code and found it immediately. The product search is gated behind having at least one supplier added first. Logical from a data model perspective. Completely invisible to a new user staring at an empty screen.
The banner said "Add a supplier first." That's it. No explanation of why, no hint that the search they were looking for was one step away.
I changed it to: "Step 1: Add a supplier to unlock product search" with a full explanation of the flow.
One line of copy. Took 3 minutes to fix and deploy.
The real lesson wasn't the bug — there was no bug. It was that I built the onboarding for someone who already understood the mental model. The merchant didn't. That gap is on me, not them.
If you're building a Shopify app: your empty states are your onboarding. Treat them like landing page copy, not placeholder text.