At least 51 people were killed and hundreds wounded on Tuesday in a Russian missile attack on the Ukrainian city of Poltava, authorities said, in one of the single deadliest strikes of the two-and-a-half-year war.
Kyiv said the strike hit a military training facility and a nearby hospital, though authorities did not say how many of the victims were military or civilians.
Ukrainian President Volodymyr Zelensky vowed to hold those to blame accountable, while rescuers worked to clear the rubble.
"According to the information available now, this Russian strike killed 51 people," Zelensky said in his evening address.
"The number of injured is 271. We know that there are people under the rubble of the destroyed building. Everything is being done to save as many lives as possible," Zelensky said.
Berlin, London and Washington all condemned the strike.
US National Security Council spokesman John Kirby said the attack was "another horrific reminder of (Russian President Vladimir) Putin's brutality," adding that the United States would send more military aid to Kyiv in the coming weeks.
British Foreign Secretary David Lammy called it a "sickening act of aggression," while German Foreign Minister Annalena Baerbock said Putin's brutality "knows no limits."
The strike triggered anger on Ukrainian social media after unconfirmed reports said it had targeted an outdoor military ceremony, with many blaming reckless behaviour from officials who allowed the event to take place despite the threat of Russian attacks.
Zelensky said he had ordered a "full and prompt investigation into all the circumstances."
Two Russian ballistic missiles hit the hospital and educational institution, partially destroying one of the buildings, Zelensky said.
The strike took place in the morning in Poltava, a city with a pre-war population of around 300,000 people, some 300 kilometres east of Kyiv.
"The window blew open. Dust was everywhere. I just had time to tell my sister that a rocket was flying," said Yevgeniya Chyrva, a resident in a building damaged during the attack.
The defence ministry said that the time between the alarm and the arrival of the missiles was "so short that it caught people in the middle of evacuating to the bomb shelter."
The Poltava military communications institute, founded in the 1960s when Ukraine was part of the USSR, specialises in training telecommunications specialists.
"One of the institute's buildings was partially destroyed, and many people were trapped under the rubble," the defence ministry said.
Rescuers were still at work after managing to save 25 people, including 11 trapped under the rubble, the defence ministry said.
Official channels and local media shared messages urging locals to donate blood to help treat the wounded.
At the same time criticism of Ukrainian officials swirled online.
"Poltava... How can such a large number of people gather at such a facility?" said one blogger, Sergey Naumovich.
There had been some reports from Russian military bloggers that the strike targeted an outdoor ceremony.
Poltava's governor, Philip Pronin, said his administration could not provide more details of the circumstances of the strike "for security reasons."
"The enemy is using any means to bring Ukraine more pain and disorientate Ukrainians. Please trust only reliable sources," he said.
Ukrainian MP Maria Bezugla, who regularly criticises the country's military leadership, accused high-ranking officials of endangering soldiers by allowing such events.
"These tragedies keep repeating themselves. When will it stop?" she posted on Telegram.
The attack follows another recent scandal for Ukraine's army command after a US-made F-16 fighter jet crashed in combat last week, killing the pilot.
The crash of the F-16 was a high-profile setback for Kyiv, which had lobbied the West to send the advanced fighter jet for months, and triggered the dismissal of the country's air force chief, Mykola Oleshchuk. (AFP)