Raise PusherError instead of Exception to make it easier to deal with up the stack