Dozens of Ukrainian prisoners of war appear to have been killed in a missile strike, with Moscow and Kyiv accusing each other of carrying out the attack.
The incident overshadowed UN-backed efforts to restart grain shipments from Ukraine and ease a looming global hunger crisis stemming from the war, now in its sixth month.
Russia's defence ministry said 40 prisoners were killed and 75 wounded in the Friday attack on the prison in the frontline town of Olenivka, in a part of Donetsk province held by separatists.
It accused Kyiv of targeting it with US-made HIMARS rockets, Russian news agencies reported.
Ukraine's armed forces denied carrying out the strike and blamed it on Russian forces, saying Russian artillery had targeted the prison.
"In this way, the Russian occupiers pursued their criminal goals: to accuse Ukraine of committing 'war crimes', as well as to hide the torture of prisoners and executions," the general staff of the Ukrainian Armed Forces said.
The Russian defence ministry said the prison housed Ukrainian prisoners of war and that eight prison staff were also wounded.
Russian-backed separatist leader Denis Pushilin was quoted as saying there were no foreigners among 193 people held there.
Reuters was not able to independently confirm the scene or details of the attack.
Separately, Ukraine said at least five people had been killed and seven wounded in a Russian missile strike on the southeastern city of Mykolaiv, a river port just off the Black Sea, as Russia fired across front lines in eastern and southern Ukraine.
Russia, which denies targeting civilians, did not immediately comment on the situation and Reuters could not verify the battlefield reports.
The Kyiv government has accused Russia of atrocities and brutality against civilians during the invasion and said it has identified more than 10,000 possible war crimes.
Russia has denied involvement in war crimes, accused Kyiv of staging them to smear its forces and said it was investigating Ukrainian war crimes.
In Ukraine's south, President Volodymyr Zelenskiy visited the Black Sea port of Odesa, a week after Moscow and Kyiv agreed to unblock grain exports that have been trapped in the country since the war began five months ago.
Ukraine was ready to start shipping grain from two ports under the UN-brokered agreement but no date had been set for the first shipment, Ukrainian Infrastructure Minister Oleksandr Kubrakov told reporters at the port of Odesa.
"In total, 17 ships were loaded before the war. Today we began the loading of another ship at Chornomorsk. We have, in principle, solved almost all technical questions," he said.
While the blockage of grain in Ukraine, one of world's biggest exporters, has fed into food price rises around the world, shortages of Russian gas have raised energy prices in Europe and prompted fears of shortages over winter.
Russian gas flows via the Nord Stream 1 pipeline to Germany remained at just 20 per cent of capacity on Friday after Russia halved the flows on Wednesday citing maintenance work.
Moscow, which describes its invasion of Ukraine as a "special military operation" conducted in self-defence, blames Western sanctions for the low gas supplies. Ukraine and its allies say the Russian assault was entirely unprovoked.
An intelligence update from Britain said Russia had ordered mercenaries to hold sections of the front line in Ukraine, a sign it is running short of combat infantry as Kyiv steps up a counter-offensive in the south.
Greater reliance on fighters from the Russian private military company Wagner Group for frontline duties rather than their usual work in special operations would be another sign that Russia's military is under stress.
Officials in Kyiv said on Wednesday they had observed a "massive redeployment" of Russian forces to the south where British defence officials believe Russia's 49th Army, stationed on the west bank of the Dnipro River, is vulnerable.
Ukraine's counterattacks in the south come as Russia battles for control of the entirety of the Donbas region in the east, comprising Donetsk and Luhansk.