Monday night’s Iowa caucuses were supposed to offer America a first look at the Democratic Party’s frontrunner in the 2020 presidential race, based on the results of the first primary battle. That didn’t quite happen. Instead, after a chaotic night full of errors and mismanagement, the party had still failed to name a winner by the next afternoon. While party leaders and pundits alike are struggling to figure out what went wrong, it looks like a hastily built and reportedly insufficiently tested smartphone app is at the center of the disaster.

The fears that the Iowa Democratic Party’s smartphone app would compromise the Iowa caucus results were, in the end, well-founded. But the issue doesn’t appear to have been the work of foreign hackers determined to infiltrate our democratic process. No, it was probably something much more ordinary: The app didn’t work very well.

For 2020, the Iowa caucus process was slightly revamped. Instead of one set of results, as in all previous years, there would be three. (Vox’s Andrew Prokop explains how this all works.) In addition to this complication, the actual number of votes each candidate received would also be counted and reported; in previous contests, all precincts had to report was the name of the winner.

All those results would be reported by the precinct chair through a newly developed smartphone app. If the precinct chair could not or did not want to use the app, they could report the results over the phone. Also for the first time this year, there would be a paper trail of every vote, with caucus-goers recording their choices on pieces of paper collected by their caucus precinct chair.

Between all the rules changes to the caucus process itself — the part where everyone casts votes — and the volunteers reporting the results, somewhere everything fell apart.

Early on, volunteers complained that they were unable to download, log in to, and use the app as instructed. According to the New York Times, many precinct chairs didn’t use the app at all, citing difficulty downloading or using it. These volunteers said they had always preferred to call in the results as they had in the past, and that’s what many of them tried to do when the app wasn’t working. Many reported that phone lines at party headquarters were busy for hours, as potentially hundreds of volunteers from more than 1,600 precincts tried calling in their results.

It’s unclear so far why the phone center had so much trouble responding to the calls. Some precinct chairs even tried taking photos of their results and hand-delivering them to Iowa Democratic Party headquarters in Des Moines, and even then they weren’t able to get through to party officials.

By the end of the night, the Iowa Democratic Party issued a statement blaming “inconsistencies in the reporting of three sets of results,” and said it would have to validate them via the paper trail. The statement also said that the app was not hacked, nor did it malfunction. A second statement issued Tuesday morning offered a more detailed account:

As precinct caucus results started coming in, the IDP ran them through an accuracy and quality check. It became clear that there were inconsistencies with the reports. The underlying cause of these inconsistencies was not immediately clear, and required investigation which took time. … As part of our investigation, we determined with certainty that the underlying data collected via the app was sound. 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 our reporting system. This issue was identified and fixed. The application’s reporting issue did not impact the ability of precinct chairs to report data accurately.

Many questions remain about the smartphone app at the center of this debacle, especially in terms of security. Ahead of the caucuses, Iowa Democratic Party leaders refused to disclose who developed the app, arguing that if potential hackers didn’t know who made the app, it would be that much harder for them to figure out how to hack it.

We now know that the app was built by a for-profit company called Shadow Inc., which promotes itself as developing “affordable and easy-to-use tools for teams and budgets of any size” for the progressive movement. State campaign finance records obtained by HuffPost show that the Iowa Democratic Party paid Shadow $60,000 to build the app last November, and sources briefed on the app by the party told the New York Times that the app was developed in just two months and never tested at a statewide scale. Shadow did not respond to multiple requests for comment.

We also know what the app in question looks like. Vice spoke with Iowa precinct leader Jonathan Green, who struggled to use the app, which is simply called “IowaReporterApp,” on the night of the caucuses. The Vice reporters managed to download and install the app on two Android phones, though they report that it would only boot on one of the phones. Green described the labyrinthine process of attempting to log into the app to report the caucus results — a process that ended with an error message.

“The situation with Iowa’s caucus reveals the risks associated with technology, in this case with a mobile app, but more importantly that there needs to be a low-tech solution in order to recover from technological failures — no matter the cause,” Marian K. Schneider of Verified Voting told Recode. “It’s clear that mobile apps are not ready for primetime, but thankfully Iowa has paper records of their vote totals and will be able to release results from those records.”

Shadow, nevertheless, hardly seems like it will disappear after Iowa. The Nevada Democratic Party has already paid Shadow for services ahead of its Democratic primary on February 22. Nevada Democratic Party Chair William McCurdy II provided the following statement on Twitter:

NV Dems can confidently say that what happened in the Iowa caucus last night will not happen in Nevada on February 22nd. We will not be employing the same app or vendor used in the Iowa caucus. We had already developed a series of backups and redundant reporting systems, and are currently evaluating the best path forward.

Shadow has also worked with a number of Democratic presidential candidates. Former South Bend, Indiana, Mayor Pete Buttigieg, for example, has several ties to Shadow. Federal Election Commission (FEC) filings show his campaign paid Shadow tens of thousands of dollars for various services in recent months. Former Vice President Joe Biden’s presidential campaign also paid Shadow, as did Sen. Kirsten Gillibrand’s. One of Shadow’s investors is Acronym, a well-funded Silicon Valley-based progressive nonprofit that also runs a political action committee. David Plouffe, the former manager for Barack Obama’s presidential campaign, sits on the board.

Acronym said in a statement that it was merely an investor in Shadow and has “not provided any technology to the Iowa Democratic Party, Presidential campaigns, or the Democratic National Party.” This appears to contradict a tweet from Acronym’s co-founder and CEO Tara McGowan in January 2019 that said her organization had acquired an organizing platform called Groundbase, and that Acronym was “launching” Shadow. The tweet included a link to a page that has since been removed from Shadow’s website. That tweet and several more references to Shadow have since been deleted from McGowan’s account.

There is no evidence of any improprieties, although many have expressed concern about the secrecy of Shadow and its relatively untested products being trusted in the Democratic primaries. A bit of sleuthing reveals that many of the people who have identified themselves as Shadow employees on LinkedIn previously worked for Hillary Clinton’s 2016 presidential campaign. Shadow doesn’t currently list any staff members’ names on its website.

Iowa Democratic Party representatives, however, have insisted that they are confident in the security of the app, that they had done run-throughs of the caucus process, and that they anticipated the night would go smoothly with few hiccups. Fears over the app’s security, in the end, might have been misplaced. But the app appears to have played a major part in the Iowa caucus disaster nonetheless.

Without results, candidates were at something of a loss on how to respond. While Buttigieg declared victory in a speech, Bernie Sanders’s campaign released unverified internal numbers that showed the Vermont senator with a large lead. The Buttigieg campaign later released numbers of its own, although they were less comprehensive than the Sanders campaign’s.

After many preliminary reports showed that Biden did much worse than expected in the caucuses, his campaign issued an angry letter to the Iowa Democratic Party blaming it for “acute failures” and demanding “full explanations” over what went wrong. Sen. Elizabeth Warren, meanwhile, didn’t address the delayed results and, in a speech, told her supporters that the race was “too close to call.”

The results will be reported at some point, of course, but the damage has likely been done. The trust in the Iowa caucus process has been severely compromised, and there are renewed calls to prevent Iowa and its unusual process from being the first nominating contest in the next presidential election. Candidates are now moving on to New Hampshire, where the first primary will be held next Tuesday, February 11. Eleven days after that, Nevada will hold its caucus, albeit without the help of Shadow.

Update, February 4, 2020, 5:20 pm Eastern: This post has been updated to include new details about the smartphone app in question.