From the eShop (AdventureWorks), mapped as three services architecture map

A retired catalog item breaks Cart Menu's basket load everywhere

observation · low · verified

Cart Menu loads the basket through Basket State, which looks up every basket line with catalogItems[item.ProductId] and throws when a product is missing from the catalog. Cart Menu's startup handler catches only an unauthorized error, so that lookup failure is never caught. Basket State caches the failing call, so the bag badge stays broken on every page until the basket itself changes.

Impact: One retired product leaves the bag badge failing on every page the shopper visits, not just the one where the stale item was added, until they change the basket.

Recommendation (medium effort): Have Basket State's basket load skip or flag a line whose product is no longer in the catalog instead of indexing straight into the lookup, and stop caching a failed load in _cachedBasket so a retry can succeed.

The trail

  1. Cart Menu
  2. Basket State
  3. Basket State
  4. Log Out Service
  5. Log Out Service
Open on the map

More from this board