limit alert size, and add NSError convenience init