
HTTP Error Code 418 I'm a Teapot is about to be removed from Node - tanu057
http://save418.com/
======
frenchman99
Making everything dull won't benefit the field.

Sure we can remove every joke, every code comment that contains "FUCK", we can
forbid commits that contain swear words, we can ask engineers to wear suits,
we can remove animated GIFs from Slack and we can remove "418 I'm a teapot".

This kind of joke is what makes the job fun. You look at an implementation of
an HTTP request and see "418 I'm a teapot", you smile for a second and keep
working. That kind of fun contributes to happynness, increases psychological
well-being and ends up contributing to long-term productivity.

In addition, removing the 418 code would break backwards compatibility. It
will create way more problems than its availability does right now. This is
the kind of thing you have to think about before-hand: add it and keep it, or
don't add it. Now that we have a fun status code, we shouldn't add new ones.
But removing the existing one is useless and damaging.

~~~
FrozenVoid
418 can be reused as "i'm an IoT device without web interface"

~~~
SmallDeadGuy
There are also many, many, many 4XX status codes which are free. Any of those
could be used for that, why (possibly) break compatibility with previous
frameworks when not necessary?

~~~
FrozenVoid
The teapot is essentially an early IoT device and creating extra statuses is
extra work. Just a minor change in "teapot code" without rewriting standards
and software.

~~~
guilhas
So sys admins all around the world will start receiving 418 teapot warnings
from legacy systems

------
retox
Don't worry there will be one thousand packages you can download to re-add it,
some of them won't even contain exploits.

------
throwaway2016a
I find the initiatives like this to be kind of a waste of time. And some of
the reasons are kind of contrived. For example:

> While we have a number of spare 4xx HTTP status codes that are unregistered
> now, the semantics of HTTP are something that (hopefully) are going to last
> for a long time, so one day we may need this code point. [1]

First, you can remove it when there this problem actually happens. The
backwards compatibility issue won't be any more/less of an issue then than
now.

Second, "we may need this code point" is disingenuous unless the user is part
of the W3C there is no "we" here. The node community can't decide unilaterally
to change code points. (he might be part of W3C I didn't check. My sincere
apologies if he is)

With that said, another part of the argument is valid. rfc2324 which defines
the code is indeed not HTTP, it is HTCPCP (Hypertext Coffee Pot Control
Protocol) and one could strongly argue that it doesn't belong in an HTTP
library.

