Rep. Angie Craig voted to enforce the border, then apologized for it, and now she's paying the price in Minnesota's Democratic Senate primary — stuck between voters who want enforcement and a left flank that will never forgive her for even trying.

Tuesday's primary between Craig, the establishment-backed congresswoman, and Lt. Gov. Peggy Flanagan has turned on immigration enforcement, exposing the fault line in a Democratic Party that can't decide whether borders should exist. Craig's attempt to play both sides has left her with nothing firm to stand on.

Craig voted for tighter enforcement soon after Trump returned to office last year, according to the Associated Press. Then Trump sent a surge of immigration agents into Minneapolis, staging operations out of the Bishop Henry Whipple Federal Building near the airport. Protesters mobilized with whistles and cellphone cameras. Two people — Renee Good and Alex Pretti — were shot and killed in the city's streets before Trump pulled back under pressure.

Under that pressure, Craig expressed regret for her enforcement vote. She also backed a resolution condemning antisemitism after a 2025 firebombing in Boulder, Colorado, and thanked law enforcement, including ICE officers. Those votes have become some of the most fraught of her eight-year career in Congress.

Flanagan has hammered Craig on the enforcement vote, portraying her as unwilling to fight the administration. And it's landing. Bryce Bohne, a 40-year-old Minneapolis teacher, told the AP: "I think that's when she lost my vote permanently and that's why I will not vote for her no matter what."

Craig's problem is one of her own making. She flipped a Republican-held seat in 2018 and survived years of attack ads from the right. But a swing-seat voting record becomes a liability when the primary electorate wants purity, not pragmatism. So Craig is now trying to rebrand. At a recent event in Brooklyn Park, she told volunteers: "The working class keeps getting screwed." Then she tried to rally the room: "Folks, I don't know about you, but it is time that we had a working folks reno— reso— renovation—" A breath. "—revolution in this country."

A politician who can't say the word "revolution" without tripping over it is not a revolutionary. She's an establishment figure auditioning for a new role.

Both SFGATE and the AP ran essentially identical copy on this race — the SFGATE version is the AP wire — and both framed the contest through the familiar left-versus-center lens. What neither outlet grappled with is the simpler reality: Craig voted for something the American people broadly support — border enforcement — then folded when the activist class screamed. Now she's trying to out-left a progressive who actually means it. That's not a strategic dilemma. That's a character problem.

The memorials to Good and Pretti still draw fresh flowers. The volunteers in orange vests still keep watch outside the Whipple building. And a Senate candidate who couldn't hold her ground on enforcement is left stammering about revolutions she doesn't believe in.