Four council members voted for James, two voted no, and two abstained. The abstaining votes were counted as no votes, and Booker cast a ballot for Speight to break the tie.
Chaos then broke out as residents tried to storm the dais in the council chambers, and police eventually released tear gas to disperse the crowd.
Council members sued, seeking to invalidate the vote, and a state Superior Court judge eventually decided the seat should be vacated.
In upholding the lower court's decision, the appeals court ruled that an abstention vote could not be counted as a no vote, and there was no tie.
"The council failed to fill the vacancy, leaving the matter to Newark's voters at the next election," the ruling reads. The seat will be decided in the November elections.
A Booker spokesman declined comment on the matter Friday and didn't say how much the city spent on outside counsel.
Booker's outside attorney, Vito A. Gagliardi, said the findings that abstentions do not create a deadlock that needs to be broken by a mayoral vote clarifies a murky area of law, but not in a good way.
"Having deadlocked municipal councils where the mayor can't break ties is not good government for New Jersey," Gagliardi said.
Robert Pickett, an attorney for council members, said the ruling "vindicated the members of the City Council who wanted to make sure that the rules were followed very precisely."
Booker is now a candidate for the U.S. Senate seat that was held by the late Sen. Frank Lautenberg.