15 ms·
418 I'm a teapot
- perilunar 3y agoI think there should be a "555 Bad Timer" error for when servers can't keep up or are running slow. Like a "429 Too Many Requests" error but it's the server's fault.
- News-Dog 3y ago;> 555 timer IC - Wikipedia : https://en.wikipedia.org/wiki/555_timer_IC https://en.wikipedia.org/wiki/555_timer_IC I'm looking forward to the extended protocol Sugar bowl.. A parody of 'I'm a Little Teapot' : https://en.wikipedia.org/wiki/I'm_a_Little_Teapot https://en.wikipedia.org/wiki/I'm_a_Little_Teapot 'I'm a little teapot short and stout... here is my handle... here is my handle... Oh fv<k!, I'm a sugar bowl'
- SirAllCaps 3y agoFound this while scouring this list of HTTP status codes, because I wanted to make sure I was giving appropriate responses in this web API I'm developing.
- nonethewiser 3y agoIts rather funny, isnt it. But I wonder what the context is. Why they added it.
- colejohnson66 3y agoIt was an April Fools Joke
- imran-iq 3y agohttps://en.wikipedia.org/wiki/Hyper_Text_Coffee_Pot_Control_Protocol https://en.wikipedia.org/wiki/Hyper_Text_Coffee_Pot_Control_... Started off as an April's fools joke, people liked it enough to keep it in.
- KMnO4 3y agoIt was added as a joke, and kept because (according to https://save418.com https://save418.com) > “It's a reminder that the underlying processes of computers are still made by humans”
- AmericanChopper 3y agoStupid reason imo. Adding childish humor to a protocol seems like harmless fun until you remember how much of a mess network protocols, and their specs, and their implementation is. Maybe you think a 418 error page is funny, but I think you’ll appreciate it a lot less when your application gets a rather confounding error because some service provider wanted to remind you that the underlying processes of computers are still made by humans, rather than implement the actually correct response.
- Dalewyn 3y ago/me slaps AmericanChopper around a bit with a large trout https://en.wiktionary.org/wiki/trout_slap https://en.wiktionary.org/wiki/trout_slap
- throwaway173738 3y agoThat’s trout abuse.
- kQq9oHeAz6wLLS 3y ago... Nope, it's still funny, we're keeping it.
- anonymousiam 3y agohttps://en.wikipedia.org/wiki/List_of_HTTP_status_codes https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
- dutchbrit 3y agoHad to think of https://yourmom.zip https://yourmom.zip
- noman-land 3y agoI lol'd.
- Scalene2 3y agoIs anyone ever going to use that tld for anything non malicious, non prank, and instead something actually actually serious?
- justblue 3y ago[flagged]
- renewiltord 3y agoBinance will send you 429s if you hit their rate limits. If you continue to do so they'll hit you with a 418 and then blackhole your traffic.
- cortesoft 3y agoTwitter used to respond with status code 420 and the message “enhance your calm”
- notyourwork 3y agoI bet that makes Elon feel warm and tingly inside.
- renewiltord 3y agoThat's a fun one. Not sure why you're downvoted for the anecdote.
- derbOac 3y agoI felt compelled to verify httpcats has it covered and it does: https://httpcats.com/ https://httpcats.com/
- noman-land 3y agoThat url is way too long. I prefer https://http.cat/ https://http.cat/.
- steanne 3y agoalso dogs https://http.dog/418 https://http.dog/418
- aledalgrande 3y agoThis is always my go to if I have to do fun custom error pages
- moffkalast 3y ago> 218 This is fine Is this the one that gets sent if the server temperature rises above 80 deg?
- palebluedot 3y agoOver 20,000 teapots out there: https://search.censys.io/search?resource=hosts&q=services.http.response.status_code%3A+418+and+services.truncated%3A+false https://search.censys.io/search?resource=hosts&q=services.ht...
- galaxyLogic 3y agoThere is no shortage of numbers. I wonder if it would make sense for every web-server ot have its own status-code if up and running? Of course they would have to be registered somewhere.
- skeeter2020 3y agoThis has nothing to do with servers though. It's in context to the requested resource. If you want to check if a server is alive it's happening several layers below an HTTP request.
- galaxyLogic 3y agoRight, but, the word "server" is often used to refer not to the physical machine, or even a virtual machine, but to the "web-server" meaning a running instance of Apache nginx or IIS. etc. Not saying such a feature is needed just wondering could it be useful for some purpose.
- ceejayoz 3y agoSo... if the API I use switches from Apache to nginx, I have to rewrite all my success/error handling?
- galaxyLogic 3y agoOf course not, the error-codes should remain the same standard ones as always. I'm saying there are more numbers than those, which could be used for some as yet unidentified purpose. Perhaps a unique status-code of a server could identify things like the version of content served by it.
- ceejayoz 3y agoThat's what ETag headers are for. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ET...
- 3y ago
- deleted 3y ago[deleted]
- scoofy 3y agoI honestly use this a lot when I'm testing, because it's basically the only response that can show up where I know god damned well that it's only happening because I programmed it to happen under certain conditions. edit: a common one for me is that if any test passes a post request without a csrf token... sorry, I'm a teapot, because I forgot to add a csrf token to that form.
- duxup 3y agoIt’s still in my production code, usually in places where i don’t expect code to ever lead to. It’s just my general “something particularly odd has happened” response.
- ozfive 3y agoI do this too for the same reason, but also for the next person that looks at my code to give the joy of laughter.
- wyldfire 3y agoI've never worked on a webserver but doesn't 500 seem better suited for that condition?
- lucumo 3y agoYes. And write something to the logs, so you can find out there's a bug before users call your helpdesk. Arguably that's the most important part of any 5xx error. It's a bit of a purist argument, but 4xx series means the client can fix something and get a better response.
- prerok 3y agoHmm, I don't think it's that purist. All my HTTP clients have the logic that 4xx is a non-retryable error, i.e. if I repeat the request I will always get the same response unless something is changed, whereas 5xx means that something is wrong on the backend and I should retry it later. It is true I have often encountered inconsistencies in implementations but I do think that when that happens it really is a backend bug that should be fixed.
- deceptionatd 3y agoOn a related note, my favorite easter egg header: http://www.gnuterrypratchett.com/ http://www.gnuterrypratchett.com/
- buggy6257 3y agoI came across this a while back that I enjoyed but is kinda just an “lol” but not super useful status code thing: https://github.com/3digitdev/Haiku-TTP-Codes https://github.com/3digitdev/Haiku-TTP-Codes Doesn’t have any for 418 yet though… a PR may be in order!
- egypturnash 3y agoI'm a pot for tea // short and stout, that describes me // tip me over now.
- pugworthy 3y agoTeapot's witty brew, HTTP 418, "I'm just a teapot."
- astrea 3y agoI'm more amused by "A combined coffee/tea pot that is temporarily out of coffee should instead return 503 [Service Unavailable]".
- dclowd9901 3y agoKinda thought this should respond 404
- tsimionescu 3y agoA 404 would mean that the client should not expect to find coffee there at all, which in this case would actually be better replaced by 418. However, if coffee can be found, just not right now, then it's the server's fault, so a 5xx code is in order, and 503 fits the bill best.
- alganet 3y agoSomeone that actually knows proper HTTP semantics on HN? I'm positively surprised.
- Aeolun 3y agoGlad to see that this is supported across all browsers.
- ChrisMarshallNY 3y agoI use this in my API, for when it is called without any query parameter. I also return a teapot emoji as the response body. https://emojipedia.org/teapot/ https://emojipedia.org/teapot/
- IChooseY0u 3y agoMake sure you pre-allocate a buffer that is short and stout
- booi 3y agoEnsure it’s long enough for a json map of handle and spout objects
- plutaniano 3y agoI've seen a 418 response on a production system once... on a simple request that took 5 seconds to be fullfiled. Building integrations for duct-taped legacy systems in finance is fun.
- replygirl 3y agoit was steeping!
- aledalgrande 3y agoThere was a movement to protect this HTTP code from boring committees: https://en.wikipedia.org/wiki/Hyper_Text_Coffee_Pot_Control_Protocol#Save_418_movement https://en.wikipedia.org/wiki/Hyper_Text_Coffee_Pot_Control_... Protect the code!
- sva_ 3y agoI like it when people come together for something so silly.
- mrmincent 3y agoAs an SRE, please don’t use this for internal tools to be cute. It’s not helpful, and in 5 years time when you’re long gone and something breaks at 2am, it’s incredibly frustrating.
- Tcepsa 3y agoAh yes, the "Sir, this is a Wendy's" of HTTP response codes ^_^
- eyelidlessness 3y agoThat’s quite a weird error to get at an Arby’s!
- nyolfen 3y agorussian MoD sites started returning this for foreign IPs shortly after the invasion began last february
- spondyl 3y agoEvery time this pops up, I'm reminded of the day that the NPM registry started returning 418 responses for users accessing it via corporate HTTP proxies. I remember being at a training course that day and my manager asking me what we could do to fix it because our CI was failing to pull dependencies from NPM. Trying to explain that NPM was returning a status code intended as an April Fools joke and which was never meant to see the light of production was quite difficult Perhaps I can fix a lot of things but debugging a response code that isn't meant to exist is not one of them. https://github.com/npm/npm/issues/20791 https://github.com/npm/npm/issues/20791
- portsnadaptors 3y agoI remember that day. As a more junior developer I was very confused as to what I had surely done wrong.
- pabs3 3y agoThe weirdest HTTP code I've heard of is LinkedIn giving 999 for when it doesn't like your IP address.
- geuis 3y agoMany years ago, some person misconfigured their squid proxy and was hitting https://jsonip.com https://jsonip.com to the point my server at the time was turning green in the gills. I started responding with 418 "You are a tea kettle" or something like that to those specific requests. The originating dev actually paid attention to their error messages and quickly resolved their config issue. Fast forward to March this year. Some fucking numb nuts a-hole decided to add jsonip.com to an EXTREMELY widely used version of Dalvik/Android software that gets deployed to hundreds of thousands or millions of devices. Overnight my traffic levels increased by 300%. I'm a solo dev offering a free service for 12 years. That kind of increase in traffic costs me money I've never had to plan for. I ended up switching to Cloudeflare to handle the load with a WAF filter on the offending android tvs and other devices. However Cloudflare doesn't properly route ipv4 address because "ipv6 is cool so we only do that" or something. Despite numerous support requests, that's still shmaybe an enterprise level feature. I apologize to any long time users of the service. This was completely unexpected after more than a decade. I've been trying different "fixes" for 2 months and have not resolved a way to block this garbage traffic and still provide the original services. Yea sorry I turned this funny old internet post about the mit coffee pot into a thing happening to me. But if for some ungodly reason you're the dev or know who did it, REMOVE MY SERVICE ADDRESS FROM YOUR OUT OF DATE FROM TV/SMART DEVICE ANDROID code. You're literally fucking killing me. I've literally spend dozens of hours trying to find out if this was a contribution to a public source repo. Nothing. Based on the Dalvik user agent, I only found a handful of references in Chinese repos. But google search is so terrible these days, even those are false flags. So I have no idea who to contact about this. Some dipshit on your team(s) decided to abuse a free service as though there isn't a single human person behind it absorbing the costs and making sure it runs.
- christiangenco 3y agoSounds like you’ve built a valuable service that large companies are using in production! Why not start charging for it?
- geuis 3y agoHave been thinking about it for a couple years. People generally don't realize the complexity that gets added when you start charging money for something.