Cut the cutesy errors

I had to get a train ticket today, which is a two-step process. First I buy the ticket, then I download an e-ticket with a QR code that I scan at the gates. Normally this works fine, and I buy the ticket on my way to the station. Today, Trainline had other ideas:

An error message dialog. ‘This is awkward. Token not provided in guest headers.’

They could take my money! They just couldn’t give me a ticket.

Frustrating as this was, it was made far worse by the error message.

“This is awkward” is what you say when two people show up to a party in the same outfit; this was far more than that. I was worried that I was about to miss my train, and annoyed at having to buy a replacement ticket – and the cutesy error message felt like somebody was trivialising my troubles.

And the explanatory text is completely useless: “Token not provided in guest headers.” I have no idea what this means, or what I can do about it. Will it work if I try again? Do I have a ticket for my return journey? Should I call support? Or is this ticket completely hosed?

Be very careful about humourous error messages. You need to think about how somebody will be feeling when something goes wrong. What seems fun and light-hearted in your office may read very differently when you’ve just ruined somebody’s day.

There are certain classes of app where an unexpected error can cause a lot of stress: transport, telephony, and finance all spring to mind. Imagine someone who’s just missed a plane, had an important call cut out, or can’t get money out of their bank account. How are they feeling? Will they appreciate your attempt at humour?

There’s a place for humour and levity in software, and my code has plenty – but error messages are rarely it. If somebody hits an error, they’re some mix of anxious, angry, or confused, and cute or unclear language does nothing to help.

Error messages are incredibly important, and the software industry generally does a bad job of writing them. Good error messages explain what’s gone wrong, and give clear instructions for what to do next – and being cutesy rarely helps.

This post was adapted from a thread on Twitter.