Melissa Crain paid $15 Saturday to make sure the professionally printed photo she was giving her mother-in-law would arrive via FedEx in time for Christmas. It had a guaranteed arrival time of 8 p.m., Dec. 24.

Christmas morning, Crain’s mother-in-law unwrapped an empty picture frame.

“We were just horribly embarrassed,” said Crain, who lives in Marietta. “It’s frustrating.”

This holiday season, Santa — or his package-delivery elves — failed to show up at plenty of houses before it was time to unwrap gifts. Though neither Sandy Springs-based UPS nor FedEx, which is headquartered in Memphis, would disclose how many packages arrived late, both said there were some gifts that didn’t make it on time.

“This was a service failure on our part, and we are terribly sorry,” said Natalie Black, a UPS spokeswoman. “We’re working tirelessly to resolve the issue.”

The problem, Black said, was that UPS’ air network reached capacity. Simply put, there were more packages than could fit on UPS’ planes, including the 23 additional ones it chartered for the holiday season.

UPS, which is the country’s largest package delivery company, did not disclose how many packages it expected to deliver this year. But Black said the company had projected that it would pick up more than 34 million packages Dec. 16, and deliver more than 29 million Dec. 17, its two busiest days. Dec. 23, it planned to move 7 million packages via air, the busiest air shipment day.

FedEx spokeswoman Bonnie Kourvelas said in an email that the company “experienced no major service disruptions in the week before Christmas” and would “continue to work directly with customers to address any isolated incidents.” The company expected to deliver more than 275 million packages between Thanksgiving and Christmas.

This year, the shopping season between Thanksgiving and Christmas was tighter than ever. Bad weather in some parts of the country delayed deliveries, creating a backlog.

In addition, demand from online shoppers was likely much greater than UPS realized it would be, said Kevin Sterling, senior vice president of equity research for BB&T Capital Markets.

“They should be able to plan better for next year, but that doesn’t help this year,” he said.

Online shoppers don’t have a lot of leeway when it comes to picking their shippers, but businesses who were hurt by UPS’ delivery issues this season may be more likely to consider moving their business to FedEx in the future, Sterling said.

Amazon is giving $20 gift certificates to some customers whose orders did not arrive on time. Spokeswoman Mary Osako said in an email she could not disclose how many the company is distributing. In a statement, Amazon made it clear that the company was not at fault for late deliveries.

“Amazon fulfillment centers processed and tendered customer orders to delivery carriers on time for holiday delivery,” the statement said. “We are reviewing the performance of the delivery carriers.”

QVC, too, said it is offering to refund shipping charges to customers whose packages didn’t arrive in time.

“This is an unfortunate situation, and we are doing what we can to help those who were impacted by the UPS delivery matter,” the company said in a statement.

UPS is normally reliable, Black said, adding that when a “reliable partner fails, it’s devastating. We want to acknowledge that.”

Angie Richards, a Brookhaven resident, still hasn’t received two Christmas gifts she bought her husband from Williams-Sonoma’s website Dec. 18. The box of gifts she sent her parents in West Virginia didn’t arrive until the day after Christmas, despite the $109 she paid UPS last Friday for guaranteed delivery.

“We paid a premium because we procrastinated, and we were fine with that,” she said. “If they hadn’t guaranteed it, I wouldn’t be as angry.”

Social media, meanwhile, bristled with complaints about both companies. On UPS’ Facebook page, angry customers complained about lobster dinners and hams that didn’t make it in time for the holiday, by their promised delivery dates.

Home delivery is costly for UPS and FedEx, less profitable than delivering packages to businesses. Packages delivered to homes are typically lighter than those sent to companies, so the sender pays less. Drivers also have to go further out of their way to go from house to house than they have to to go from business to business.

It requires an increasingly precise calculus to balance the need for profit against capacity: How few planes, trucks and employees can they add and still handle the holiday workload?

“With all the predictive tools they have, it’s still something of a crap shoot to get the thing right,” said Doug Caldwell, vice president of international for AFMS global logistics management group. “Obviously, they didn’t get it quite right this time.”

Caldwell didn’t get two of his own gifts, but said the $40 from Amazon more than made up for it. UPS is offering refunds for those who shipped by air with guarantees, but it suspended its ground shipment guarantees Dec. 11. The refund would go to the sender, so it is up to companies whether they want to offer their refunds to customers.

Not everyone who didn’t get their gifts saw it as a problem. Woodstock resident David Fige’s 10-year-old daughter, Katelyn, had other things to open on Christmas. So when the electronic dinosaur he ordered from Toys”R”Us arrived at 9 a.m. Dec. 26, it was as if the holiday lasted an additional day.

“She was fine and loving it and playing with it. It was an extra bonus,” he said. “I would have been more upset if they delivered it Christmas day.”