Improve user-facing error messages in file downloading failure scenarios
When an error is encountered, a Status (aka toast/growl) message is flashed in the status bar. A good UX principle is not just to tell the user what happened ("Frobnicator failed to materialize") but to tell them what to do ("Please click the "refrobnicate" button"). However in some cases, the remedy we have suggested is not correct or doesn't cover all edge cases, and needs to be adjusted - mostly in the case of download failures. For example:
https://github.com/freedomofpress/securedrop-client/blob/0d7ef59e4082ea97023ac46a39ab496ad52f3f20/client/securedrop_client/logic.py#L986
Here we tell the user "download failed, please try again" , but trying again isn't always the right answer - this message could be triggered, for example, if a user starts downloading a file for a source but then changes their mind and deletes the source (https://github.com/freedomofpress/securedrop-client/issues/2217).
Options:
- Do some fancy checking when a download fails, and if the source is no longer in the database, display a message that a download failed to complete and it's probably because the source was deleted at the server. Else display the "download failed, try again" message. (more logic, but better ux)
- Simply say "a file download failed" (less logic, less clear ux)
Worth checking our other failure messages to make sure the suggested action is appropriate for all scenarios in which the error state could occur.
Adjusting the title to cover download error messages or was the goal to make this more encompassing?
Closing as specific to the current implementation, which is undergoing a rewrite (error handling will be scoped into UX acceptance criteria for new issues).