The shopper added their item.
A normal add-to-cart on the store. The cart now holds one item, a real, valid checkout is created and ready to go.
On big drops, some shoppers reached the front of the line and found an empty cart. We pulled the full network capture. The cart was emptied by Shopify’s own checkout queue the instant it finished, not by SuperSwipe. Here’s the proof, in plain English and in full technical detail.
Shopify has officially replicated the empty cart behavior on their own systems and confirmed to SuperSwipe that it’s a bug in their checkout queue. At approx 9PM PST on May 29, Shopify issued a temporary fix that allowed users to enter the draw. Their team is now working diligently on a permanent fix.
SuperSwipe has run successfully on Shopify’s checkout queues before via testing. The empty cart behavior appeared only with the checkout queue Shopify added for this Cactus Jack drop.
While Shopify’s checkout queue buckled under the traffic, SuperSwipe stayed up the entire time, every fan, every poll, every spike.
The three facts below come straight from a decrypted network capture of a real, queued entry. Nothing is inferred.
Right up to the moment the queue released the shopper, the cart held its item. Shopify’s own endpoint confirmed it.
The instant Shopify’s queue finished, its checkout page sent the browser to
/cart/clear, creating a brand new empty cart.
SuperSwipe’s only cart call is the clear-then-add on the storefront when a fan taps Enter Draw. It has no access to Shopify’s checkout or queue, and made no cart action after the queue.
No jargon. Just the five things that happened to one shopper’s cart, in order.
A normal add-to-cart on the store. The cart now holds one item, a real, valid checkout is created and ready to go.
On a hyped drop, Shopify runs its own checkout throttle, a waiting room that holds shoppers back.
Shopify’s queue returned PollComplete, “you’re
up.” That response contained
no cart and no destination URL. What happens next is decided by
Shopify’s own checkout code running in the browser.
Instead of dropping the shopper back into their checkout, Shopify’s queue
page navigated the browser straight to /cart/clear, and it did so
without attaching the cart cookie.
With no cart cookie to recognize, Shopify spun up a fresh, empty cart and showed
it to the shopper. Their item was gone, item_count: 0. From the
shopper’s seat, it looks like SuperSwipe lost their order. We
didn’t. The queue did.
Every request in the capture maps to a responsible party, by who actually made the call, not by who got blamed.
The single request that empties the cart, captured raw, with the three details that pin it on Shopify’s queue and rule out any app, theme, or server redirect.
sec-fetch-mode: navigate +
sec-fetch-dest: document means a full top-level page navigation (a
window.location change), not an XHR, and not a 3xx from any server.
The page itself drove the browser here.
The Referer is
…/checkouts/cn/<token>/en-us/throttle, Shopify’s
own checkout waiting room. Third-party app scripts (including SuperSwipe’s)
do not run on that page.
The request rode along with 34 cookies, but not the
cart cookie. With nothing to identify the existing cart, Shopify
minted a fresh one and set it via set-cookie: cart=….
We scanned 6,422 responses in the queue-completion window for any
Location: header pointing at /cart/clear. There were
none. Shopify’s PollComplete body carried only a
token, no URL. The destination is constructed by Shopify’s own checkout-web
JavaScript, which is where the string /cart/clear lives.
We tested cart creation via Shopify’s Storefront API and via
the AJAX Cart API (/cart/add.js).
Both replicate the same post-queue empty cart behavior, so the defect
isn’t tied to how the cart is built. Shopify is aware of this.
| Time | Who | What happened | Result |
|---|---|---|---|
| 17:27:37 | SuperSwipe | GET /api/release-statistics, read-only telemetry, no Set-Cookie | 200 |
| 17:30:19 | SuperSwipe | POST /cart/clear.js, Enter Draw clear-then-add on the storefront (carries cart cookie) | 200 |
| 17:30:20 | SuperSwipe | POST /cart/add.js, Enter Draw adds the item, cart item_count → 1 | 200 |
| 17:30:22 | Shopify | GET /checkout → /checkouts/cn/<token> (enters queue) | 302 |
| 17:31:19 | Shopify | GET /cart.json, cart still valid, item_count = 1 | 200 |
| 17:37:31 | Shopify | POST /queue/poll, queue finishes (PollComplete) | 200 |
| 17:37:32 | Shopify | GET /cart/clear, mints a NEW EMPTY cart | 302 |
| 17:37:38 | Shopify | GET /cart, shopper lands on the cart… now empty | 200 |
| 17:37:39 | Shopify | GET /cart.json, confirmed item_count = 0 | 200 |
Here’s exactly what the decrypted capture establishes.
item_count=1) until the queue completed.
/cart/clear ran at completion and produced an empty
cart.
Cart clear after the queue originates from the Shopify-hosted checkout / throttle page
(its Referer), where third-party app scripts do not run, and
no SuperSwipe resource performed any cart action after the queue.
This is squarely inside the checkout throttle. Three concrete changes would end the empty cart problem for every merchant running a queued drop.
Preserve the cart across the queue. A shopper admitted by
PollComplete should land in their existing checkout
(/checkouts/cn/<token>) or a populated /cart, never
via /cart/clear.
Keep sending the cart cookie when leaving the queue. The post-queue
navigation reached /cart/clear with no cart cookie, which
is what caused Shopify to spin up a new empty cart.
Don’t route queue completion through a clear step at all. There is no
reason the path out of the waiting room should pass through
/cart/clear.
We’re not waiting on this. Here’s exactly where the fix stands, and how we’re keeping your next drop clean.
Shopify reproduced the empty cart behavior on their own systems and confirmed to us it’s a bug in their checkout queue. We’re working closely with their team on the fix.
Shopify has acknowledged the issue on their end and their engineering team is working diligently to rectify it. We’re in direct contact with Shopify throughout, and we’ll post each update right here as the fix lands.
Every upcoming drop will be coordinated directly with Shopify, so the checkout queue and the cart stay in sync, start to finish.
We’ll keep this page updated as the fix progresses. Questions in the meantime? Talk to us.
SuperSwipe runs fair draws and sets up the cart on the storefront when a fan taps Enter Draw, then hands them to Shopify’s native checkout. We have no access to Shopify’s checkout or queue, so once a shopper is in line, the cart is entirely in Shopify’s hands. When the queue misbehaves, the fix is Shopify’s, and we’ll keep bringing the receipts so the right thing gets fixed, fast.