The encyclopedia · Software & IT · Technical decision · 2016
An 11-line JavaScript package was deleted and broke builds across the internet
In 2016 a developer unpublished his tiny npm package 'left-pad' after a dispute. Thousands of projects depended on it, and builds broke across the internet.
npm · 2016-03-22
What happened
On March 22, 2016, an independent programmer named Azer Koçulu unpublished all 273 of the packages he had published to npm, the default package manager for JavaScript and Node.js. Among them was a tiny package called left-pad — just 11 lines of code that pads the start of a string with characters. It was trivial, but it had been downloaded more than 15 million times, because thousands of other projects used it as a dependency.
The deletion was the climax of a petty but revealing dispute. Koçulu had published a package called 'kik'; the company behind the Kik Messenger app asked him to give up the name, and when he refused, npm itself transferred the package to the company. Frustrated, Koçulu asked npm's CEO how to delete all his packages — and was given the command to do it. He ran it, removing left-pad along with everything else.
The effect was immediate and outsized. Because so many popular tools depended on left-pad — directly or indirectly, including the Babel transpiler, the Webpack bundler and the React framework — builds and installs started failing across the JavaScript ecosystem, with 404 errors rippling through companies from Facebook and Netflix to PayPal and Spotify. npm restored the package within hours and later changed its rules so that widely-used packages couldn't be removed so easily. For a few hours, an 11-line function had broken a large part of the internet.
Why it happened
- Modern JavaScript projects depend on vast trees of tiny third-party packages, so removing one small package can cascade through thousands of builds.
- left-pad was used (often indirectly) by hugely popular tools like Babel, Webpack and React, so its removal broke projects that had never heard of it.
- npm initially let a single author unpublish a widely-depended-on package at will, with no safeguard for downstream users.
- The whole episode was triggered by a governance dispute over a package name, showing how much critical infrastructure rested on informal, individual control.
The lesson
A codebase built on thousands of tiny packages can break when one is removed. left-pad was 11 lines, yet much of the JavaScript world depended on it. Know your dependencies and pin the critical ones.
Aftermath
npm restored left-pad within hours and changed its policy so that packages older than 24 hours with dependents can't be unpublished. The incident became a landmark case in software supply-chain fragility, highlighting how much of the modern internet rests on a thin layer of tiny, often-unmaintained open-source packages controlled by individuals — a theme later echoed in other supply-chain incidents and attacks. For developers, the lessons are to audit your dependency tree, pin and vendor the packages you can't live without, and not assume 'free and popular' means 'reliable and permanent.'
Sources
- Left-pad — Wikipedia (22 March 2016 npm unpublishing, 11-line package, broken builds)
- How one programmer broke the internet by deleting a tiny piece of code — Quartz (Mar 2016)
spotted an error? The club wants to know.
More like this
A bad CrowdStrike update blue-screened 8.5M Windows PCs in the biggest IT outage ever
A mistyped command at AWS took down S3 — and a big chunk of the internet — for four hours
A software change took Verizon's 5G core down 10 hrs — 2M lost calling, texting and 911
Somewhere, someone solved the problem this company failed at. 2nd Opinion →

Comments · 0
Sign in to join the comments.