Prosecutors have agreed to drop criminal charges against the Empire actor Jussie Smollett for apparently faking a hate crime attack in Chicago, drawing claims from the mayor, Rahm Emanuel, of a “whitewash of justice”.

Smollett was earlier this year charged with 16 counts of felony disorderly conduct for allegedly hiring two men to stage a racist, homophobic attack against him in downtown Chicago.

But prosecutors on Tuesday performed a shock reversal by dropping all the charges barely five weeks after they were filed – and authorities offered little explanation for the decision to abandon the case. At a press conference, Emanuel attacked the decision as a “whitewash of justice” and at one point said of Smollett: “Is there no decency to this man?”

Former federal prosecutor Lori Lightfoot, who is seeking to succeed Emanuel, said the public should be told the reason for the move, given prosecutors gave the impression of an airtight case. Mayoral rival Toni Preckwinkle said the Cook county state’s attorney should be “allowed to provide a fuller explanation as time goes on”.

Smollett, 36, spoke to reporters after the stunning development in a high-profile case that has generated more questions than answers.

He insisted: “I have been truthful and consistent on every single level since day one. I would not be my mother’s son if I was capable of one drop of what I’ve been accused.”

He went on: “This has been an incredibly difficult time, honestly one of the worst of my entire life. But I am a man of faith, and I am a man that has knowledge of my history, and I would not bring my family, our lives or the movement through a fire like this. I just wouldn’t.”

The actor, who is gay and black, said he was walking home from a sandwich shop in downtown Chicago around 2am on 29 January when two men approached him, shouting racist and homophobic slurs, beat him up, poured bleach on him and looped a rope around his neck.

This sends a clear message that if you’re in a position of influence and power, you’ll get treated one way Rahm Emanuel

He claimed the attackers said, “This is Maga country,” referring to Donald Trump’s “Make America Great Again” election campaign slogan.

But shortly afterwards, Chicago police held a blockbuster news conference, accusing Smollett of a sinister hoax. Police said he faked the attack because he was unhappy with his salary and wanted to drum up publicity to help his career. Police chief Eddie Johnson accused Smollett of “taking advantage of the pain and anger of racism” to promote himself.

Smollett denied he staged the attack and has maintained his innocence. Earlier this month he pleaded not guilty to the charges.

At a brief court hearing on Tuesday, a judge agreed to the prosecutors’ request to dismiss the charges, the Chicago Tribune reported, and ordered the case file sealed.

The Cook county state’s attorney’s office told the paper: “After reviewing all of the facts and circumstances of the case, including Mr Smollett’s volunteer service in the community and agreement to forfeit his bond to the city of Chicago, we believe this outcome is a just disposition and appropriate resolution to this case.”

Emanuel and Johnson, the police superintendent, attacked in forceful terms the prosecutors’ decision.

Emanuel said: “This is without a doubt a whitewash of justice, and sends a clear message that if you’re in a position of influence and power, you’ll get treated one way. And other people will get treated another way.”

He hit out at Smollett for refusing to acknowledge wrongdoing. He also said the hoax would hurt other hate-crime victims.

Facebook Twitter Pinterest Smollett surrounded by media as he leaves court. Photograph: Kamil Krzaczyński/Reuters

“This is a person now who’s been let off scot-free with no sense of accountability,” Emanuel said. “Is there no decency in this man?”

Johnson said Smollett should apologize. “Do I think justice was served? No. I think this city is still owed an apology.”

Smollett agreed to forfeit the $10,000 he had paid on a $100,000 bond, said his lawyer Patricia Brown Holmes. She said: “It was the correct result in this case. We’re very happy for this result, and we are very anxious for Jussie to get on with his career and his life.”

But prosecutors maintained the decision does not mean they believe Smollett is innocent. Assistant state’s attorney Joe Magats told the New York Times: “We didn’t exonerate him.”

He added that prosecutors stood by the charges but thought the outcome was fair. Magats said: “Public safety is our No 1 priority. I don’t see Jussie Smollett as a threat to public safety.”

Many questions remain unanswered about the incident. Police have said Smollett paid two brothers $3,500 to stage the attack. Smollett’s lawyers said the payment was for nutrition and personal training services, but did not explain why the brothers who had worked for the actor would have attacked him.

Fox Television, which produces Empire, which once featured Smollett, said it was “gratified” that all charges had been dropped. Its statement read: “Jussie Smollett has always maintained his innocence and we are gratified that all charges against him have been dismissed.” Smollett’s character was removed from the final two episodes of this season in the wake of his arrest in February.