Boris Johnson’s strategy is coming apart. He had no plan for a deal. He promised not to call a general election. He feared the consequences of no deal. So in an ideal world, which is the only one he had planned for, he would have had an election forced upon him by Jeremy Corbyn.

Instead, he had to go to the House of Commons and ask for one under the Fixed Term Parliament Act, which requires a two-thirds majority. His request was rejected, leaving him a hostage prime minister, with no meaningful option available that doesn’t lead him into the territory of compromise, which would jeopardise his offer: the man who beats the Brexit party by being even more uncompromising than them.

The important vote was on Tuesday: could the Commons take control of the order paper? Having succeeded in that, it was no real surprise that MPs won last night in their bid to prevent no deal. The bill to mandate Boris Johnson to ask the EU for an extension, should he not be able to get a deal, passed comfortably. The bill is pretty unambiguous: it says to the government: if you don’t have a deal, and parliament does not endorse a no-deal Brexit, you need to request an extension. While it was hardly surprising that it passed after Tuesday, in normal times we would be astonished to see it go through all its stages in a single day; the gestation of most bills takes months.

One surprise was the fact that Stephen Kinnock’s amendment, which obliges parliament to hold a vote on Theresa May’s withdrawal agreement, passed by default. Kinnock’s amendment is mainly interesting for the “cock-up or conspiracy?” question it raises, since it only went through because the government made no tellers available to record MPs’ votes in the “no” lobby. But MPs are already dismissing it as attention-grabbing, saying that either way it won’t make much difference.

Perhaps the biggest question is why Labour MPs didn’t vote for a general election when they’ve been calling for it all this time. Part of the explanation is rank mistrust: as soon as they march willingly into an election period, there is no parliament; and a government that has talked freely about ignoring the rule of law could do something extraordinary. Labour fears Johnson could later change the election date to after 31 October. But it is mainly strategic: if they push the calling of an election back to mid-October, blaming it on the government’s own prorogation of parliament, they give themselves more time – for the student vote to get registered in the first weeks of the academic year, for the formulation of a remain alliance, and – of course – for the government itself to unravel. This would put the election itself in November, or even later. It is flat-out bizarre for any progressive force to choose the dark nights of winter for a showdown: they traditionally benefit more than conservatives from a higher turnout. But again, that might be just a signal of strange times.

Boris Johnson had one more legislative backstop (ha!), which was to rely on the Lords to slow things down, but Conservative peers have already signalled that they don’t intend to. He could bring an early election back to the Commons next week using a bill to repeal the Fixed Term Parliament Act, and win it on a simple majority, if the SNP voted with him, which they might.

For all his talk of Corbyn as a chicken (or, in his preferred public-schoolboy terminology, a “big girl’s blouse”), he is the one with everything to fear from a prolonged contest: his project works best when it is unchallenged, and even the briefest brush with parliamentary realities leaves it looking absurd. A prolonged contest will unmask its less pretty elements, exhaust his honeymoon and ready the forces ranged against him.