
Stein Backs Challenger to Charlotte Incumbent in Primary That Could Decide His Veto Power
The Charlotte Mercury | January 27, 2026
The governor took the unusual step of endorsing against a sitting member of his own party. The reason: she votes with Republicans 84 percent of the time, and he needs her seat to mean something.
Three weeks ago, Governor Josh Stein did something North Carolina governors almost never do. He endorsed a primary challenger against a sitting Democrat in the state legislature.
The target: Rep. Carla Cunningham, who has represented northern Mecklenburg County for seven terms and who, in the current legislative session, votes with the Republican majority 84 percent of the time.
The challenger: Rev. Dr. Rodney Sadler, a Baptist minister and Duke graduate who has been arrested at the State House protesting school privatization and who, unlike Cunningham, has never provided Republicans the votes they needed to override one of Stein’s vetoes.
“The people of North Charlotte deserve a representative who will fight for Democratic values, defend our public schools, and keep costs down,” Stein said in his endorsement statement.
Translation: I need legislators who will sustain my vetoes, and she is not one of them.
The March 3 primary in House District 106, along with a parallel race in House District 99, will determine whether Stein can govern with any leverage at all. Republicans control both chambers but fell one seat short of a veto-proof supermajority after the 2024 elections. To override the governor, they need Democratic defectors.
Cunningham and her colleague Nasif Majeed have been happy to oblige.
No Republicans filed in either district. The primaries are the election.
What This Means for Your Utility Bill
The votes in question are not abstractions.
Last year, Cunningham provided the deciding vote to override Stein’s veto of Senate Bill 266, which rolled back Duke Energy’s mandate to cut carbon emissions by 70 percent by 2030. The practical effect: Duke gets more flexibility on how fast it transitions away from fossil fuels, and ratepayers lose a tool that was meant to hold the company accountable on timeline and cost.
Majeed, who represents a neighboring Mecklenburg district, voted the same way.
Both incumbents also supported Senate Bill 254, which shifted oversight of charter schools away from the elected state superintendent and State Board of Education to a board largely appointed by Republican legislators. If you have opinions about who should control your kids’ schools, that vote mattered.
Cunningham went further. She was the deciding vote on House Bill 318, which requires county sheriffs to cooperate with Immigration and Customs Enforcement. Mecklenburg County Sheriff Garry McFadden had previously limited such cooperation. Now he can’t.
During the floor debate on that bill, Cunningham offered a defense that her critics have been quoting ever since.
“All cultures are not equal,” she said. “Some immigrants come and believe they can function in isolation, refusing to adapt. I suggest they must assimilate. Adapt to the culture of the country they wish to live in.”
That speech, more than any single vote, is why Sadler says he entered the race.
“When she started talking about the fact that certain people and certain cultures were better than other cultures,” he told WUNC, “that’s a line right out of a white supremacist playbook.”
The Pattern
Cunningham is not an outlier. She is part of a pattern.
In the current session, she votes with Republicans 84 percent of the time. Majeed votes with them 71 percent of the time. Both percentages would be unremarkable for members representing swing districts who need to appeal to moderate voters.
But these are not swing districts. Both are safe Democratic seats. No Republican bothered to file. The incumbents are not triangulating for a general election. They are simply voting with the other party on major legislation, and their party’s governor has noticed.
NC Democratic Party Chair Anderson Clayton has made the stakes explicit. The state party does not formally endorse in primaries, but Clayton told Axios Charlotte that members who don’t support the governor’s agenda “are not guaranteed party resources.”
Cunningham responded to Stein’s endorsement by invoking separation of powers.
“While I respect the office he holds, the principle of separation of powers exists for a reason—to ensure balance and keep government accountable to the people, not personal agendas,” she said. “I’ve spent years delivering results for our communities.”
She did not address the voting record.
The Challengers
Sadler, 57, is not a typical first-time candidate. He serves as tri-chair of the NC Poor People’s Campaign and has spent years as a visible presence at the General Assembly, organizing protests against school vouchers and budget cuts. He raised more than $20,000 in the first few days after announcing his campaign in late September.
His platform centers on public school funding, affordable housing, and healthcare access. He frames his candidacy in explicitly moral terms.
“I want to use the concept of love as my litmus test for what policies make sense,” he told WBTV. “When I say love, I don’t mean some warm fuzzy feeling. What does the policy do for those on the margins?”
The progressive infrastructure has lined up behind him. Carolina Federation, Carolina Forward, and the NC Sierra Club have all endorsed. So has the sitting governor.
There is a complication. Vermanno Bowman, a former military police officer and Indivisible Charlotte member, is also running. He challenged Cunningham in 2024 and lost with 15 percent of the vote. If the anti-incumbent vote splits, Cunningham could survive with a plurality.
In District 99, Majeed faces Veleria Levy, executive director of the NC AIDS Action Network. Levy brings two decades of healthcare advocacy and nonprofit leadership. Carolina Forward endorsed her, noting both Majeed’s voting record and his age. He turns 81 this year.
“There are reasonable doubts about his continued fitness for the demanding job of a state representative,” the organization wrote. “Veleria Levy is an experienced and energetic alternative.”
Majeed, a decorated Air Force veteran who flew more than 120 combat missions in Vietnam and served eight years on Charlotte City Council, has not made his age a campaign issue. His campaign has emphasized his record of constituent service.
A third candidate, Tucker Neal, also filed in District 99. Limited public information is available about his campaign.
The Turnout Problem
Here is the part that should make the challengers nervous.
Mecklenburg County has 322,505 registered Democrats, the most of any county in North Carolina. The county also consistently underperforms on turnout. In 2024, Mecklenburg hit 69.9 percent. The state average was 73.7 percent. Wake County, the other major Democratic stronghold, regularly clears 80 percent.
In a low-turnout March primary, the electorate will be older, whiter, and more likely to recognize the incumbent’s name. Cunningham has been on the ballot in this district since 2012. Majeed has served in elected office in Charlotte since 2011.
Wesley Harris, the new Mecklenburg County Democratic Party chair, has made turnout his central focus. He defeated the previous chair, Drew Kromer, in April with 76 percent of the vote after a bruising internal fight over whether the party had neglected Black voters in 2024.
Harris, a former state representative, has said the county party will not recruit against incumbents. But he has also acknowledged the obvious tension.
“It’s up to the constituents to hold her accountable for her positions,” he said of Cunningham.
The question is whether enough constituents will show up to do so.
The Calendar
Early voting runs February 12 through February 28. The voter registration deadline is February 6. Same-day registration is available during early voting.
Primary day is March 3. Polls close at 7:30 p.m.
If no candidate clears 50 percent, a runoff will be held May 12.
The general election, such as it is, will be November 3. But in these districts, that’s a formality. The primary is the race.
The Math
Republicans hold 70 seats in the 120-member House. A veto override requires 72 votes, meaning they need at least two Democrats to cross over.
Cunningham and Majeed have been reliable. Remove them, and the math changes.
That is the stakes of March 3, reduced to arithmetic. Stein needs 49 Democrats who will sustain his vetoes. Right now, he has 47.
About the Author
Jack Beckett is a senior writer for The Charlotte Mercury. He covers politics, elections, and the slow-motion procedural train wrecks that determine whether your street gets paved. He has read more meeting agendas than any reasonable person should, and he has the coffee dependency to prove it. His current record is seven cups before noon, achieved during a particularly brutal BOCC budget session in 2024. He does not recommend this approach to journalism or to life. His wife has asked him to stop. He has not stopped. Reach him at jack@cltmercury.com, or just wait outside a City Council meeting with a fresh pour.
Discover More from The Charlotte Mercury
We exist to help Charlotteans understand how local decisions actually get made. Not the press release version. The real version.
Politics: Who has power, how they use it, and what it costs you.
Election Hub: Candidate profiles, district breakdowns, and the mechanics that determine outcomes before most people start paying attention.
Housing & Zoning: Where the development fights happen and why your neighborhood looks the way it does.
Questions? Complaints? Tips on what we should be covering? Message us on X (or Twitter, or as we call it around here, Twix): @queencityexp
We don’t break news. We break it down.
Creative Commons License
© 2026 The Charlotte Mercury / Strolling Ballantyne
This article, “Stein Backs Challenger to Charlotte Incumbent in Primary That Could Decide His Veto Power,” by Jack Beckett is licensed under CC BY-ND 4.0.
“Stein Backs Challenger to Charlotte Incumbent in Primary That Could Decide His Veto Power”
by Jack Beckett, The Charlotte Mercury (CC BY-ND 4.0)
