Custom errors and logging in the form "Can't x because y"