Not all error messages are beautiful and concise.

Frequently we see error messages in the form of a long stacktrace.

./ruby/3.3.0/net/http.rb:1603:in `initialize': Failed to open TCP connection
to nonexistenthostname.local:80 (getaddrinfo: nodename nor servname provided,
or not known) (Socket::ResolutionError)
    from ./ruby/3.3.0/net/http.rb:1603:in `open'
    from ./ruby/3.3.0/net/http.rb:1603:in `block in connect'
    from ./ruby/3.3.0/timeout.rb:186:in `block in timeout'
    from ./ruby/3.3.0/timeout.rb:193:in `timeout'
    from ./ruby/3.3.0/net/http.rb:1601:in `connect'
    from ./ruby/3.3.0/net/http.rb:1580:in `do_start'
    from ./ruby/3.3.0/net/http.rb:1569:in `start'
    from ./ruby/3.3.0/open-uri.rb:334:in `open_http'
    from ./ruby/3.3.0/open-uri.rb:770:in `buffer_open'
    from ./ruby/3.3.0/open-uri.rb:220:in `block in open_loop'
    from ./ruby/3.3.0/open-uri.rb:218:in `catch'
    from ./ruby/3.3.0/open-uri.rb:218:in `open_loop'
    from ./ruby/3.3.0/open-uri.rb:158:in `open_uri'
    from ./ruby/3.3.0/open-uri.rb:750:in `open'
    from ./ruby/3.3.0/open-uri.rb:29:in `open'
    from (irb):7:in `<main>'
    ... 4 levels...
./ruby/3.3.0/net/http.rb:1603:in `initialize': getaddrinfo: nodename nor
servname provided, or not known (Socket::ResolutionError)
    from ./ruby/3.3.0/net/http.rb:1603:in `open'
    from ./ruby/3.3.0/net/http.rb:1603:in `block in connect'
    from ./ruby/3.3.0/timeout.rb:186:in `block in timeout'
    from ./ruby/3.3.0/timeout.rb:193:in `timeout'
    from ./ruby/3.3.0/net/http.rb:1601:in `connect'
    from ./ruby/3.3.0/net/http.rb:1580:in `do_start'
    from ./ruby/3.3.0/net/http.rb:1569:in `start'
    from ./ruby/3.3.0/open-uri.rb:334:in `open_http'
    from ./ruby/3.3.0/open-uri.rb:770:in `buffer_open'
    from ./ruby/3.3.0/open-uri.rb:220:in `block in open_loop'
    from ./ruby/3.3.0/open-uri.rb:218:in `catch'
    from ./ruby/3.3.0/open-uri.rb:218:in `open_loop'
    from ./ruby/3.3.0/open-uri.rb:158:in `open_uri'
    from ./ruby/3.3.0/open-uri.rb:750:in `open'
    from ./ruby/3.3.0/open-uri.rb:29:in `open'

To be clear, this is just a DNS lookup error.

I sent a test request to a nonexistent hostname and got this stacktrace.

But here’s the thing:

A surprising number of professional technology people will look at this, see that there’s a long stacktrace, and just abandon all hope.

They don’t recognize this long blob of text.

It’s unpleasant looking.

So they decide in advance they probably can’t understand it.

There are, indeed, errors that you won’t understand, even when you read every line of the stacktrace. No one understands everything. Technical systems are complicated. Understanding them is an investment that you can’t always make.

But if you don’t actually read the errors — you might give up prematurely.

No, to be precise, you will give up prematurely.

To be clear, I’m not against anyone asking for help. Groups are often smarter than individuals, or at least much more knowledgeable. It’s not bad to check if someone else already knows the answer.

But it would be nice if people read the errors.

Maybe even before asking.