Washington (CNN) President Donald Trump was already under fire for freezing aid to Ukraine when a Republican senator set off another alarm bell: If Trump didn't lift the hold now, Ukraine might lose the money altogether.

In a phone call on September 11, Ohio Sen. Rob Portman made one last pitch to the President, telling him that with the end of the fiscal year fast approaching, if he didn't act soon there wouldn't be time to get the money out the door, according to six sources familiar with the call.

Trump put up his usual defenses with Portman, claiming the US was getting a poor deal in Ukraine and that European allies weren't doing their fair share to help the embattled former Soviet republic, the sources said.

But in a move that surprised officials from Washington to Kiev, after months of holding up the money the President finally relented. That evening after his call with Portman, Trump released the funds.

What triggered the President to ultimately release the nearly $400 million in security aid, and how that decision was communicated to other government agencies, is one of the key mysteries that impeachment investigators are trying to unravel.

The White House did not respond to a request for comment for this story. In the past, it has offered shifting and vague explanations for the freeze. Most recently, acting Chief of Staff Mick Mulvaney has said the money was released after a budgetary review, though sources tell CNN there is no evidence a review took place.

What is clear however is that in the days leading up to Trump's decision, there was a confluence of significant events. National security adviser John Bolton was fired the day before Trump changed his mind, and White House officials had recently been made aware of a whistleblower complaint that had been filed concerning Trump's behavior toward Ukraine.

Trump was also under mounting pressure from several corners to release the money.

Portman's call was part of a broader congressional campaign to push Trump to lift the hold on the aid. Vice President Mike Pence -- who was in the room with Trump when he spoke to Portman -- had just returned from a meeting in Poland with Ukraine's new president and was urging Trump to release the money.

The President and his top officials were also becoming aware of concerns inside the administration that freezing the funds was improper and could possibly lead to much bigger problems

On September 9, two days before the call with Portman, Gordon Sondland, the ambassador to the European Union, told Trump that concerns were being raised that the President's actions amounted to a quid pro quo.

Around the same time, White House lawyers informed top officials in the West Wing that a member of the intelligence community had filed a formal whistleblower complaint about Trump's Ukraine dealings.

Administration officials have tried to pin the delay on government bureaucracy. They have pointed to reviews by national security agencies and another by the Office of Management and Budget to ensure the funds were well-spent. But detailed assessments had already been conducted before Trump froze the funds in June. And there's little indication that any such process took place after Trump placed a hold on the money.

Much like the decision to freeze the aid, the decision to abruptly release it appears to lie squarely with the President.

Freezing funds

The top diplomat to Ukraine, William B. Taylor, Jr., testified this week that he was alarmed by the decision to withold aid to Ukraine.

After Trump made the decision to hold-up the money to Ukraine in June, it took months for the news to trickle out in Washington and make its way to Kiev.

Bill Taylor, the top US diplomat in Ukraine, first learned of the freeze from an unidentified voice on a video-conference call on July 18.

"Toward the end of an otherwise normal meeting, a voice on the call—the person was off-screen—said that she was from OMB and that her boss had instructed her not to approve any additional spending of security assistance for Ukraine until further notice," Taylor said in his opening statement to the impeachment committees. "All that the OMB staff person said was that the directive had come from the President to the Chief of Staff to OMB."

After Trump put a hold on the aid, he directed Defense Secretary Mark Esper and John Bolton to run a policy review of the funds.

The Pentagon responded almost immediately with a recommendation to release the money.

"At every meeting the unanimous conclusion was that the security assistance should be resumed, the hold lifted," Taylor testified. "At one point, the Defense Department was asked to perform an analysis of the effectiveness of the assistance. Within a day, the Defense Department came back with the determination that the assistance was effective and should be resumed."

The Pentagon had just completed a review of the funds, including a corruption check, in May. So it quickly signed off for a second time. As for Bolton, he had approved of aid to Ukraine from the outset and there's no indication he was holding up the funds.

Acting Chief of Staff Mick Mulvaney has continued to raise the idea that a second budgetary review was holding up the money. In an interview with Fox News on Sunday, Mulvaney claimed that once the administration determined corruption in Ukraine was being addressed, OMB was instructed to research the type of aid that Ukraine gets from other countries.

