A few weeks ago, I mistakenly took my own site down for about thirty minutes.

I was wiring up a queue-based pipeline for GitHub webhooks. That needs two Cloudflare Workers: one that catches the webhook and drops the event on a queue, and a second that picks it up and does the slow work in the background. GitHub gives you ten seconds to respond, so you answer fast and do the real work after.

Two Workers means two deploys. I chained them into a single command.

Cloudflare's build system printed a warning. It said it was overriding the Worker name in my config with the name bound to the build project. One line, sitting in the middle of a wall of normal deploy output. Then the command exited zero, the way a successful command does.

What that warning actually meant is that my second Worker, all 0.39 KiB of it, had just been uploaded as a new version of the first one and promoted to live traffic. That Worker knew how to read from a queue. It had no idea what an HTTP request was. Every request to the site threw an exception until I worked out what had happened.