We've indeed seen and discussed that article 😊 It has some good suggestions though seems mostly focused on errrors related to user input (like in forms, which is something we could/should quite easily improve in Bonfire).
I'd also like feedback on how we could improve messages related to unexpected or general errors, such as due to or untested edge case. For example:
post/2
in module Posts
didn't receive data in a format it can recognisewith
condition didn't receive data in a format it could recognisecase
condition didn't receive data in a format it could recogniseYou'll notice many of these are similar, but because they for different reasons wording them differently helps us identify the problem when reported.
Ah, that's great!
Hm, when I would be tasked with wording them, I would imagine, how it would be situated in meatspace.
Like, you couldn't suffessfully submit something. I imagine a waiter getting back to you, apologising and informing you, that you order couldn't be fulfilled (something was missing - what exactly? your dish is out etc). Basically, avoid jargon, help the audience to understand what they can do to recover from an issue.
Forms are the basic kind of interaction between someone entering information and the service responding to it. That's why you will most likely see error messages in this context.
help the audience to understand what they can do to recover from an issue
I read a blog recently from an organisation boasting that their average time to resolve tech support request went up over the years, because they adapted their software and UX to avoid most of the simpler and/or common issues that came up from ever happening again, and so issues that still appeared were often more complex or unique. I think it's a similar situation, were the errors I listed are placeholder for unexpected issues, in that we haven't yet encountered them and/or taken the time to code guardrails or write unit tests to avoid them from happening or at least to detect them and show more specific and helpful error messages.
For context, the tech stack we're using has a philosophy of "let it crash" which comes from Erlang and is reflected in how LiveView (the UI framework we use) handles errors as well. By default doesn't show any error message for unexpected errors (it just reloads the page). Most of the errors I pasted are ones that we instead infer from looking at the crash details to show something that can help with debugging...
So just to answer this more directly:
help the audience to understand what they can do to recover from an issue
In many cases for unexpected errors there's not much to do other than try it again, or report the error (which the button under the error message prompt to do) with as much details as possible.
This is a bonfire demo instance for testing purposes