"It turns out they don't get any lethal aid, but they do give a considerable sum of money and nonlethal aid," Mulvaney told Fox News on Sunday. "Once those two things were cleared, the money flowed."

But multiple sources tell CNN there was no second extensive policy review at the budget office, as Mulvaney has suggested. Officials simply pulled the numbers on aid from other countries and waited for word from the White House to release the money, the sources said.

Other departments that had already signed off on the money were perplexed by the hold up. For instance, the State Department didn't receive any substantive questions about security assistance from OMB during the months the money was frozen, a Senate source said.

"At the end of the day it's the President's decision on whether or not to release the money," a senior administration official said.

A President under pressure

JUST WATCHED Jake Tapper breaks down Trump's call with Ukraine Replay More Videos ... MUST WATCH Jake Tapper breaks down Trump's call with Ukraine 03:37

By early September, it was clear what was going on. Diplomats, lawmakers, administration officials and the Ukrainians all knew the money was on ice because Trump had ordered a hold.

Staffers at both the Pentagon and the OMB began to express concern that they could be in legal jeopardy if they failed to spend money that Congress had appropriated by the end of the fiscal year on September 30.

In Ukraine, Taylor notified the Ukrainian national security adviser that "U.S. security assistance was an 'all or nothing' proposition," according to his testimony. The funds would expire within a few weeks.

Bipartisan groups of lawmakers began peppering the White House with letters pressing Trump to lift the hold on the funds.

For administration officials who wanted the money released, those letters were welcome relief, according to a former senior administration official. Kurt Volker, the US Special Representative for Ukraine who resigned last month , forwarded one of the protest letters to his Ukrainian counterparts to show that efforts were underway to release the money, the source said.

House Democrats took their inquiries a step further. On September 9, Democratic members of the House Oversight, Intelligence and Foreign Relations committees opened an investigation into whether the President and his personal attorney, Rudy Giuliani, pressured the government of Ukraine to help Trump's reelection campaign.

"If the President is trying to pressure Ukraine into choosing between defending itself from Russian aggression without U.S. assistance or leveraging its judicial system to serve the ends of the Trump campaign, this would represent a staggering abuse of power, a boon to Moscow, and a betrayal of the public trust," the committees wrote to White House Counsel Pat Cipollone.

Meanwhile, others in Trump's circle were beginning to hear that the President may have had other motives for pausing the money: investigations into the Biden family and the 2016 election.

Republican Sen. Ron Johnson had heard from Sondland, the US ambassador to the EU, that Trump was holding up the money for issues related to US elections. Alarmed, Johnson called Trump on August 31, and inquired about it.

Johnson recounted the conversation in an interview with the Wall Street Journal and said the President vehemently denied any sort of quid pro quo.

"He said, 'Expletive deleted—No way. I would never do that. Who told you that?" Johnson told the Journal.

By September 9, other diplomats were catching on. Taylor texted Sondland, "...I think it's crazy to withhold security assistance for help with a political campaign."

Sondland testified that he then called the President directly to ask what he wanted from Ukraine.

"The President responded, 'Nothing. There is no quid pro quo,'" Sondland said. "The President repeated: 'no quid pro quo' multiple times. This was a very short call. And I recall the President was in a bad mood."

That same week, Mulvaney and other top White House officials first learned about the whistleblower complaint. While White House lawyers had known about the complaint for weeks, news of its existence was starting to spread within the West Wing. That timing has raised questions about whether knowledge of the complaint influenced Trump's decision to release the money. Though one administration official said it may have merely been coincidental.

Pressure had also grown considerably on Capitol Hill, where Democrats were preparing legislation that threatened to strip billions of dollars out of next year's Pentagon budget if the White House did not release the money to Ukraine. A vote on the amendment, sponsored by Sen. Dick Durbin, was slated for a vote on Sept. 12.

After Trump finally decided to release the funds, the news traveled quickly. Mulvaney notified acting national security adviser Charlie Kupperman, who had replaced the fired Bolton.

The decision made its way to the Pentagon, the State Department and to Taylor, in Kiev. He quickly notified Ukrainian officials that the money was coming after all.