-1

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.)

If you're a 3k+ user, you'll notice an existing close vote, but no close reason is specified. This is because the close vote is for "not constructive"; to see this in action, install the user script and vote to close this as "not constructive", and if it reaches five such close votes, it will be closed as not constructive.

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.... – Journeyman Geek May 8 at 7:07
  • 2
    @JourneymanGeek As there's a user script floating around making this extremely easy, I think this should be plugged. – Sonic the Reinstate Monica-hog May 8 at 7:10
  • 14
    Just because you could, dosen't mean you should – Journeyman Geek May 8 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 at 7:27
  • 2
    @JourneymanGeek can I try to reproduce it (with this question) by vtc as noise or pointless? (without being suspended) ;) – MEE - Reinstate Monica May 8 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. – Journeyman Geek May 8 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 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. – Sonic the Reinstate Monica-hog May 8 at 17:21
9

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.

THERE'S LITERALLY A WARNING THERE

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. – Sonic the Reinstate Monica-hog May 8 at 16:55

You must log in to answer this question.

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