We rarely create deep hierarchies of exceptions unless we actually need them to control some behavior, and doing IllegalStateException won't suffice. This is fine though.

However it should probably extend APIException.