Exported for call sites that render a failure inline (e.g. a wizard
step's ErrorAlert) instead of through presentError: show
backendMessage(err) ?? t("<generic fallback>") — never a raw err.message
or status code, which are neither localized nor user-appropriate.
The localized, displayable message the backend sent, or null. Prefers
userMessage, thenreason— this backend (and iOS) puts the localized, Accept-Language'd message inreason(the EnodeAbort{ reason }body), so showing it is correct even when there's no separateuserMessage.