The then-secretary-general acknowledged that the UN had failed the people of Rwanda during the 100-day genocide in which almost a million people were killed, and pledged to ensure that the UN would "never again" fail to protect a civilian population from genocide or mass slaughter.
In Aleppo today, Annan's promise is inaudible beneath the roar of bombs and the whimpers of children trapped under rubble, their faces caked with blood and dust.
After years of images from this atrocious war being screened around the world, they are faces we know well.
The streets of their city, the last remnants of hospitals and schools among which civilians scramble for shelter, are unrecognizable.
There is no way that any of us can avoid responsibility for Aleppo.
We watch it all, in real time, and it continues.
How has this happened?
In the summer of 2012, I documented one of the first air raids on Aleppo for Human Rights Watch.
A few rockets fired from a plane hit Dar-El-Shifa hospital in the city.
My colleagues and I rushed there to speak to the doctors and witnesses.
As the war spiraled beyond the worst nightmares of Syrians, attacks on clearly marked civilian objects like hospitals became commonplace, but back then I thought it would be a game changer.
I was sure that if we could show the world how ruthless and brutal the Assad government was, using air power against its own people, it would make a difference.
So we took our findings to the UN Security Council and governments across the globe, including Russia. Nothing happened.
There was no armed group calling itself ISIS to fight in Aleppo back then, and the UNSC essentially considered Assad's killing of civilians to be Syria's internal business.
The core obligation of international law, to protect civilians from atrocities that "shock the conscience of humanity," was pushed aside.
Instead of taking steps to end unlawful attacks on civilians, hold perpetrators to account, and stop the flow of arms that was fueling the conflict, the UNSC sat back.
The refusal to tackle abuses in Syria early in the conflict has paved the way for a litany of horrors
: hundreds of thousands of civilian deaths, resulting from air and ground attacks as well as accusations of extermination taking place in prisons; wanton destruction of cities and towns across the country, suspected chemical attacks and widespread use of cluster munitions and other banned weapons; and the spread of groups like ISIS who revel in flouting the fundamental principles of humanity.
Is the situation really surprising?
We have seen this international inaction before, in Rwanda and Srebrenica, in Cambodia and Yemen.
The need for a dramatic overhaul of the UNSC is painfully clear. With every civilian death in Syria the message gets louder: this is not working.
Again and again, even after becoming a party to the conflict, Russia, with support from China, has used its veto as a member of the Permanent Five to block any international action to end the nightmare in Syria.
Amnesty International has for years been calling for P5 members -- the US, Russia, France, the UK and China -- to refrain from using the veto in cases of genocide and other mass atrocities, which would enable the UN to take action more easily when civilian lives are at risk.
Without its veto power, Russia would not have been able to block the referral of the crimes in Syria to the International Criminal Court (ICC), or the opening of desperately needed humanitarian corridors.
Russia was complicit in atrocities of the Syrian government long before it began its bombing campaign in Syria in September 2015.
It has been accused
of supplying the government with arms to commit mass war crimes and crimes against humanity from the start of the civil war, while shielding it diplomatically from accountability.
But it is not the only country to blame.
The climate that emboldened Russia to behave like this has been years in the making.
In the 1990s, in Chechnya, I documented Russia using many of the same tactics now being used in Syria.
First came the leveling of cities, which left tens of thousands dead or injured, and hundreds of thousands homeless and displaced.
Then came the sweep operations, mass arrests, enforced disappearances, torture and executions, the same type of operations that are now being reported from Aleppo and other areas of Syria recaptured by the Syrian government.
Has the UN become complicit?
Accountability for violations committed in the Chechen conflict has been sorely lacking.
It has led to Russia feeling so emboldened that it no longer even worries about flagrantly violating international law.
By allowing Assad and his Russian supporters to continue their assault, the international community has become complicit, every day, in their crimes against humanity.
What's more, it is sending a clear signal to any other leader who might decide to murder civilians on a mass scale that we don't really mean "never again."
The world has betrayed Aleppo, and nothing can make up for the lives lost or shattered.
But what we can do is recognize that this catastrophe is an alarm bell signaling the desperate need for the international community to overhaul the way it responds to atrocities.
After the protection and evacuation of civilians, which is paramount, the focus must turn to holding perpetrators to account, to send an unequivocal message that war crimes have consequences.
An investigation by the International Criminal Court may not be possible right now, but evidence must be preserved to ensure that those who have committed such crimes can be prosecuted in the future.
Otherwise, we could well be faced with another Aleppo, and the cries of "never again" will, again, ring hollow.