Throw proper error when protocols are not implemented correctly