A little more than a week before Minnesotans faced the first deadline to purchase coverage under the new health law, Gov. Mark Dayton fired off an angry letter to the chief executive of IBM Corp., in which he blamed the technology services giant for troubles plaguing the state’s online health insurance exchange.

In the five-page letter, dated Dec. 13, Dayton told CEO Virginia Rometty about 21 specific problems in IBM software and demanded that the company “immediately deploy whatever people or resources are needed to correct the defects in your product that are preventing Minnesotans from obtaining health insurance through MNsure.”

The response was swift: IBM sent dozens of workers to St. Paul and pledged to spend up to 4,000 man-hours working on MNsure, the state’s new insurance exchange, with no expense to the state.

The letter, released Friday by Dayton’s office, sheds more light on the chaotic past month at MNsure. The new state agency was forced to ­overhaul its leadership after struggling with technology, all while under tremendous pressure to sign up its first customers.

The letter showed again that officials allowed MNsure’s software problems to drag into December, long after the October launch of its website, and that Dayton was forced to resort to extreme tactics.

Two days before sending the letter, Dayton said the problems at MNsure were keeping him up at night. And four days after, MNsure’s chief quit. One of the first decisions of the agency’s new leaders was to delay the first enrollment deadline for consumers to buy insurance policies under new rules called for by the federal Affordable Care Act.

Since writing the letter, Dayton has had five meetings with IBM and MNsure executives about the performance of the website, his spokesman, Matt Swenson, said Friday. The company and agency have made “important improvements” in recent weeks, Swenson said, adding that Dayton continues to monitor the situation.

“The governor will not be satisfied until MNsure is operating at 100 percent,” Swenson said.

MNsure got through the first round of customer sign-ups, which concluded this past Tuesday, a deadline that was pushed back from Dec. 23 during the troubles last month. On Friday, MNsure said 67,805 Minnesotans enrolled in a health plan by the Dec. 31 deadline, including 14,600 who signed up during a rush in the last four days of December.

MNsure’s website site continues to be unstable, however. It went down for several hours Thursday afternoon and will be closed this weekend for “scheduled maintenance.”

MNsure’s board of directors will meet Wednesday, and interim CEO Scott Leitz plans to review the performance of IBM and other vendors.

IBM’s Curam subsidiary is a subcontractor on the $46 million project to build MNsure’s technical infrastructure. It was brought in by Maximus Inc., a technology services firm in Reston, Va., that is MNsure’s lead contractor and working under a federal grant.

IBM’s portion of the MNsure software determines customers’ eligibility for Medicaid and MinnesotaCare as well as federal premium tax credits for those buying private insurance. IBM says the software is used in more than 80 government projects around the world.

IBM spokeswoman Mary Welder said in an e-mail Friday that the majority of concerns with its software have been addressed, and that the system is now handling cases at “over a 95 percent daily success rate.” She also noted that IBM is just one of several subcontractors and that Maximus has overall responsibility for the MNsure system.

“Although our original role on this project was limited, we are bringing the full resources and capabilities of IBM to the state because of the importance of the success of the project,” she said.

‘Still not 90 percent complete’

Dayton’s letter to IBM contained two dozen bullet points that he called a “a partial itemization” of defects.

He said the company’s software was unable to verify eligibility of MNsure customers for Medicaid and other public programs. He said it was making determinations for emergency Medicaid without the state knowing about it, and said MNsure’s own requirements for this program were never fully implemented or tested.

At the time the letter was written, consumers trying to enroll in a health plan on the MNsure site found that their applications were stuck in “pending” mode. Thousands of applications were delayed or didn’t show up for the call center staff or caseworkers.

In late November, state and county officials were forced to double-check up to 40,000 applications to determine if people were incorrectly denied premium subsidies or coverage on public programs. About 1,000 consumers were ultimately notified that they were denied tax credits they should have gotten.

Dayton noted that, during MNsure’s procurement process, IBM represented that its software product was “90 percent complete and ready out-of-the-box.”

“We now know that the product is still not 90 percent complete in December of 2013,” Dayton wrote, “and that your product has significant defects, which have seriously harmed Minnesota consumers.”

On Friday, interim MNsure CEO Leitz said he was encouraged by the system’s ability to handle the amount of people it did during the few days ahead of Tuesday’s deadline for initial enrollment.

“Even amid all the challenges of the last few weeks, many thousands of Minnesotans are taking action to benefit from lower insurance premiums and better coverage terms,” he said in a prepared statement. “Our job in the weeks ahead will be to make it easier for more people to do the same.”

Open enrollment continues through March 31, when consumers without coverage will face penalties under the Affordable Care Act. They also will not have another opportunity to buy health insurance until fall, even if they want it before then.