418 I'm a Teapot
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.
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
- Some WAFs and bot filters return 418 to block automated traffic. If an API call gets 418, you are probably being filtered, not talking to a teapot.
- Do not use 418 for real application errors: monitoring and client libraries treat it as an unknown 4xx.