should it be `else if (underlyingError) [errors addObject:underlyingError];`?