Teaching Case — Answered on One Branch Only
Every branch of the `alt` has arrows in it, so every branch looks answered. One of them is not: on the retry path the service never replies to the client that called it, and the client waits forever. This is the check that most needs narrowing to be worth having — written as "the call was made outside the fragment and answered inside it" it fires on the commonest correct pattern in the notation, so it fires only when at least one branch fails to answer a call the fragment inherited.
Make it your own.
sequence "Lookup with retry"
participant Client
participant Svc "Lookup service"
database Store "Store"
Client -> Svc : lookup(id)
alt on outcome : "hit","miss"
when "hit"
Svc -> Store : read(id)
Store reply Svc : row
Svc reply Client: found(row)
when "miss"
Svc -> Store : read(id)
Store reply Svc : empty
end