Errors

Failures are JevError. It is an ADT. It does not extend Exception.

401 and 403 carry the TypeSafe request id. 422 is a list of Pydantic violations. 429 and 529 retry. Other 4xx do not.

err match
  case JevError.Unauthorized(id, _) => id
  case JevError.EmptyQuestions      => None
  case _                            => err.requestId
JevError.EmptyQuestions.message
questions must not be empty