The left-pad Incident

In March 2016, a dispute over a package name set off one of the most cited cautionary tales in modern software. A developer, Azer Koculu, had published a package named “kik,” and the messaging company Kik wanted that name. According to npm’s own account, after npm sided with the company under its dispute policy, the developer responded by unpublishing his packages from the registry, hundreds of them, including a small utility called left-pad.

left-pad did one simple thing: it padded a string on the left with characters to reach a desired length. The function was only a few lines long, yet it had been pulled in, directly or indirectly, by an enormous number of projects. When it vanished, those projects could no longer install. npm’s post-mortem records that “shortly after 2:30 PM (Pacific Time) on Tuesday, March 22,” it “began observing hundreds of failures per minute.”

The recovery was unusual. npm’s account describes how a community member republished left-pad within minutes, and when version pinning deep in dependency chains kept some builds broken, npm took what it called the “unprecedented step” of re-publishing the original code so that the exact version everyone depended on would resolve again.

The story stuck because of what it revealed, not its scale. A trivial, few-line package could halt builds around the world because so much software rested, unknowingly, on long chains of tiny dependencies. The incident became shorthand for the fragility of deep dependency trees and pushed registries like npm to restrict how freely published packages can be unpublished.

Sources

Last verified June 7, 2026