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

Identified Command swallows a failed CreateOrder and still reports success on retry

risk · critical · verified

Identified Command records the request id before running the wrapped command, then catches any inner failure and returns false. The OrderStarted event that clears the basket is already saved in the same transaction, which still commits. A retry with the same id counts as a duplicate, so Create Order returns true and no order exists. This wrapper sits in front of 8 command handlers.

Impact: A buyer's basket can be cleared with no order created, and a retry hides the failure by reporting success, while every other order command inherits the same silent-catch idempotency behavior.

Recommendation (medium effort): In Identified Command's catch block, log the swallowed exception and return a result that distinguishes failure from a genuine duplicate, so a failed inner command cannot masquerade as a successful retry.

The trail

  1. Identified Command
  2. Cancel Order Command
  3. Create Order Command
  4. Create Order Draft Command
  5. Set Awaiting Validation Order Status Command
  6. Set Paid Order Status Command
Open on the map

More from this board