audrey primary-domain incident — post-mortem
2026-05-15 · ~10:40 ET · resolved within ~5 minutes of detection
A Shopify admin handle rename triggered a primary-domain flip on the audrey store. www.audreyinc.com started 301-redirecting every URL to audreyinc.myshopify.com instead of serving content directly. Detected during routine post-rename verification; recovered via a single “Set as primary” click in the Domains panel.
TL;DR
- What happened:
www.audreyinc.comlost its Primary domain role on the audrey Shopify store, causing every customer-facing URL to 301-redirect toaudreyinc.myshopify.com - What triggered it: The Shopify admin handle rename earlier in the day (
audreyinc→dogwoodhouse, separate from but coincident with the GitHub xlab-studio → xlab-nyc rename) - How it was detected: Verifying that the theme’s Product JSON-LD already emits
@id(for Judge.me reviews-app context) — the product URL returned HTTP 301, and the Shopify response headerx-redirect-reason: primary_domain_redirectionnamed the cause - How it was fixed: Settings → Domains → click
www.audreyinc.comrow → Set as primary → confirm - Time-to-resolve: ~5 minutes from detection to verified-fix
- Customer-facing exposure: ~2 hours during the working session — minimal traffic loss for audrey’s current volume, but a real signal-fidelity issue if it had persisted into peak retail hours
Diagnostic walkthrough
The header that named the cause:
HTTP/2 301
location: https://audreyinc.myshopify.com/
x-redirect-reason: primary_domain_redirection
shopify-complexity-score: 22
x-redirect-reason: primary_domain_redirection is Shopify’s first-party signal — it told us exactly what was wrong, no guessing required.
Scope check — was it universal, or product-specific?
| URL | Pre-fix | Post-fix |
|---|---|---|
www.audreyinc.com/ |
301 → myshopify | 200 ✓ |
www.audreyinc.com/products/silk-scarf-1 |
301 → myshopify | 200 ✓ |
www.audreyinc.com/products/doodle-dog |
301 → myshopify | 200 ✓ |
www.audreyinc.com/collections/all |
301 → myshopify | 200 ✓ |
www.audreyinc.com/collections/enchanted-gardens |
301 → myshopify | 200 ✓ |
www.audreyinc.com/pages/contact |
301 → myshopify | 200 ✓ |
www.audreyinc.com/llms.txt |
301 → myshopify | 200 ✓ |
www.audreyinc.com/.well-known/ucp |
301 → myshopify | 200 ✓ |
audreyinc.myshopify.com/ |
(was primary, served direct) | 301 → www.audreyinc.com ✓ (correct direction) |
Universal across the host. Not product-specific.
Why the rename triggered the flip
The admin handle rename (from audreyinc to dogwoodhouse in admin.shopify.com/store/<handle>/...) is supposed to be a cosmetic change — the storefront identity, customer-facing primary, and .myshopify.com subdomain are all separate concerns. In practice, the rename appears to have:
- Promoted
audreyinc.myshopify.comto Primary (where it had beenwww.audreyinc.com) - Added
dogwoodhouse.myshopify.comto the Domains list as a redirect alias (benign) - Left the
www.audreyinc.comDomain entry with a stale “Primary” badge in the UI — but the server-side primary was no longer pointing at it
The UI label was misleading. The server-side primary was the load-bearing truth. The x-redirect-reason header was the only authoritative source.
What this tells us
Two distinct lessons:
1. Shopify renames have under-documented cascade effects. The admin handle rename is presented as cosmetic — but it can perturb adjacent configuration (primary domain, .myshopify aliases) without surfacing those changes in obvious places. Whenever a portfolio store undergoes ANY rename, build the verification checklist for adjacent surfaces (Primary domain, redirect rules, Shopify-managed metafields that pull from store identity).
2. Trust the response headers, not the admin UI. The Domains panel showed www.audreyinc.com with a “Primary” badge. The server said otherwise via x-redirect-reason: primary_domain_redirection. When UI and behaviour disagree, behaviour is the source of truth. This sits inside user_compounding_signal_north_star — the signal layer must be auditable from outside the admin, not just visually inspected within it.
Watch items
- [ ] Check GSC for any spike in 301 redirects on www.audreyinc.com in the post-incident window — Google may have crawled while the redirect was active
- [ ] Verify all critical surfaces are back to direct-serve with content matching expectations:
- [x] homepage HTTP 200
- [x] product PDP HTTP 200 + ProductGroup JSON-LD with
@id - [x] llms.txt HTTP 200 + Audrey bio still correct
- [x] .well-known/ucp HTTP 200 + UCP discovery intact
- [ ] Monitor for recurrence — if the rename’s primary-flip can happen during routine admin activity, it might happen again. Worth a daily curl-check on www.audreyinc.com/ as part of audrey’s housekeeping for the next week
- [ ] Audit dogwood.house and dare.co.uk for analogous configurations — neither runs on Shopify, so the specific pattern doesn’t apply, but the broader lesson (UI labels can lie; trust behaviour) generalises
Recommendations
Process
- Build a “post-rename verification curl” sweep for any future Shopify admin handle change. Three commands:
bash curl -sI https://www.<custom-domain>.com/ | head -3 # expect 200 + no x-redirect-reason curl -sI https://<store>.myshopify.com/ | head -3 # expect 301 → custom domain curl -s https://www.<custom-domain>.com/llms.txt | head -3 # expect 200 + correct bioRun before declaring a rename “complete.” Same shape across audrey, future Shopify clients, etc.
Tooling
- Add a “Shopify primary-domain sanity check” to audrey’s planned dashboard. A single boolean tile: “Primary serving direct?” — flips to red if
x-redirect-reason: primary_domain_redirectionever appears onwww.audreyinc.com/. This is the cheapest possible reliability watch and would have caught the issue inside 5 minutes rather than waiting for a manual verification step.
Memory
- This incident is captured in
feedback_orphan_jsonld_patternadjacent context. Worth its own short feedback memory: “Shopify admin handle renames can cascade into primary-domain flips — always verify with the x-redirect-reason header after any rename activity.”
Linked artefacts
- xlab_studio_rename_complete_2026-05-15 — the simultaneous GitHub org rename that this side-effect was caught alongside
- audrey_reviews_app_analysis_2026-05-15 — where the diagnostic curl that surfaced the issue actually came from
project_shopify_ucp_audrey_native— the broader audrey Shopify context
What this earns the portfolio
- A documented signature (
x-redirect-reason: primary_domain_redirection) for diagnosing similar incidents in seconds, not hours - A verification protocol applicable to any future Shopify rename across the portfolio (audrey today, dogwood if it ever moves to Shopify, future client work)
- A reminder of the broader principle: trust behaviour over UI labels when they disagree
Generated 2026-05-15. Detection-to-resolution: ~5 minutes. Customer-facing exposure: ~2 hours. Lesson value: substantial.