Sen. Joni Ernst had planned a "veterans roundtable" in this tiny eastern Iowa town -- far away from the anti-Trump and pro-Obamacare protests that have filled cities in recent weeks.
It mirrored the playbook other Republican lawmakers have used during this week's congressional break: A narrow topic covered in a rural portion of her state, in a public building with limited space. The Maquoketa City Hall room holds about 100 people, an Ernst spokeswoman said.
But when Ernst arrived, the room was full, with dozens more crammed into the doorway and spilling into an atrium and adjacent hallways.
People who had driven two hours across Iowa to attend greeted her with chants of "We want our voices heard!" and "Your last term!"
Ernst slipped in a side door, ignored the protests and called almost exclusively on veterans. She fielded just one question on health care and abruptly ended the event after 45 minutes, with a long line of people still waiting to ask questions.
All the while, the microphones cut out, making it impossible for those outside the room to hear the questions.
Deb Sperry, 61, drove 45 miles from Davenport, complaining that "in my county, she has never had any type of town hall or meeting with her constituents."
Her 63-year-old friend said it was "BS" that Ernst's event was in such a small venue.
Ernst, meanwhile, cited her schedule -- saying the small, rural events are by design.
She said that like Republican Sen. Chuck Grassley, she is in the early stages of a "99-county tour" across Iowa this year, and that "we're not actually changing anything that we normally do."
Ernst's critics point out that the "99-county tour" often includes counties checked off the list with only private events such as factory tours, and she hasn't held any recent public events near the state's population centers. Since Trump's inauguration, Ernst has not held a public event in any of Iowa's 50 most populous cities.
Asked by CNN Tuesday if the lack of events near urban areas is appropriate, Ernst said: "We're not as far into the schedule, and it's actually been hampered by vote. So, this early in the year, not unusual. We'll continue moving on with the county tour process."
President Donald Trump, for his part, said protests against his policies at town halls are organized by liberal groups.
"The so-called angry crowds in home districts of some Republicans are actually, in numerous cases, planned out by liberal activists. Sad!" Trump tweeted Tuesday night.
During the town hall, Ernst took just one question about GOP health care plans, when a 60-year-old man said he is on his third year using Obamacare's coverage.
"All we hear is repeal and replace, but we don't hear about a real clear plan, other than talking about health savings accounts, which really amounts to your own money, quite frankly," the man told Ernst.
"What we're doing is working through a number of different plans," Ernst said, adding that there are "good ideas" in some of the GOP options.
"As far as children staying on their parents' policies until age 26, I think we all agree that that was a good idea," she said, while also praising Obamacare's requirement that insurers cover those with pre-existing conditions.
She called those "a good starting point."
"But health savings accounts ..." she said, turning to an element of health care reform favored by Republicans and then promptly being drowned out by boos from the audience.
Opposing Putin, but defending Trump
That moment came after Ernst had faced jeers over her approach to Russia.
Trinity Ray, a 41-year-old veteran from Iowa City who spent eight years in the Army Reserves, pressed Ernst to investigate Trump's ties to Russia and alleged Russian meddling in the 2016 American election.
"I appreciate that a lot, because I have said repeatedly that Russia is not our friend," Ernst said, as Ray yelled that she should "say it louder." She added that Trump "needs to stand up against Vladimir Putin."
Ray wasn't satisfied.
"If you were serious about this situation, you wouldn't rest until you had an answer," he said afterward. "We swore to defend against enemies domestic and foreign."
Ernst took five minutes of questions from reporters afterward and defended Trump.
"There's disagreement out there, obviously. But what we're seeing with the President is that he is acting on what he said he would do during the campaign," Ernst said. "And I think you may see some folks that come out and disagree with that agenda, but it is what he said he would do."
Grassley faces tough crowd
Grassley faced tough questions Tuesday as well. At a town hall in Iowa Falls, an Afghan man asked him for help to stay in the US in the face of the Trump administration's immigration executive order.
Zalmay Niazy, whose name was reported by CNN affiliate KCCI, said he'd been shot two times and experienced a roadside bombing while working as a translator with US armed forces.
"Who is going to save me?" he asked Grassley. "I am a person from a Muslim country and I am a Muslim. Who is going to save me here? Who is going to stand behind me?"
The audience of about 100 people cheered Niazy when he asked his question.
"We're going down the list and when we're done with that list ... " Grassley said, before he was interrupted by the audience.
Complaints from constituents
After Ernst's event, dozens of attendees lingered outside.
Lisa Pence, 35, a stay-at-home mom and former teacher from Dubuque, was in the doorway.
"It was not put together well at all," Pence said. "If they had turned on any news outlet, whether they think it's fake or not, they would have known that town halls across the country have been filling up like this."
"The microphone they did have in there was worse than my iPhone, so even if you were in the back of the room, you still couldn't hear."
She and others complained outside afterward that Ernst spent just two minutes addressing Republican plans to repeal and replace the Affordable Care Act.
"She didn't answer anything about health care. Nothing," said Pence's mother-in-law, Lois Pence, 57.
"Not for everyone's health care -- just VA," Marla Swesey, a 63-year-old retiree who had made an 80-minute drive from Iowa City, said.
"Well, she didn't even answer that though, really, did she?" Lois Pence shot back.
Swesey said she is "disappointed" Ernst campaigned as an independent, no-nonsense voice, but doesn't more frequently break from Republicans.
"I wanted to ask a question about why she's doing that when she's a strong woman, and I think she could really make a bigger point about what strong women are all about," she said.
"And I was disappointed they didn't have the mics working," she said. "From a senator? They should have things working."
Annika O'Melia, 36, is planning her own "empty chair" town hall Thursday night in Bettendorf where attendees can discuss health care, complete with "Wilson" soccer balls inspired by the Tom Hanks film "Castaway" sitting in as Grassley and Ernst.
As for Ernst, O'Melia said, "she ignores me, whether I'm in DC or on the phone or whatever."