In a surprise upset on Tuesday night, incumbent Catherine Truitt lost to her GOP primary challenger Michele Morrow in the race for state superintendent of public instruction.

The loss marked a rare defeat for an incumbent member of the Council of State, the 10-member executive body that includes offices like the governor, lieutenant governor, state auditor, attorney general, and state treasurer.

In unofficial results from the state Board of Elections, Morrow had 52% of the vote to Truitt’s 48%.

Morrow challenged Truitt from the political right and has made issues like the Parents Bill of Rights and concerns about indoctrination in public schools a key part of her campaign. She is a political newcomer who has never held public office. She ran unsuccessfully in 2022 for the Wake County school board.

Truitt won her first term as superintendent of public instruction in 2020.

Morrow will face Democrat Mo Green in the general election this fall. Green secured a 66% win over his two challengers — Katie Eddings with 25% and Kenon Crumble with 9%. Green is the former superintendent of Guilford County public schools.

In other Council of State races, Luke Farley bested his three opponents by a plurality of 37% to secure the Republican nomination for commissioner of labor, according to unofficial results. Farley, a small business attorney, won the endorsement of long-time labor commissioner Cherry Berry, known as the “Elevator Queen” due to the labor commissioner’s picture in all elevators across North Carolina.

Jon Hardister, the NC House Majority Whip who represents part of Guilford County in the General Assembly, came in second with 28% of the vote. Hardister was seen as the GOP establishment candidate with the backing of many incumbent Republicans. The runners up were Chuck Stanley with 22% of the vote and Travis Wilson with 13%.

Farley will face Democrat Braxton Winston — who ran unopposed in his primary — in the general election.

Meanwhile, the GOP nomination for state auditor is still up in the air after none of the six candidates reached the 30% threshold needed to avoid a runoff. According to unofficial results, the runoff will be between Jack Clark — who secured 23% of the vote — and Dave Boliek — who won 22%. On the Democrat side, recent appointee Jessica Holmes ran unopposed in her primary.

Republican incumbents Steve Troxler and Mike Causey handily won their primaries for agriculture commissioner and commissioner of insurance, respectively. Troxler’s margin of victory was 69% and Causey’s was 61%. Causey will face Democrat Natasha Marcus —who won 78% to 22% over her opponent in the primary — in the general election. Troxler will face Democrat Sarah Taber, who ran unopposed in the primary.

Republican Chris Brown will face incumbent Democrat Elaine Marshall in a bid for secretary of state, after Brown won 43% of the vote in his primary, while Republican Brad Briner will face off against Democrat Wesley Harris for state treasurer. And Democrat Jeff Jackson will square off against Republican Dan Bishop in the race for attorney general.