Thrown when a requested release, or a release asset, genuinely does not exist: no release
matches the requested tag, or a matched release has no jar asset satisfying the request.
This is distinct from a download or API failure (an I/O error, a non-2xx response, a rate
limit): those keep their own exception types and are never represented by this one. A caller
that wants "not there" reported as an empty value rather than a thrown exception can catch this
specifically, as Releases.downloadJar(java.lang.String, java.lang.String, java.lang.String)
does to produce Optional.empty().