The UK Parliament advanced Prime Minister Boris Johnson’s Brexit legislation on Tuesday, putting the United Kingdom one step closer to (finally) exiting the European Union.

Members of Parliament (MPs) voted, 329 to 299, for the Brexit bill — the legislation that will implement the Brexit deal into UK domestic law — in its “second reading,” in which MPs express their support for the main principles of the bill.

This is just one stage in the legislative process, but it’s a reassuring sign for the prime minister, whose Brexit agenda has been repeatedly sidelined by Parliament and who’s still trying to get the UK out of the EU before the end of the month.

But Brexit is rarely so straightforward. Just as soon as Parliament voted to advance the Brexit bill, MPs rejected Johnson’s rapid timeline to give final approval to the deal.

That makes it all but certain Johnson can’t deliver on his campaign promise to Brexit by Halloween. But it also means that Johnson’s Brexit deal is still very much alive.

This “second reading” vote was one of two key votes on Tuesday

The first roadblock came soon after this vote, with something called the “program motion” (programme motion, to the Brits). This very boring-sounding thing was the most contentious vote of the day: It had the power to make or break Johnson’s Brexit plans.

The program motion lays out the timetable for a bill’s approval. With the current October 31 Brexit deadline just nine days away, Johnson wanted everything wrapped up by Thursday.

You read that correctly: The prime minister wanted to push through the legislation for his Brexit deal, which he agreed to last week after years of negotiation, before this weekend so the UK can break up with the EU next week.

Many MPs, including some who just supported the bill in principle, objected to this rushed timeline, saying that lawmakers didn’t have time to fully scrutinize critical legislation.

The government only published the approximately 115-page legislation, referred to as the Withdrawal Agreement Bill (WAB), on Monday night, so MPs barely had 24 hours to digest it before the vote on the second reading.

But many still did so despite the time crunch because they don’t want to be accused of what Boris Johnson always accuses them of doing: blocking Brexit.

At the same time, these MPs were a little wary about Johnson’s itinerary. The government hasn’t even published a new economic impact forecast for the deal. That’s why a majority voted Saturday to withhold approval for the Brexit deal until all this legislation passed and forced Johnson to seek an extension to guarantee lawmakers had enough time to get that done.

The EU hasn’t ruled on the extension request yet; the bloc doesn’t want to be responsible for a no-deal exit, and they’d likely consent to an extension so the UK can get all the legislation completed. (Also, the European Parliament must ratify the deal, and it has some questions.)

But now that MPs have all but rejected the October 31 deadline, the 27 EU leaders will have to make a decision on whether to delay Brexit, and for how long.

Before the votes on Tuesday, the prime minister suggested that if MPs defy him again, he would pull the Brexit legislation altogether and once again try to call an election.

If Parliament “refused to allow Brexit to happen and instead gets its way,” Johnson said Tuesday, then “the bill will have to be pulled and we will have to go forward with a general election. I will argue at that election: ‘Let’s get Brexit done.’”

Johnson did pause the legislation — even though Parliament just approved it. But he held off calling for a general election, which might be a sign that he realizes he won’t have support for one, as Johnson has already lost two votes in Parliament to hold a general election.

The big takeaway from Tuesday is that Brexit uncertainty prevails. Johnson got a huge win when Brexit advanced, getting more support for his Brexit deal than Theresa May could ever muster. But it wasn’t enough to, as the prime minister has put it, “get Brexit done” by October 31.