error can be None