Throw exception when an error occurs at availability check

Instead of just returning a pointless boolean false, provide more
detailed information about the error through an exception