Checkout — apply promo code
RejectedBuild v2.4.1-rc3·Tested by Dami Oyelaran··6m 41s·Chrome 131 · macOS · 1440×900
✕ Rejected by Dami Oyelaran ·
Promo codes don't apply at all — the API returns 500 and the cart total never changes. The Apply button also gets stuck disabled after navigating away and back.
What went wrong
Tester notes3
- major
Discount never applies — the total stays at £48.00 and "Something went wrong" shows under the field.
- minor
Apply button stays disabled after navigating away and back — have to refresh to retry.
- cosmetic
Promo field placeholder is cut off on narrower widths.
Errors2 unique · 3 total
TypeError: Cannot read properties of undefined (reading 'total')×2first at· applyDiscount assets/cart-8f2a1c.js:341:27Error: Request failed with status 500first at· fetchJson assets/api-2b91de.js:18:11
Failed requests2 unique · 3 total
- POST/api/cart/apply-promo500×2600ms
- POSTevents.acme-analytics.io/collectblockedlikely an ad blocker
Steps to reproduce
- 1
Navigate to /cart
- 2
Click field “Promo code”
- 3
Click button “Apply”
- 4
POST /api/cart/apply-promo → 500×2
- 5
TypeError: Cannot read properties of undefined (reading 'total')×2
- 6
Error: Request failed with status 500
- 7
majorDiscount never applies — the total stays at £48.00 and "Something went wrong" shows under the field.
- 8
Click button “Apply”
- 9
Click link “Account”
- 10
Navigate to /account
Timeline
- Navigate to /cartpushState
GET/api/cart20084ms›
GET https://staging.acme-shop.dev/api/cart
HTTP/1.1 200 OK
Request headers
- Accept
- application/json
- Authorization
- [REDACTED]
Sensitive headers and fields are redacted in the browser before upload. Response bodies aren't available to extensions.
- info
[analytics] page_view /cart
- warn
Warning: Each child in a list should have a unique "key" prop. Check the render method of `CartItems`.
Stack traceon /cart
at CartItems (https://staging.acme-shop.dev/assets/cart-8f2a1c.js:112:9) at CartPage (https://staging.acme-shop.dev/assets/cart-8f2a1c.js:204:5) - Click field “Promo code”input[data-testid="promo-input"]
- Click button “Apply”button[data-testid="apply-promo"]
- log
[cart] applying promo SPRING20
POSTevents.acme-analytics.io/collectnet::ERR_BLOCKED_BY_CLIENT›
POST https://events.acme-analytics.io/collect
Request body
{ "event": "promo_apply_clicked" }Sensitive headers and fields are redacted in the browser before upload. Response bodies aren't available to extensions.
POST/api/cart/apply-promo500612ms›
POST https://staging.acme-shop.dev/api/cart/apply-promo
HTTP/1.1 500 Internal Server Error
Request headers
- Accept
- application/json
- Content-Type
- application/json
- Authorization
- [REDACTED]
- X-Request-Id
- req_7Hc2kQ9
Request body
{ "code": "SPRING20", "cartId": "cart_8a1f" }Sensitive headers and fields are redacted in the browser before upload. Response bodies aren't available to extensions.
- error
TypeError: Cannot read properties of undefined (reading 'total')
Stack traceon /cart
TypeError: Cannot read properties of undefined (reading 'total') at applyDiscount (https://staging.acme-shop.dev/assets/cart-8f2a1c.js:341:27) at async onApply (https://staging.acme-shop.dev/assets/cart-8f2a1c.js:388:5) Screenshot captured automatically on error/cart
- rejection
Error: Request failed with status 500
Stack traceon /cart
Error: Request failed with status 500 at fetchJson (https://staging.acme-shop.dev/assets/api-2b91de.js:18:11) at async applyPromo (https://staging.acme-shop.dev/assets/cart-8f2a1c.js:302:18) - major
Discount never applies — the total stays at £48.00 and "Something went wrong" shows under the field.
- Click button “Apply”button[data-testid="apply-promo"]
- log
[cart] applying promo SPRING20
POST/api/cart/apply-promo500588ms›
POST https://staging.acme-shop.dev/api/cart/apply-promo
HTTP/1.1 500 Internal Server Error
Request headers
- Accept
- application/json
- Content-Type
- application/json
- Authorization
- [REDACTED]
- X-Request-Id
- req_Pq81xZ2
Request body
{ "code": "SPRING20", "cartId": "cart_8a1f" }Sensitive headers and fields are redacted in the browser before upload. Response bodies aren't available to extensions.
- error
TypeError: Cannot read properties of undefined (reading 'total')
Stack traceon /cart
TypeError: Cannot read properties of undefined (reading 'total') at applyDiscount (https://staging.acme-shop.dev/assets/cart-8f2a1c.js:341:27) at async onApply (https://staging.acme-shop.dev/assets/cart-8f2a1c.js:388:5) - Click link “Account”nav.site-nav > a
- Navigate to /accountpushState
GET/api/account200132ms›
GET https://staging.acme-shop.dev/api/account
HTTP/1.1 200 OK
Request headers
- Accept
- application/json
- Authorization
- [REDACTED]
Sensitive headers and fields are redacted in the browser before upload. Response bodies aren't available to extensions.
- Go back/forward to /cartpopstate
GET/api/cart20077ms›
GET https://staging.acme-shop.dev/api/cart
HTTP/1.1 200 OK
Request headers
- Accept
- application/json
- Authorization
- [REDACTED]
Sensitive headers and fields are redacted in the browser before upload. Response bodies aren't available to extensions.
- Click button “Apply” (disabled)button[data-testid="apply-promo"]
- minor
Apply button stays disabled after navigating away and back — have to refresh to retry.
- cosmetic
Promo field placeholder is cut off on narrower widths.