[1]
[https://github.com/nodejs/node/issues/14644](https://github.com/nodejs/node/issues/14644)

~~~
WorldMaker
At the point in the distant future where you are worried about needing more
HTTP error codes and considering reusing 418 it may just be easier to just add
more digits to the protocol. In HTTP/1.x the status codes are plaintext and
it's not like it would be that much of a change to most HTTP parsers. There's
not really even a strong technical reason why they are three digit codes to
begin with in plaintext HTTP, it's just an arbitrary choice.

The HTCPCP argument isn't all that valid as there are several recognized
(IANA) HTTP codes [1] from HTTP extensions like HTCPCP. Note for instance all
the ones from rfc4918 which is the WebDAV extension to HTTP, such as 424 and
507. Not all codes are from HTTP RFCs and I also think the "bug" here is that
IANA has ignored rfc2324 for too long and should recognize the RFC as a valid
HTTP extension with useful [2] HTTP status codes.

[1] [https://www.iana.org/assignments/http-status-codes/http-
stat...](https://www.iana.org/assignments/http-status-codes/http-status-
codes.xhtml)

[2] Usefulness is a subjective measure, of course, but usefulness in
jokes/play is still usefulness.

------
asploder
As a transgender woman who literally changed her name to include “teapot”, in
part because of this status code, seeing this issue come up in the same week
as the James Damore manifesto is a deep disappointment.

Why is it so hard for some technologists to have a basic level of respect for
their colleagues? What motivates them to take actions that demonstrably harm
their colleagues, whether it be asserting their biological inferiority or
removing their trivial-but-meaningful whimsy?

When I was a closeted teenager, tech was a respite from the pointless cruelty
of the rest of the world - or at least it felt that way. What happened?

------
mirages
[https://www.google.com/teapot](https://www.google.com/teapot)

------
syshum
So the solution then is to Adopt 418 as part of the HTTP standard, not remove
it from projects to appease the kill joys that have no fun in their lives and
lead sad crusades wanting to destroy to fun of others

~~~
underwater
The might require convincing the HTTP working group, chaired by one @mnot...

~~~
benaadams
Looks like that's happened [https://mnot.github.io/I-D/thanks-
larry/](https://mnot.github.io/I-D/thanks-larry/)

------
Tade0
From:
[https://github.com/nodejs/node/issues/14644#issuecomment-321...](https://github.com/nodejs/node/issues/14644#issuecomment-321824818)

    
    
      All, thank you for the amusing and fun feedback. It pleases us all to no end that the most beloved feature of Node.js is a Teapot. I think it's safe for us to leave this as is for now.
    
      I'm closing the issue and just to avoid keeping this issue from growing indefinitely for all of time, I'm going to lock it. Sleep in comfort tonight knowing that, at least for the foreseeable future, your Node.js web applications can proudly proclaim that they, too, are Teapots.

------
Jedi72
Error 420: Server confused and hungry

~~~
JD557
Twitter already uses that as `420 Enhance Your Calm`, which is thrown when you
are being rate limited.

------
MichaelBurge
It doesn't look like Node really does anything with the status code except
give it a message, so "removed from Node" doesn't mean anything since you
could still return any integer you like.

But, a good reason to remove a joke is when people start taking it too
seriously:

> In particular, Node's support for the HTCPCP 418 I'm a Teapot status code
> has been used as an argument in the HTTP Working Group to preclude use of
> 418 in HTTP for real-world purposes.

"Why not? I'm bored and it's a fun little thing" is a good reason to add it.
Vocal support from the masses is a good reason to remove it.

~~~
captainmuon
Shouln't we fix the HTTP Working Group then?

I mean there are people behind it, with email addresses. Tell them 418 it is
not actually USED, it just gets a different default message.

------
TranceMan
Sorry it's Friday - this cat would be out of a job:
[https://http.cat/418](https://http.cat/418)

------
philbo
Please no.

On the one hand you have a reasonable request, well-argued and politely-put by
a respected engineer, who is long-standing contributor to the IETF and W3C. On
the other hand you have a student who thinks 418 is fun.

~~~
monsieurbanana
Did you read the github issues? There were hundreds of people against it.

Many voiced their refusals, they were also well-argued and politely put.

On another note, isn't it important to have students think HTTP is fun?

~~~
philbo
> There were hundreds of people against it.

Engineering is not a democracy. The technical merits of an argument are more
important than how popular it is with arbitrary commenters on GitHub.

> Many voiced their refusals, they were also well-argued and politely put.

I read the comments on the node and requests issues and didn't see anything
well-argued. Nothing said there refutes the substance of the request. Saying
"but it doesn't do any harm" and then speculating about how the IETF should do
things instead is not a coherent argument.

> On another note, isn't it important to have students think HTTP is fun?

Genuinely, it isn't.

~~~
unimpressive
>Engineering is not a democracy. The technical merits of an argument are more
important than how popular it is with arbitrary commenters on GitHub.

The (frankly shallow) technical merit is that it gives us one less status
code, in a problem space where if you really _need_ that specific last status
code so much that it's worth undoing a small piece of nearly 20 year old
Internet culture to get it, the solution isn't to take that status code it's
to switch the way you represent status codes entirely.

I would make some comparison to scrounging for IPv4 blocks instead of
switching to IPv6, but the growth rate of computers on the Internet and HTTP
status codes aren't really comparable.

~~~
zaxomi
Only about 1/3 of the available codes in 4xx is currently used, so there is
still plenty of space left.

------
youngtaff
There is no HTTP 418 error code - it's not part of the HTTP spec - just a
massive amount of confusion amongst people who believe it is

------
loeber
Aristotle said: "what does not add, detracts." I firmly believe this; remove
cruft wherever possible. Bloat is bad, and stands in the way of clean &
elegant abstractions that can be built upon. Consequently, I think that
removing HTTP 418 is good.

~~~
quuquuquu
Cruft is in the eye of the beholder.

Would you take away the interior, glass, electronics, some of the metalwork on
your car, etc etc, just to have the most efficient vehicle possible?

Optimization is good, but you shouldn't push for it uber alles for generalized
and multifaceted uses.

------
tomohawk
What a masterful troll

------
gaius
So there is one individual who has made it their life's work to visit every
project on Github to remove something that harmed noone and amused many?

~~~
underwater
Well he does other things too. Mark is the chair of the HTTP working group and
contributes to the W3C.

~~~
gaius
Things like this are why committees and bureaucrats have a bad name.

