might want to document in what case ClientException is raised, as opposed to being emitted in a callback