“A.C.A.B.,” shouted a protest leader on a bullhorn in front of Portland city hall on Election Day. “All cops are bastards!” responded the crowd of about 60 demonstrators. A coalition of far-left activist groups were demanding the abolition of Immigration and Customs Enforcement, but they also used the occasion to rail against Oregon’s Measure 105, on the ballot that day, which would repeal the state’s “sanctuary state” measure prohibiting local authorities from enforcing immigration laws. Other targets included law enforcement in general, Donald Trump, and “fascism.”

The crowd was made up of members from Occupy ICE PDX, the Queer Liberation Front, Antifa, and other leftist movements. Occupy ICE was previously involved in leading a five-week siege outside the local ICE office. Police disbanded the gathering after 38 days, but the cleanup cost the city nearly $25,000 . Portland mayor Ted Wheeler, who also serves as police chief, attracted national attention for his refusal to order police to help the federal officers trapped inside by the protesters’ barricades.

“Fuck Donald Trump!” protesters continued to shout repeatedly, between chants of “Abolish ICE!” Some demonstrators confronted officers with insults. “You’re a pussy bitch,” screamed one man at a group of police. While the demonstration turnout was modest, a dozen police officers patrolled the area and kept watch, along with a group of journalists.

Since Trump’s 2016 election, Portland has become an epicenter for bloody street brawls between far-left extremists and right-wing groups. As a consequence, even small demonstrations tend to attract the attention of national media. Several videos have gone viral, including one from October that showed a 74-year-old driver getting attacked by Don’t Shoot PDX, a Black Lives Matter-style group. That protest was sparked by the police-involved killing of Patrick Kimmons , a 27-year-old black man who shot two men downtown, before charging at police while armed with a revolver. A Multnomah County grand jury cleared the officers who shot him of wrongdoing, on October 31, and protestors shut down a busy downtown intersection again in response.

About half of the demonstrators at the Election Day protest were dressed in black and wore masks. This tactic, called “black bloc,” is commonly adopted by Antifa and other far-left groups to preserve anonymity and make it hard for police to distinguish individual malefactors, who can melt back into the group after engaging in violent behavior. Most protesters whom I approached declined to speak with me, as has typically been my experience at far-left rallies, where media are viewed with skepticism or outright contempt. One young man, however, who declined to give his name but seemed to serve in a leadership role, explained why he was protesting in favor of open borders. “Human beings should be able to do what we’ve been doing forever and roam freely,” he said.

I asked him how a country with finite resources would be able to provide for a potentially unlimited stream of migrants, who tend to congregate in urban areas. Portland, for example, has been suffering a housing shortage that’s driving the working class out. “[The lack of] low income housing is where we have an issue,” he retorted. He added that undocumented migrants should be given the right to vote.

Protesters also directed their ire at Mayor Wheeler. They accused him of letting Portland Police use excessive force (such as the deployment of flash-bang stun grenades and beanbags) in breaking up protests-turned-riots. “Stop letting the Nazis come into town and create violence,” shouted one man on a bullhorn. “Stop letting your cops attack the Left when we confront that violence.”

Wheeler has proposed a controversial ordinance that would restrict where and when certain unpermitted groups could protest. In effect, it would resemble the “free speech zones” adopted by some universities. Wheeler says that the plan would help curb street violence between opposing groups, which has cost taxpayers nearly $3 million in police overtime over the past two years. The ordinance is currently being debated.

After about an hour outside city hall, the protesters began a march through the streets of downtown. The groups involved in organizing the event did not have a permit, and they rebuffed police attempts for dialogue . For the most part, though, demonstrators remained on sidewalks, in contrast with past episodes, when they have occupied the streets and blocked traffic. Holding signs such as “Smash fascism,” “Cops beat their wives,” and “Deport the racists,” the crowd of predominantly young whites marched and chanted expletives. Some businesses rushed to lock their front doors; protesters have targeted commercial entities for vandalism and destruction in recent incidents. After the 2016 election, Antifa rioting in Portland caused damage estimated at more than $1 million . No protest groups were held accountable.

By the end of Election Night, protesters had congregated in Pioneer Square to dance and celebrate Portland voters’ decisive defeat of Measure 105. The activists claimed victory and expressed relief that people of color in Oregon, purportedly threatened, are safe—for now.