Something to be somewhat wary of, is the exact error type
is not guaranteed and subject to change as the codebase changes and a more specific error type
gets raised earlier in the logic.
There are a limited number of registered error type
and they're often re-used (see boulder/probs/probs.go at main · letsencrypt/boulder · GitHub for a list of codes; note they can be raised under multiple circumstances ).
Different ACME servers may raise a different error type
for the same situation; and few share the same detail
.