"Liar! Warmonger!" cried the crowd angrily as Chancellor Olaf Scholz took to the stage. Grey-haired trade unionists held signs that read "no weapons, no war".
Usually a workers' rights demonstration in Düsseldorf would be a cosy affair for a chancellor from the centre-left Social Democrats. But these left-wing activists were outraged that his government was sending weapons to Ukraine.
"It's cynical to tell Ukrainians they should defend themselves against Putin's aggression without weapons," he shouted back, battling to make himself heard over the booing.
However vocal, these German unionists are in a minority. Home and abroad, Mr Scholz has come under attack for not sending Ukraine enough weapons.
Breaking a promise
Leading politicians from across Germany's political spectrum accuse Mr Scholz of acting as a brake on arms deliveries.
Poland's President Andrzej Duda has accused Berlin of breaking its word, saying that modern German Leopard tanks, promised by Berlin to backfill Soviet-era tanks sent to Ukraine, have not arrived.
If we were supported by our German allies with tanks to replace those we gave to Ukraine, we'd be very grateful. We had such a promise. We hear Germany isn't willing to fulfil [it]
Internationally there is a perception that Germany does not want to arm Ukraine.
"I don't understand why it's so complicated," said a frustrated Ukrainian foreign minister this week. President Volodymyr Zelensky's adviser went on social media to plead for multiple launch rocket systems (MLRS).
This is 🇷🇺 Solntsepek flamethrower system. Some partners avoid giving the necessary weapons because of fear of the escalation. Escalation, really? RF already uses the heaviest non-nuclear weapons against 🇺🇦, burning people alive. Maybe it's time to respond and give us MLRS? pic.twitter.com/6M1NFRw6xQ— Михайло Подоляк (@Podolyak_M) May 27, 2022
In reality Berlin is supplying large amounts of weapons; not as much as the US, but comparable to other European countries. Experts say Germany ranks somewhere in the middle.
The German parliament has voted overwhelmingly in favour of supplying heavy weapons. Most mainstream politicians and almost all parties support the move, including Olaf Scholz's own Social Democrat SPD, his coalition partners, the Greens and the liberal FDP, as well as the conservative opposition.
The far-right AfD and radical left-wing Die Linke are the only parties to object to arming Ukraine. Both are struggling in the polls and are fractured by internal spats.
There have been objections to weapons deliveries in the media debate, such as a public letter written by some academics and media personalities. But none of the signatories have political influence, and few have any expertise on Russia or Ukraine.
'Putin must not win'
And yet, despite the consensus in the political mainstream, Mr Scholz still appears hesitant.
In speeches he repeats set phrases like "Putin must not win, Ukraine must exist". Inexplicably he never talks about Ukraine winning the war.
Unlike many leading German politicians, he still hasn't visited Kyiv since Russia's invasion, saying that going for a "photo-op" is pointless.
This has sparked outrage in Germany, with photos shared on social media of Mr Scholz shaking hands with various dignitaries all over the world, clearly for photo-ops.
On the one hand Mr Scholz pledges full support for Ukraine. On the other, the security council that he chairs hasn't signed off requests for modern Leopard or Marder tanks which suppliers say they could send and which Ukraine wants.
'Is it because of his party?'
This week Marie-Agnes Strack-Zimmermann, chair of the parliament's defence committee and defence expert for the liberal FDP, a party in Scholz's own governing coalition, said it was unacceptable that Germany was seen in the world as putting the brakes on military help for Ukraine "simply because we're not able to communicate properly and organise ourselves".
She wants a transparent list of what Germany is delivering and better coordination, saying the chancellor "can pull all the strings" when it comes to arms deliveries. "I'm trying to understand why he doesn't. Is out of conviction or because of his party?"
Certainly in polls, Social Democrat voters are some of the most likely to oppose arming Ukraine. The SPD traditionally believes peace in Europe can only be achieved by working with, not against Moscow. Some influential party figures would rather focus on a peace deal with Vladimir Putin and believe sending weapons to Ukraine might escalate the conflict.
Overall the public mood is divided, febrile and changeable:
- A poll in March showed 63% against heavy weapons for Ukraine and only 31% in favour
- The same poll in April showed the reverse, with 56% supporting heavy weapons for Ukraine and 39% against
- At the beginning of May, in a different survey, only 46% were in favour.
Either way people are confused.
Until recently Mr Scholz said sending tanks would mean escalation and that Germany didn't have enough tanks to send anyway.
Then he said tanks could be sent to Poland, but those don't seem to have arrived and it's not clear what the agreement was anyway. Now the message is that Berlin is sending Gepard defensive tanks directly to Ukraine, but not Leopard or Marder offensive tanks, because of a supposed informal agreement with Nato.
Other countries don't seem to have such fraught public rows about the details of arms deliveries.
But the lack of clarity is making people increasingly nervous and undermining trust in Mr Scholz's leadership. His ratings are falling and his SPD party has lost two major state elections in the last month.
His aim appears to be a conciliatory middle ground of compromise to avoid escalation, understandable given Germany's traumatic war-torn 20th Century. But the danger is that by trying to keep everyone happy, Mr Scholz satisfies no-one - least of all Ukraine.