tl;dr install this user script, and it becomes possible to vote to close for old close reasons such as "not constructive" and "too localized".

After doing some twiddling with Stack Exchange JavaScript, I discovered it's possible to vote to close for old, now-decommissioned close reasons such as "not constructive", "not a real question", and "too localized".

While writing my own script to cast close votes, I discovered that it's possible to cast votes for reasons that can no longer be selected. Basically, the server only checks to see if the close reason ID is valid, without checking to see if the reason is one of the ones that can actually be selected.

Awesome Poodles has written a user script that adds these close reason options back into the close voting UI, as a proof of concept. (Note that the old "exact duplicate" reason is missing from that script because I couldn't figure out how to pass dupe targets to it.)

I tested this out, and this script does work for <3k users (it will cast a recommend closure flag), and it also works within Stack Overflow for Teams, where all users have binding close vote privileges.

Can this please be fixed? As far as I could tell, the only good reason for keeping this workaround was because it previously wasn't possible to close Teams questions as off-topic (only as duplicate), and this workaround would allow for it, but now that an official off-topic reason has been implemented for Teams, I see no reason to keep it around, as it allows users to vote for close reasons that were removed for good reason.

  • 5
    wait, so literally, if a bunch of people want to force something silly to happen.... it will? Not entirely sure fixing this is a great use of time.... May 8, 2019 at 7:07
  • 2
    @JourneymanGeek As there's a user script floating around making this extremely easy, I think this should be plugged. May 8, 2019 at 7:10
  • 14
    Just because you could, dosen't mean you should May 8, 2019 at 7:13
  • 14
    Users that exploit a publicized bug will be suspended. So thanks for making this public. Let's move on.
    – rene
    May 8, 2019 at 7:27
  • 2
    @JourneymanGeek can I try to reproduce it (with this question) by vtc as noise or pointless? (without being suspended) ;) May 8, 2019 at 7:38
  • 5
    Oh maaaaaan. On one hand, being closed as NC would be hilarious. On the other hand, I would give you a polite warning about such things, and ask that you not do it again.That's to say, as a mod, I would have to strongly discourage you. May 8, 2019 at 7:41
  • form post tweaking is an abuse of the system anyway, no-one should be spending time sleuthing who twiddled what variable where. oh, and even if it's deprecated, [reason id] #20 "noise of pointless" is niggling me, is it a typo that could be amended or perhaps someone could start a band of that name?
    – ocæon
    May 8, 2019 at 17:14
  • 2
    @ocæon It was later changed to "noise or pointless" in the site UI, but the name in the DB was not changed. May 8, 2019 at 17:21

1 Answer 1


Having looked at the script page, maybe we need to step back before closing the door on this "loophole".

First, it fills a potential useful need, especially with Teams, that's in the best traditions of SE. (And in this respect- do consider the possibility you might have ruined this for everyone who might have a legitimate use for this, assuming folks start misusing it).

The overall effect of this would be negligible, since we would need a plurality of close voters using this script with malicious intent for it to matter, and we have suspensions to deal with it.


Not yet sanctioned by the SE team. USE SPARINGLY, lest ye be banned.

So... it adds potential functionality to Teams. It's unlikely to do a great amount of harm and yet mitigation is literally as simple as letting folks not to use it excessively as is said on the script page, and if folks insist, to persuade them not to with warnings and suspensions.

On regular sites, I'm doubtful there would be a great quality of life difference, since there's literally nothing stopping someone from custom closing as "I am closing because OP likes cats". You need four other cat-hating people to make it stick.

In short? It's probably something that is not a major problem, unless people having the slight ability to do entirely harmless attempts at closing posts with obsolete reasons shakes at the foundations of polite society. Which I doubt it does.

  • 9
    The point of this was to let SE know of the loophole, so they can make a decision on whether to plug it or not. May 8, 2019 at 16:55
  • Also, it's inaccurate to say that you need four other users using the script to force an old close reason. You only need two others, and two more using normal close reasons, to make the old reason override the other votes. On Stack Overflow with its three-vote closure, it's even easier: you don't need anyone else to use the script; you just have to vote for an old reason, and if the other two users vote for different reasons later, it will get closed for the old reason. Mar 11, 2020 at 16:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .