Joe Biden was appallingly mediocre. Sadly his opponents were, too

<span>Photograph: Lucas Jackson/Reuters</span>
Photograph: Lucas Jackson/Reuters

Following a memorable first clash between Kamala Harris and Joe Biden, anticipations ran high that the California senator would again attack the former vice-president on his race record. Biden suffered in the polls after their first clash, but he quickly recovered, re-establishing himself as the frontrunner and leading many to think that Biden’s presidential campaign would follow his career-long pattern of failing upward. When they walked on stage and shook hands, he could be heard on a hot mic saying to her: “Go easy on me, kid.” (Harris is 54.) She did not go easy on him, and neither did anyone else.

Harris spent the night attacking Biden, deftly parrying questions about her own policies into attacks on his. In a near unified attack, other candidates called Biden out for his championing of the disastrous 1994 Crime Bill, his failure to stop inhumane immigration practices under the Obama administration, his failure to move the Obama justice department to investigate the murder of Eric Garner by New York City police and, once again, his vocal praise for segregationists.

Related: Biden came out to fight – and then the desperate brawlers turned on him | Richard Wolffe

It was a bloodbath for Biden, who in nearly every exchange displayed a poor command of facts, made easily disprovable assertions and displayed an obsession with the track record of the Obama administration when it was convenient and a selective forgetfulness of that record when it was not.

Biden repeatedly fumbled in response to basic challenges about his own positions, displaying more light than heat, more arrogance and bluster than competence or vision. At the end of the night, it was hard not to imagine Biden on stage beside Donald Trump, performing as badly as he performed tonight: being easily distracted, easily flustered and rarely in command of the conversation.

Though Biden had a spectacularly bad night, no other candidate had an especially good one. The debate opened with a back and forth between Biden and Harris over healthcare, in which Harris failed to clearly articulate her vision for overhauling the healthcare system, delivering only partial and convoluted explanations on an issue where she has struggled to stake out a clear position in the past. Harris also failed to empathize with progressive skepticism of her track record as a prosecutor, clumsily dodging a pointed question from the Hawaii representative Tulsi Gabbard, who otherwise offered little of substance on the debate stage.

At the end of the night, it was hard not to imagine Biden on stage beside Donald Trump, performing as badly as he performed tonight

Bill de Blasio, the nearly comically unsuccessful mayor of New York, managed to make productive attacks on Biden, cornering the frontrunner on multiple occasions. But De Blasio could not answer a question about why he has failed to fire the police officer who killed Garner, the Staten Island man whose murder by the police during an arrest was captured in a viral video. At one point during the debate, protesters in the theater could be heard chanting at De Blasio “Fire Pantaleo”, in reference to the killer cop. De Blasio did not acknowledge them.

The Colorado senator and Elmer Fudd lookalike Michael Bennet seemed intent on chastising his fellow candidates that no policies that could help Americans were possible. His intellectual contributions to the debate were few, but his effort to demoralize the electorate was persistent. He was especially passionate in his opposition to Medicare for All, arguing, nonsensically, that Democrats would ensure a second Trump term if they embraced a policy designed to ensure health, security and dignity for all Americans.

Perhaps the standout in a debate that had few of them was the New Jersey senator Cory Booker, who deftly and confidently attacked Biden on his criminal justice record. Booker conveyed confidence and gravitas, making moral arguments against Trump and Biden alike and emphasizing his signature issue, the injustice that has been done to minority communities by mass incarceration and the drug war. He even managed to maintain his composure during a bizarre moment when Biden clapped his forearm and called him the president. The moment was strange and unsettling to those already concerned with Biden’s capacity to hold office, as it seemed that the former vice-president was either losing his train of thought, or perhaps, more troublingly, confusing Booker with Barack Obama.

But a standout who will probably not get credit for her performance in the debate was the New York senator Kirsten Gillibrand, a onetime favorite for the 2020 nomination who has been dragging in the polls. Where she once equivocated on healthcare, Gillibrand delivered an impassioned moral argument against for-profit health insurance; she courageously called for the firing of Garner’s killer and made an emphatic plea, following former housing secretary Julián Castro, for the decriminalization of border crossings and the expansion of the asylum system.

Notably, when the feminist Gillibrand attacked Biden for old sexist writings, Biden retorted that she was only going after his comments to further her presidential hopes. The attack from Biden was meant to echo old misogynist smears against Gillibrand, made by allies of accused sexual harasser and former senator Al Franken and recently revived in a Franken-sympathetic puff piece in the New Yorker, that Gillibrand’s feminist principles are derived more from her personal ambition than from her sense of right and wrong. It was a cheap, sexist and desperate shot by Biden, one that underscored a reality that his campaign has strived to conceal: that Biden is regressive on race and gender issues, ideologically miles to the right of the party, and not equipped for this moment. Biden may still be the frontrunner, but he can’t fail upwards forever.

  • Moira Donegan is a Guardian US columnist

• This article was amended on 1 August 2019. An earlier version incorrectly named Michael Bennet as Joe Bennett.