The state of North Carolina did an audit and found that 508 ineligible voters cast ballots in 2016. Of these 87% were felons ineligible to vote and 8% were non-citizens. The non-citizen number may be a bit higher, as they couldn't verify 61 additional voters. Only two people voted for someone else, both a recently deceased family member.
This audit pretty much sums up the truth in the voter fraud debate. Democrats deny that there are any people illegally casting ballots when there are some. Contrary to what Republicans say, it’s a pretty insignificant number. It's insignificant unless you're talking the 2008 Minnesota Senate race that was decided by less votes than ineligible convicted felons who voted.
Voter ID wouldn’t have prevented most of these, although I imagine that there are quite a few more instances of voter fraud they don't catch. The two they did catch here were people voting for deceased relatives, not people coming up with a scheme to create illegal votes. I don't know how many people get away with that, but I don't think there's any way to know the number. It's probably not significant.
Most of the people casting illegal ballots were wrongly registered to vote. One disturbing thing is the 102 non-citizens voting. The article doesn't paint them as part of an elaborate scheme to steal an election, but as people who thought they could and weren't eligible. North Carolina doesn’t give driver’s licenses to undocumented aliens the way California does. I’m guessing California has a lot more than 102 non-citizens voting, with most of whom think it’s legal to do so. This audit does show that contrary to what Donald Trump thinks there’s no evidence the number is significant and changed any election. Of course, any illegal votes shouldn’t be prevented.