Jeremy Corbyn has sought to put a brave face on local elections which saw Labour fail to make a breakthrough despite limited gains in some parts of the country.
In a night of mixed fortunes for the two major parties, Labour took Plymouth from the Conservatives but was unable to seize Tory “crown jewel” authorities in London, where it had hoped to make gains.
Far from seizing control of the key target borough of Barnet, Labour saw it fall into the hands of Conservatives amid indications that Mr Corbyn’s party was hit by allegations of anti-Semitism in an area with a large Jewish population.
Tories held on to Hillingdon and Mr Corbyn’s party fell well short of the upsets some had predicted in Tory strongholds Wandsworth, Westminster and Kensington.
Mr Corbyn’s party lost Nuneaton and Bedworth - an area that often indicates the colour of the government at general elections - as well as Derby and fell short of gaining control in areas like Swindon, Dudley and Walsall, where they had hoped to establish middle England strongholds.
The Conservatives gained control of councils in Peterborough, Southend and Basildon, and saw a small swing in their favour outside the capital. But they lost Trafford, their flagship council in the North West, to no overall control.
Theresa May’s party appeared to have benefited from an almost total collapse in the Ukip vote, which saw the Eurosceptic party shed councillors across the country.
Liberal Democrats were celebrating victory in the south-west London borough of Richmond, one of a number of Remain-backing areas which saw an upsurge in votes for Vince Cable’s party.
On an early morning visit to Plymouth to congratulate activists, Labour’s leader denied that his party has passed the moment of “peak Corbyn”.
“No, no, there is much more to come and it’s going to get even better,” Mr Corbyn told Sky News.
“We were defending seats that were last won in 2014, which was a particularly good year for Labour in local government.
“Obviously, I am disappointed at any places where we lost a bit of ground, but if you look at the overall picture, Labour gained a lot of seats across the whole country, we gained a lot of votes in places we never had those votes before.”
In Barnet, former Labour councillor Adam Langleben voiced his anger at the impact which the row over anti-Semitism had on his party’s fortunes.
After losing his seat in West Hendon, Mr Langleben tweeted: “We must NEVER have another election like this. No community group should have their vote dictated by their safety. That should shame us.”
And he won support from Labour MP and Corbyn critic Wes Streeting, who told him: “I am so so sorry. This defeat wasn’t yours.”
Conservative chairman Brandon Lewis said voters were being turned off by “hard abuse from some of the hard left, that anti-Semitism problem that Labour clearly have got and are just not dealing with”.
Mr Lewis hailed “a good night” for Tories, with Labour not gaining a single council in London.
“Eight years into a government, Labour was losing 4,000 councillors, whereas we at the moment are holding councils and in some areas making positive inroads,” he said.
Labour sources described their results as “solid”, saying that the party had consolidated advances made at last year’s general election.
But the impact of its underwhelming performance was amplified by a failure to damp down expectations ahead of a set of elections where a massive ground campaign by activists and members of the Corbyn-backing Momentum organisation appears to have been unpersuasive for many voters.
Carrie Symonds, the Conservative Party’s director of communications, said Labour “threw the kitchen sink” at Wandsworth, adding it was “brilliant news” that they had failed.
Liberal Democrat MP Sir Edward Davey described the party’s advances in areas like Richmond as “a sign of things to come”.
Sir Edward told BBC Radio 4’s Today programme: “People are desperate for a voice that isn’t a right-wing Brexit Tory voice or a left-wing Corbynista voice.
“Under Vince Cable, Liberal Democrats can become that and last night’s results show we are becoming that.
Meanwhile, Ukip’s general secretary Paul Oakley compared his party to “the Black Death” as he struggled to find positives in a night of virtual wipeout.
“It’s not all over at all,” Mr Oakley told BBC Radio 4’s Today programme.
“Think of the Black Death in the Middle Ages. It comes along and it causes disruption and then it goes dormant, and that’s exactly what we are going to do. Our time isn’t finished because Brexit is being betrayed.”
He later tweeted a picture of his raised thumb next to a screen showing that the phrase “Black Death” was trending on Twitter, in an apparently sign that the surprising comment had been an attempt to gain publicity for Ukip.
The one point of light for Ukip was Derby, where the party held one seat and picked up another, unseating Labour’s leader in the city. Former deputy chairwoman Suzanne Evans openly discussed the prospect of the party “crumbling”.
Across England, more than 4,000 seats were contested in around 150 councils, including all 32 London boroughs, as well as every ward in Birmingham, Manchester, Leeds and Newcastle.
Mayoral elections were held in Hackney, Lewisham, Newham, Tower Hamlets, Watford and the Sheffield City region.
Voters in some areas piloting controversial ID trials were reportedly unable to cast their ballot.