From the eShop (AdventureWorks), mapped as three services architecture map
An unreachable embedding model blocks product price changes
UpdateItem and CreateItem await CatalogAI.GetEmbeddingAsync before saving, with no try/catch, and CatalogAI calls the embedding generator directly. When the configured provider (Ollama or OpenAI, chosen at startup by the OllamaEnabled flag) is unreachable, the exception escapes the endpoint before anything is saved. In UpdateItem that happens before the price-changed event reaches the outbox, so a price update fails outright.
Impact: A price change (and any other catalog write) fails whenever the configured embedding provider is down, even though pricing has nothing to do with search.
Recommendation (small effort): Catch embedding failures in UpdateItem and CreateItem, log them and save without a vector, so an unreachable model cannot fail the write and its price-changed event.
The trail
- Text Embedding Provider
- Catalog AI (Embedding) Service
- Catalog API Host & Bootstrap
- Catalog API Host & Bootstrap
More from this board
- Identified Command swallows a failed CreateOrder and still reports success on retry
- Failed catalog price-change events are marked failed and never retried
- Order Queries reads straight from the write side's OrderingContext, not a separate read model
- RabbitMQ status handlers skip the idempotency check HTTP commands get
- Awaiting-validation stock check confirms orders for unknown product ids
- Order-status updates only reach shoppers on the WebApp process that handled the event
- A rejected order still empties the shopper's bag
- A retired catalog item breaks Cart Menu's basket load everywhere