On Monday, Democrats gathered at more than 1,600 sites in Iowa to pledge their support for the various candidates for the United States presidency, marking the first major contest of the 2020 primary season.
And we still don't know who won — because the Iowa Democratic Party's (IDP) use of an app to report its caucus results was an epic fail.
Here's how the app was supposed to work. Caucus leaders would compile the results from their sites, then use the smartphone app to submit the results to the central party instead of calling them in via phone, like they've done in the past.
Seems simple enough. But the IDP didn't announce any results Monday night. And Tuesday morning, IDP chair Troy Price released a statement explaining why.
"As precinct caucus results started coming in, the IDP ran them through an accuracy and quality check," he wrote. "It became clear that there were inconsistencies with the reports."
While some party members began manually compiling the results, the IDP launched an investigation into the inconsistencies, Price continued.
"As part of our investigation, we determined with certainty that the underlying data collected via the app was sound," he wrote. "While the app was recording data accurately, it was reporting out only partial data. We have determined that this was due to a coding issue in the reporting system. This issue was identified and fixed."
Price insisted that the app was not hacked and said the IDP expected to announced the caucus results at some point on Tuesday.
But his explanation for the delay — inconsistent results — seemingly contradicts the experiences of several caucus leaders, who said they had trouble reporting their results in the first place.
"The app didn't work. Things didn't work out right. I've been trying to call for several hours to report my results," Des Moines County Democratic Party Co-Chairman Tom Courtney told NPR. "And I can't get through the phone. It's a phone number and I can't get through. That number is constantly busy."
"I gave up on the app," another caucus organizer wrote in an email chain obtained by NBC News.
The fact that the app was ineffective is bad enough — but the way the IDP went about building and testing it might be even worse.
First, there's the fact that the firm the IDP chose to develop the app, Shadow Inc., doesn't exactly seem like the sort of unbiased third-party you'd want building an app for an important election.
Not only has the firm received payments from the campaigns of at least two candidates in the presidential race — Pete Buttegieg and Joe Biden — but it was also started by veterans of Hillary Clinton's 2016 presidential campaign. Clinton herself has been outspoken in her disdain for candidate Bernie Sanders.
Oh, and just to make the whole thing even more sketchy, according to a New York Times report, the IDP instructed those who knew about Shadow's involvement in the app's development to keep it a secret from election officials.
And all that aside, the IDP also doesn't seem very competent at developing software.
"This app has never been used in any real election or tested at a statewide scale and it’s only been contemplated for use for two months now," David Jefferson, a computer scientist at Lawrence Livermore National Laboratory, told the NYT.
Christopher C. Krebs, the director of the Homeland Security Department’s cybersecurity agency, added that the agency hadn't vetted or evaluated the app prior to its use in the Iowa caucus.
In short: the whole situation was a huge debacle.
But if there's a lesson to be learned from it, it might be best summed up by a statement J. Alex Halderman, a professor of computer science at the University of Michigan, made to the NYT: "This is an urgent reminder of why online voting is not ready for prime time."
More on politics: New Law Makes It Illegal to Distribute Political Deepfakes