8 ms·
418 I’m a teapot
- deleted 2y ago[deleted]
- gnabgib 2y agoDiscussions in: 2020 (153 points, 118 comments) https://news.ycombinator.com/item?id=24206899 https://news.ycombinator.com/item?id=24206899 2021 (193 points, 108 comments) https://news.ycombinator.com/item?id=28541327 https://news.ycombinator.com/item?id=28541327 2023 (206 points, 189 comments) https://news.ycombinator.com/item?id=36090344 https://news.ycombinator.com/item?id=36090344
- Arn_Thor 2y agoI think we were due another
- jtxx 2y ago2022 was a sad year
- andreareina 2y agoTypically people post older conversations so people can check them out, not as a chastisement for reposting.
- Arn_Thor 2y agoFair enough. Hadn't thought of it that way
- walthamstow 2y agoEvery April 18th
- enews01 2y agohttps://http.cat/418 https://http.cat/418
- defrost 2y agoHere I was, foolishly thinking it was code for operator panic: https://www.youtube.com/watch?v=kLQStcdhAGA https://www.youtube.com/watch?v=kLQStcdhAGA
- matt3210 2y agoyou are not a tea pot.
- flir 2y agoCeci n'est pas une théière
- anilakar 2y agoPlease, never ever again add such features to standards as a joke. Some backend folks have started to return it as an indetermiante error code, which in turn means that all client-side libraries will have to handle it at some level.
- Epa095 2y ago* get to handle it.
- ahoka 2y agoWhy is this a problem for libraries? Not that most libraries handle anything about HTTP correctly out of the box anyway.
- mehdix 2y agoWell, I recently used it in a small PostgREST-subset query builder I wrote in case the query builder received an input more complicated that what it could handle. I found 418 a natural response in this case. In retrospect a 5xx (edit: or better 422) error is more appropriate, however.
- AStonesThrow 2y agoThankfully, error codes such as this are structured so that the initial "4" digit is the only one that really matters. Just treat it as a client error and you can't go wrong.
- nutrie 2y agoDisagree. We gotta have fun.
- threatofrain 2y agoI counter-disagree. It is so easy in life to have fun. There's so much fun everywhere. If you're so starved for fun then this won't do it for you either. The higher the scale the more likely your easter egg becomes not an easter egg. I also think the supermajority of engineers prefer fun entirely outside of work, hence why open source can feel so lonely and without corporate funding would probably shrink to a pathetic size. Hence why personal websites are so culturally irrelevant. Or why there's such a lack of artistic experimentation in apps or web. Or why there's so few non-corporate meetups nowadays in CA or NY.
- failedartifact 2y agoI had Sonatype Nexus return to me once upon upload of an artifact. I was not impressed.
- andrepd 2y agoOdd coming from such a Serious Enterprise™ Solution®
- mrweasel 2y agoOther than the humor in it, makes you wonder why they'd pick 418. It does sometimes feel like some errors are missing from the http codes, prompting developers to either create their own, or repurpose some, like 418, where they feel relatively safe that it won't conflict with something. It never ceases to amaze how http status codes can be misused. My favorite is still the customer who had built a service that would return "200 OK" and then in the response just be the text "500". We had asked if they could return a 500 error, if there was an error in the API, rather than a 200, so they swapped out the 200 in the response, but not the headers. "200 Created" is also up there, in terms of developers with limited understanding or weird framework limitations.
- woleium 2y agoi think you may mean “never _ceases_ to amaze”, as in it never stops amazing </pedant>
- mrweasel 2y agoFixed, thank you :-)
- 9dev 2y agoThere are definitely missing codes, which is why sometimes the WebDAV status additions get used in purported RESTful APIs—which is semantically wrong, but often carries a lot of helpful meaning. For example, things like 422: Unprocessable Content or 423: Locked are really helpful to convey meaning, but not available in plain HTTP.
- portaouflop 2y ago419 I‘m an awfully hot coffee pot
- sokoloff 2y ago419 - I’m a Nigerian Prince.
- qwer1234321 2y agoI love engineering sense of humour :)
- thih9 2y agoThe linked source RFC is a pleasant read too: https://www.rfc-editor.org/rfc/rfc2324 https://www.rfc-editor.org/rfc/rfc2324
- falleng0d 2y agoNow. I didn't know about the RFC. This is so good. I hope we can continue to advance this field with good humor, and good coffee.
- ctm92 2y agoThere are quite some RFC with humor, most prominently probably RFC1149 and its extension RFC2549
- magicalhippo 2y agoIt's even been updated[1] for IPv6, so no reason not to use it! [1]: https://www.rfc-editor.org/rfc/rfc6214 https://www.rfc-editor.org/rfc/rfc6214
- sameerds 2y agoIP Datagrams on Avian Carriers https://www.rfc-editor.org/rfc/rfc1149 https://www.rfc-editor.org/rfc/rfc1149 IP over Avian Carriers with Quality of Service https://www.rfc-editor.org/rfc/rfc2549 https://www.rfc-editor.org/rfc/rfc2549
- penwielder 2y agoFor anyone who wants to explore further, Wikipedia has a list page for these RFCs: https://en.wikipedia.org/wiki/April_Fools%27_Day_Request_for_Comments https://en.wikipedia.org/wiki/April_Fools%27_Day_Request_for... There are a lot more of them than I had realized before finding that. Some years even had multiple.
- dsab 2y agoI love those RFC documents. I am currently working with CCSDS documents and they are total trash comparing to RFC. For example when I read documents about how TCP works or TLS works I see that it has been written by professionals with experience and vision. And CCSDS documents have been written by bureaucrats who have never written a line of code in their lives.
- mrmincent 2y agoI hate to be that guy, but just a reminder that if you’re implementing a production system - even if it’s an internal tool - please don’t return 418 as a joke unless you really are a teapot. As an SRE I’ve been on the receiving end of a broken system returning teapots over the weekend, and it’s not as funny then.
- sleepyhead 2y agoI don't get it. If the system is so broken it is returning some random http code then I don't see how returning some other random http code is better?
- dtech 2y ago5xx indicates an error in the server, 4xx indicates a client error. So it's quite common for clients to handle them differently like retrying 5xx but not 4xx.
- sleepyhead 2y agoSure, but if the server is returning 418 by an error it is likely that it would return some other 4xx error instead of 5xx. 418 is irrelevant here, the server is rogue.
- cybrox 2y agoWell, statistically, 9 out of 10 engineers find this very funny come Monday.
- fastball 2y agoWe return 418s for captcha failures.
- mikepurvis 2y agoSurely that should be a 401 unauthorized?
- noobermin 2y agoThis was the nerdy non sequitur joke before "sir, this is a wendy's" went platinum on facebook memes in the 2010s.
- whamlastxmas 2y agoI mean there were a million, including the game, which everyone was freed of by xkcd.
- plaidphantom 2y agoDangit, I had finally gotten good at The Game.
- drilbo 2y agohttps://xkcd.com/391/ https://xkcd.com/391/
- chrisbra80 2y agoVim implemented this: `:call err_teapot()`.
- sureIy 2y agoWhy would a text editor have a way to produce HTTP error codes? I don't get it
- worble 2y agoWhy would a web server try to brew coffee when it's a teapot?
- flir 2y agoPostel's law
- seanhunter 2y agoVim has http support as part of netrw which exists so you can do things like edit files over scp. I have at times had to fix remote hosts using this type of thing for example vim scp://seanhunter@somehost.example.com:1234/.vimrc ^ ...which believe it or not works just fine if I have ssh access to that host. ..and I think http is supported for stuff like webdav, although I can't think of ever using http directly in vim like that. Given it's built-in it's useful for things like updating plugins etc. Once you've made the leap to thinking having net support like that built in is worthwhile, it makes sense for vim to have the wherewithall to test the responses for different status codes etc so plugins and scripts which use that network functionality can test the different failure cases.
- karol 2y agoThe older generation of software craftsmen have been reading about it for a while now and the joke got a bit tedious at this point.
- 0x00cl 2y agoIf you are bored you can read the discussion when _mnot_ tried removing 418 status code from different languages and implementations because it wasn't technically correct. https://github.com/nodejs/node/issues/14644 https://github.com/nodejs/node/issues/14644 https://github.com/golang/go/issues/21326 https://github.com/golang/go/issues/21326 And someone even ended up making a website http://save418.com/ http://save418.com/
- DanielHB 2y agoThis 418 stuff reminds me of a previous job where we had some arguments about putting emojis in our applications. I was against it and a coworker was for it. Like putting rocket ship emoji when an operation succeeds. My main argument was that if you put things like that in your applications then people start having opinions about it and they want to discuss it and add more to certain places or remove from other places and bring it up when you are trying to discuss unrelated things. The increase in communication is a big detriment in my opinion, especially if there is no user behavior tracking to see if those emojis actually improve any user-related metrics (this was a b2b application so we didn't do a lot of user tracking). It wasn't even about professionalism or anything like that, just the fact that those kind of things are subjective (some people like, some don't, some don't notice, some like a lot and want more) created small-scale friction often enough that I was getting annoyed by it.
- hermannj314 2y agoWe just had a work party and they invited the whole staff. I was outraged they didn't do a proper controlled A/B test. Management will never know if having fun together was a good use of their money. Idiots.
- DanielHB 2y agoThe problem was people (including management) wanting to talk about where and how to put emojis once we added a few. The less I have to talk to management the better. All those small discussions were essentially pointless and they happened often enough that I was getting annoyed by them. Like, sometimes we would be showing "in development" stuff to clients and then they would interrupt and mention something like "nice rocketship emoji" and I am like "can you just focus on what I am showing you"
- theginger 2y agoI think since it is I am a teapot not you are a teapot It should be a 5xx code because clearly it's a server side issue.
- LordRatte 2y agoHonestly doesn't sound like a problem at all in the greater scheme of things.
- mass_and_energy 2y agoDisagree, asking a teapot for a cup of coffee is an invalid user request. The server is working as expected, but is not being asked to work as expected.
- Towaway69 2y agoAgree, it’s a functioning teapot. Definitely 418. If the cup is empty, then a 518 teacup is empty error would be more appropriate but as long as there is piping hot tea - 418 for me. /s
- deleted 2y ago[deleted]
- sireat 2y agoThe RFC covers mostly coffee brewing related activities. I've always wondered if you were to have an actual networked Teapot, when would it be appropriate to send 418. I am sure there are some networked teapots already. If someone wanted to send a "brew tea" request (via POST?) to an actual teapot, then 418 would not be suitable, you'd want something else, no?
- bluefirebrand 2y agoI think making a networked teapot with an undocumented endpoint for "brew coffee" that returned 418 would be fun :)
- averageRoyalty 2y agoUsually in one of these threads, someone links the iiNet coffee cam. Here you go: https://coffeecam.iinet.net.au/coffee/history/ https://coffeecam.iinet.net.au/coffee/history/
- mmcallister 2y agoiiNet was probably the best job I've ever had, certainly the place where I learnt the most, and had the most fun. The coffeecam was cute, acb - the one primarily responsible for the coffeecam - also had American candies for sale around it (at least when I worked there at Hay Street)
- deleted 2y ago[deleted]
- core-utility 2y agoI named my IoT Wireless SSID to 418. Thought I was clever, even if nobody else understands it.
- cemoktra 2y agoThe password is "I'm a teapot" right?
- core-utility 2y agoI definitely thought about it but that seemed a bit too crackable
- palsecam 2y agoI use 418 as a reply to illegitimate bots. It’s fun and it makes filtering logs easier. Nginx config snippet: # Nothing to hack around here, I’m just a teapot: location ~* \.(?:php|aspx?|jsp|dll|sql|bak)$ { return 418; } error_page 418 /418.html; Example: https://FreeSolitaire.win/wp-login.php https://FreeSolitaire.win/wp-login.php (NB: /wp-login.php is WordPress login URL, and it’s commonly blindly requested by bots searching for weak WordPress installs.)
- jbombadil 2y agoQuick side-note. Thank you for freesolitaire.win. It's such a beautiful implementation of solitaire. Works so well as a PWA, I can enjoy it even without proper internet connection, it's simple, does the basics, but does it perfectly. There's nothing to add to it, but more importantly... nothing to take out. I wish more software was written like this. I've donated already, but I use it so much I'll donate again.
- palsecam 2y agoWow, thanks jbombadil! That’s so heart-warming to hear <3 I’m speechless. I’m glad you like https://FreeSolitaire.win https://FreeSolitaire.win that much! Thank you again for your kind words (and donation!)
- DaveChurchill 2y agoAlso a +1 for the solitaire! One suggestion: how about an inverted mode where the piles grow up from the bottom? I think it would be much easier to control while playing on phone
- palsecam 2y agoOh that’s an interesting idea! Thanks Dave, had not think about that! Regarding playing on phone: one improvement I have in mind, is to have the stock (aka reserve) and waste piles be on the right side. That would make them easier to reach for right-handed players, I guess. What do you think? (The foundations piles would inversely go to the left. They are rarely manipulated, given that one can double-tap a card to automatically send it to its foundation pile.) Thank you again for the feedback, that’s always very appreciated!
- hellojebus 2y agoWe use the 418 response code in our authentication service. We use to determine whether the token is invalid due to expiration, vs any other reason. If 418, we know to refresh to access token automatically... pretty harmless and definitely not a security measure.
- deleted 2y ago[deleted]
- anal_reactor 2y agoThere's this website called tcrf.net discussing hidden gems in old games and I feel like in the past, at least in some companies, engineering was fun. I really cannot picture creating anything like 418 in my current workplace.
- declan_roberts 2y agoEvery time I have encountered this error code in the wild I have been extremely frustrated. Somebody tries to be cheeky, and rather than just return the proper status code (like a 429 or 503) they return this, which breaks a lot of HTTP status code parsing. Not cheeky or funny. Boring actually. I know I'm boring but I have a job to do.
- cl0ckt0wer 2y agoIf your parser can't handle in-spec error codes, then that's a parser problem.
- declan_roberts 2y agoRegardless of the parser if you're using a 4XX status code when you should be using a 5XX status code then you're simply doing it wrong.
- justin66 2y agoHonestly this discussion makes the occasional "I'm a teapot" seem useful. Your log and error handling ought to be capable of handling occurrences of a programmer doing something goofy.
- Towaway69 2y agoWhy would being a teapot justify being a 5xx status? The server hasn’t failed, it’s a functioning teapot, definitely not broken. I would assume if the teapot were to be broken, then a 518 teacup is empty error would be more appropriate. But as long as there is a piping hot cup of tea, then it’s a 418 code. /s
- adolph 2y agoA possibly apocryphal didactic story relevant because if an HTTP implementation misses 418, what else does it miss?: The story goes that Van Halen had stipulated on their concert rider that they wanted M&M candy backstage, but with all the brown ones removed. In his autobiography ‘Crazy From the Heat’ singer David Lee Roth explained this was not just a childish request, but in fact was a cunning test whereby he could tell instantly if the venue was safe or not. He reasoned that if a concert venue did put brown M&Ms out, then they cannot have read the rider properly and that they then might also have made other more dangerous errors, such as in their electricity supply or stage weight capacity. https://www.metaltalk.net/chris-dale-myth-busting-the-van-halen-brown-mm-story.php https://www.metaltalk.net/chris-dale-myth-busting-the-van-ha...
- declan_roberts 2y agoFriendly reminder never to use a 4XX status code when you mean to return a 5XX even if you think it's cheeky or funny.
- impure 2y agoI use 418 in place of 400. It doesn’t matter too much because too much information about the error is a security risk, I just give generic codes for everything. If you want to debug something look at the logs.
- dancemethis 2y agoObjectively speaking, the best status code.
- mhink 2y agoThis always reminds me of a great find I discovered a while back when I was reading the HTTP/2 RFC for whatever reason. Back before "429 Too Many Requests" was standardized, Twitter's API used to return a nonstandard 420 status code (with the caption "Enhance Your Calm") when rate-limiting incoming requests. They stopped doing this for understandable reasons, but the caption, at least, got snuck into HTTP/2, see: https://datatracker.ietf.org/doc/html/rfc7540#section-7 https://datatracker.ietf.org/doc/html/rfc7540#section-7 down at 0xb, the caption for disconnection due to excessive load is, indeed, ENHANCE_YOUR_CALM. Always makes me smile. :)