breakitdown

418 I'm a Teapot

Answer

418 "I'm a teapot" was defined as a joke in RFC 2324, an April Fools' spec for controlling coffee pots over HTTP. It has never been a real HTTP error; RFC 9110 now reserves the number so nobody assigns it a real meaning.

418
(Unused) RFC 9110 §15.5.19

Reserved. Known as "I'm a teapot" from a 1998 April Fools' RFC; it has no standard meaning in HTTP.

RFC 2324 (Hyper Text Coffee Pot Control Protocol, April 1, 1998) defined 418 for a teapot asked to brew coffee. It was a joke, never part of HTTP. So many frameworks and sites implemented it anyway that RFC 9110 marks the code as reserved, so it cannot be assigned a real meaning that would clash with deployed jokes. Some sites return it to bots they want to brush off; do not use it for real errors.

Explained

RFC 2324, the Hyper Text Coffee Pot Control Protocol, was published on April 1, 1998. It added a BREW method and said a teapot asked to brew coffee should answer 418. A 2014 follow-up, RFC 7168, extended the joke to tea.

Many projects implemented 418 anyway: Node.js, Go and others shipped a constant for it, and some sites return it as an Easter egg. In 2017 a proposal to remove it from those libraries met strong pushback, a campaign that called itself "Save 418".

Because the code is so widely deployed, the HTTP working group could never safely give it a serious meaning. RFC 9110 (2022) lists 418 in section 15.5.19 as "(Unused)": reserved, with a note that it was taken by a joke and is not to be assigned.

Gotchas

Related explainers

← All HTTP status codes