“No results” needs a cause
An empty database, active filter, missing permission and unavailable service should not share a message. Each state has a different next step.
Reliability becomes visible when a dependency is late, a response is incomplete or a person repeats the same action.
An empty database, active filter, missing permission and unavailable service should not share a message. Each state has a different next step.
The interface should prevent accidental duplicates and explain whether the request was accepted, is still running or should be retried.
When one part completes and another fails, the message must name both outcomes. A general error removes the useful fact.
Retry, returning to saved state, contacting support or downloading a record are not extras. They are possible exits from the designed state.