| Bug ID |
Title |
Module |
Severity |
Priority |
Environment |
Steps to Reproduce |
Expected |
Actual |
Status |
Reported |
| SE-BUG-101 |
Apple Pay payment fails silently — order created but payment not captured |
Payment |
Blocker |
P0 |
Staging · iOS 17.4 · iPhone 14 · Safari |
- Add item to cart ($49.99)
- Select Apple Pay at checkout
- Authenticate with Face ID
- Tap "Pay" in sheet
|
Order confirmed. Payment captured in Stripe. Confirmation email sent. |
Order created with "Payment Pending" status. Stripe shows no charge. Order confirmation email NOT sent. User sees success screen (incorrect). |
Fixed |
13 Apr 2025 |
| SE-BUG-102 |
Checkout step 2 crashes on Firefox when changing shipping address |
Checkout |
Critical |
P1 |
Staging · Firefox 125 · Windows 11 |
- Add item, proceed to checkout
- Reach step 2 (Shipping)
- Click "Add New Address"
- Fill form and save
|
New address saved. Page remains on checkout step 2. |
Uncaught TypeError in console. Page goes blank. Cart preserved but user must navigate back manually. Console: Cannot read properties of null (reading 'addressId') |
Fixed |
14 Apr 2025 |
| SE-BUG-103 |
Declined Apple Pay does not show error — success screen shown instead |
Payment |
Critical |
P1 |
Staging · iOS 17.4 · Safari |
- Use Stripe test card 4000000000000002 (declined)
- Attempt Apple Pay checkout
|
Error message: "Payment failed. Please try another method." Order NOT created. |
Success confirmation screen shown. Order created with status "Payment Failed". Misleading UX. Relates to SE-BUG-101 root cause. |
Fixed |
13 Apr 2025 |
| SE-BUG-104 |
Wishlist share link reveals private pricing (staff-only discounts) |
Wishlist |
Critical |
P1 |
Staging · Chrome 124 · macOS |
- Log in as staff account (with staff discount)
- Add items to wishlist
- Generate share link
- Open link as guest
|
Guest sees standard retail prices. |
Guest sees staff-discounted prices (e.g. 30% below retail). Staff pricing leaked via share API response. |
Fixed |
16 Apr 2025 |
| SE-BUG-105 |
Order cancellation API returns 500 for orders with split shipments |
Order Management |
Critical |
P1 |
Staging API · Postman |
- Place order with 2 items from different warehouses (split shipment)
- Call DELETE /api/orders/{orderId}/cancel within 30 mins
|
200 OK. Order cancelled. Refund initiated for full amount. |
500 Internal Server Error. Order status unchanged. No rollback. Error log: NullPointerException in ShipmentService.cancelSplitOrder(). |
Retest |
19 Apr 2025 |
| SE-BUG-106 |
Google Pay button renders off-screen on small Android screens (<360px width) |
Payment |
Critical |
P1 |
Staging · Android 11 · 360px viewport |
- Open checkout on device with 360px screen width (e.g. Samsung Galaxy A03)
- Observe payment options section
|
Google Pay button visible and tappable within payment options container. |
Google Pay button overflows container and is clipped/partially off-screen. Cannot be tapped. Confirmed on BrowserStack Samsung A03. |
Open |
20 Apr 2025 |
| SE-BUG-107 |
Discount code "SAVE20" applies to already-discounted sale items |
Checkout |
Major |
P2 |
Staging · Chrome · Desktop |
- Add sale-tagged item (already 15% off) to cart
- Apply code SAVE20
|
SAVE20 should not stack with existing sale discounts per business rule BIZR-045. |
Both discounts applied. Item discounted 32% total. Revenue leakage risk. No validation against sale flag. |
Fixed |
17 Apr 2025 |
| SE-BUG-108 |
Wishlist item count badge does not update without page refresh |
Wishlist |
Major |
P2 |
Staging · Chrome / Safari · Desktop + Mobile |
- Add item to wishlist from product detail page
- Observe nav bar wishlist icon
|
Wishlist count badge increments immediately (reactive update). |
Badge count stays at previous value until page is fully refreshed. React state not updated on wishlist mutation. |
Fixed |
18 Apr 2025 |
| SE-BUG-109 |
Search filter "In Stock Only" shows out-of-stock items intermittently |
Product Search |
Major |
P2 |
Staging · All browsers |
- Search any keyword
- Enable "In Stock Only" filter
- Browse multiple pages of results
|
All displayed products are in stock. |
Page 3+ occasionally shows out-of-stock products. Pagination cursor uses stale cache. Approx 1-in-8 occurrence rate. |
Open |
21 Apr 2025 |
| SE-BUG-110 |
OTP email not delivered when email contains "+" alias |
Authentication |
Major |
P2 |
Staging · All platforms |
- Register with email format: user+test@domain.com
- Trigger OTP (new device login)
|
OTP email delivered to user+test@domain.com within 60 seconds. |
No OTP email received. SendGrid logs show 400 error: invalid email format. "+" in email address not URL-encoded before API call. |
Retest |
22 Apr 2025 |
| SE-BUG-111 |
Order confirmation email shows incorrect item quantity after quantity change at checkout |
Checkout / Email |
Major |
P2 |
Staging · All browsers |
- Add 3 units of an item to cart
- At checkout review, change quantity to 2
- Complete order
|
Confirmation email shows qty: 2. Charge is for 2 items. |
Confirmation email shows qty: 3 (original). Charge is correct (2 items). Email template uses cart snapshot instead of final order. |
Fixed |
23 Apr 2025 |
| SE-BUG-112 |
Wishlist share modal "X" button missing aria-label |
Wishlist / A11y |
Minor |
P3 |
Staging · Chrome + VoiceOver |
- Enable VoiceOver
- Open Wishlist Share modal
- Navigate to close button
|
VoiceOver announces "Close modal" or descriptive label. |
VoiceOver announces "button" with no label. Accessibility violation (WCAG 2.1 SC 4.1.2). |
Fixed |
24 Apr 2025 |
| SE-BUG-113 |
Footer copyright year shows 2024 (should be 2025) |
UI / Global |
Minor |
P3 |
Staging · All pages |
- Scroll to footer on any page
|
© 2025 ShopEase Inc. |
© 2024 ShopEase Inc. Hardcoded year not updated. |
Fixed |
15 Apr 2025 |
| SE-BUG-114 |
Product image alt text missing on wishlist shared page |
Wishlist / A11y |
Minor |
P3 |
Staging · All browsers |
- Open a shared wishlist link
- Inspect product image elements
|
All <img> elements have descriptive alt text. |
Product images have empty alt="". Screen readers skip images entirely. Reported as accessibility regression. |
Open |
24 Apr 2025 |