It is easy to say about code that it is written by someone else. It is fine if it is based on concrete facts by providing a link to that code of which they think that it is written by someone else. It is not fine if it is based on an idea. Here is an example:


It is put on hold for a wrong reason: "Pseudocode, hypothetical code, or stub code should be replaced by a concrete example. Questions seeking an explanation of someone else's code are also off-topic.".

That "someone else" is like a pink elephant. You should assume he does not exist unless you have evidence. Who is that "someone else"? Nobody knows. The code compiles, so it is not pseudocode or hypothetical code. Moreover, it uses default classes available in Azure. Nothing significant is missing (like a pink elephant is not missing). No stub code. It is not correct to blame a person without evidence.

  • \$\begingroup\$ I do not have a question about why it is put on hold. I am asking whether there should be evidence for the provided reason when putting a question on hold. This is a general question which affects all stackexchange forums. Please just consider the link as one example. To my opinion, it is fundamentally wrong (on all forums) to refer to things that do not exist. Maybe there are more examples. This is just one of them. \$\endgroup\$
    – Daan
    May 19, 2015 at 0:24
  • 3
    \$\begingroup\$ Mod Note - Comments were getting off-topic, and messy. I have purged most of them. If you have an opinion on this discussion then formulate a clear answer, and post it as an answer, not a comment. If you like, or dislike an answer, then express your sentiment using the votes button. Comments are not for discussions, despite this being the meta site. \$\endgroup\$
    – rolfl
    May 19, 2015 at 15:21
  • 1
    \$\begingroup\$ I've voted to close this question as unclear. At this point, based on the asker's comments the question seems more like a rant or a troll. This question could be improved if the asker either added an example of what "evidence" might look like or if an explanation of what they'd like to see in response to a potentially inaccurate on-hold reason being used. \$\endgroup\$
    – nhgrif
    May 20, 2015 at 21:35

6 Answers 6


No, there should not be.

A question can only be put on hold by three means:

  1. Five users with 3,000 reputation or more (500 on beta sites) have cast a close vote.
  2. A user with a gold badge in one of the question's tags has marked the quesiton as a duplicate.
  3. A site moderator has put the question on hold.

The evidence that the question should be on hold lies in the expertise of the user's capable of putting it on hold. They know the site and the community and the expectations the site & community have for questions, and they know this stuff far better than users who do not have these privileges.

On the first condition, users with the close and reopen vote privileges are considered to be experienced enough with the site to know what is on or off-topic for the site. Moreover, it requires five of these users, not just one.

On the second condition, a user with a gold badge is consider to be an expert on that particular topic and is expected to know better than anyone else (arguably even moderators) whether a particular question is a duplicate over another or not.

On the third condition, moderators are moderators. They tend to be reasonable people, they tend to avoid single-handedly closing questions (especially on anything that might be an edge case), and they tend to have an incredible amount of patience.

Perhaps most importantly... questions put on hold are just that... on hold. Nothing more. Reopen votes can be cast on the question. Any edit to the question automatically dumps that question into the reopen review queue.

If a question has been put on hold inappropriately, the same users who are capable of putting it on hold are also capable of reopening it.

So... how do you get their attention?

As I previously mentioned, any edit to the question will dump the question in the review queue. This is typically the best way to get a question reopened if it were appropriately put on hold and the edit significantly addresses the actual problem the question had.

If, however, you think the question should be reopened as-is, without any edits to it, the appropriate course of action is to head to the meta for that specific site and ask a question using the tag, linking back to whatever question you're asking about.

If you do this, you will get one of two responses.

  1. The community will agree that the question should be reopened, and the question will be reopened.
  2. The community will disagree that the question should be reopened and they will explain all of the reasons why the question is not a good fit for the site.

And I would strongly encourage you to take the issue to the meta. It has multiple benefits.

If the community was initially wrong, they have an opportunity to correct themselves, and your question is reopened.

If the community was innitially correct, you will earn a better understanding of the community, you will get a better explanation of your specific question, and the community might decide they need to improve something about their help center or their close reason auto-comments.

  • \$\begingroup\$ "The evidence that the question should be on hold lies in the expertise of the user's capable of putting it on hold". Evidence is not needed according to you (you said "No"). So it is completely irrelevant where it lies according to you. You find it irrelevant. \$\endgroup\$
    – Daan
    May 20, 2015 at 21:01
  • \$\begingroup\$ I don't find it irrelevant. My posts points out that there already is evidence and that any additional evidence would be entirely unnecessary. Once the question is put on hold, the honus is on anyone who believes it should be reopened to demonstrate that it is ready to be reopened (and the appropriate venue for doing that is the meta). And proving it is ready to be reopened means more than just proving the current close reason is wrong or not applicable--it means that it is completely on-topic and within the site's scope. It means proving there is NO reason to close the question. \$\endgroup\$
    – nhgrif
    May 20, 2015 at 21:04
  • \$\begingroup\$ I asked whether the evidence I refer to should be provided. Your answer is "No". So apparently, you do find it not relevant. Here, I do not discuss at all whether it should be put on hold or closed. That is really out of scope. This is about providing a correct reason. This has nothing to do with expertise. This is something where "In summary, we all messed up here. " as RubberDuck explained. \$\endgroup\$
    – Daan
    May 20, 2015 at 21:20
  • 1
    \$\begingroup\$ While I agree with RubberDuck that we all messed up, that doesn't mean that evidence is necessary. The expertise and site familiarity of the close voters is the evidence. Nothing more is necessary. The wrong close reason may have been chosen, but that doesn't make the closure itself wrong. \$\endgroup\$
    – nhgrif
    May 20, 2015 at 21:22
  • \$\begingroup\$ The closure is not wrong. That is true. This is because it is not closed. It is put on hold. I do not ask for anything "more". Maybe you mean: "Yes, the evidence should be provided which lies in the expertise. This provides the evidence.". Evidence for what? RubberDuck explained: "The auto-reason that was used to put your question on hold was wrong". So there is no evidence. It was wrong. \$\endgroup\$
    – Daan
    May 20, 2015 at 21:28
  • 1
    \$\begingroup\$ Hey, @Daan, try seeing the forest through the trees? The distinction you're making between closure and hold is pretty irrelevant to this discussion. They are different, yes. And you're right, this question is currently on hold, not closed, yes. The on hold reason is wrong, yes. But that doesn't make the on hold itself wrong. What point are you trying to make here? \$\endgroup\$
    – nhgrif
    May 20, 2015 at 21:31
  • \$\begingroup\$ The "on hold itself" is not discussed here. My question here is not related to the "on hold itself". If you would like the "on hold itself", please do not do it here. \$\endgroup\$
    – Daan
    May 20, 2015 at 21:40
  • 3
    \$\begingroup\$ Then what is your question about, exactly? This is why I've had to vote to close this meta question as well. I cannot, for the life of me, figure out what your angle is, what point your trying to make, what sort of answer you are aiming at, or anything. \$\endgroup\$
    – nhgrif
    May 20, 2015 at 21:41

Among the dozen-or-so comments under your post there, I've counted 5 links to meta.codereview.stackexchange.com where you should have posted this meta-question. Asking on MSE isn't really helping the community understand that you want to cooperate here.

Your question has been put on hold by users with respectively 13.7K, 33.4K, 15.7K, 7.2K and 14.8K reputation score on Code Review. These people (including myself) have cast a fair amount of cumulative close votes which I'd estimate at close to a thousand; they're all high-profile regular contributors that have been around for quite a while, and that know what flies and what doesn't, and what close reasons to use and when.

Now, the question isn't whether or not your post is on-topic - it's not. The concern is whether the correct close reason was used.

Let's see:

CR Closing > Off-Topic dialog

We have only 3 slots for custom close reasons.

  1. The first close reason is used for:

    • Questions containing broken code. Because code that doesn't do what it's supposed to be doing, isn't ready for a peer review. These questions may be on-topic for Stack Overflow.
    • Questions asking about code not yet written. This applies to questions that may have something implemented, but are essentially asking how to add such or such feature.
  2. The second close reason (which applies here) is used for:

    • Questions clearly asking to review code that they don't own or maintain, as in "I've grabbed this code from such or such OSS project, ..."
    • Questions stripped of their context, filled with placeholders (// stuff), or otherwise boiled-down to such a specific issue that there's no opportunity left for reviewers to actually review the code - OP simply wants an answer, not a peer review.
    • Questions seeking explanation of someone else's code - the "someone else's code" part is to reinforce the "code that you own or maintain", but the idea here is that CR questions are not for explaining what the code does. It's the OP's job to explain the reviewers what the code is doing, not the other way around.
  3. The third custom close reason addresses another common issue with CR questions, where OP links to pastebin or GitHub, and expects people to review an entire project. This one is pretty clear IMO.

As you can see, there's several reasons why a question can be off-topic on CR, and only 3 spots to address the most common ones.

Why do we combine close reasons into a single slot? Because otherwise, we'd constantly be using custom close reasons, and that gets annoying. Plus, custom close reasons have this aftertaste of "arbitrary", while the "official" ones have already been discussed and community-approved on the CR meta.

The point is, it's not because a close reason says "A, B or C" that it doesn't apply to your question because you rightfully claim A and B don't apply: the close reasons say "A, B or C" because making a separate close reason for all 3 would eat up all the spots, while the 3 reasons essentially boil down to a common element.


Look, here's the way this question breaks down, along with some of my opinions, and some feedback on the flags that were raised.

Closed, or no

First up, let's talk about the merits of the actual question. Let me paraphrase the question as follows:

  • I have this code
  • it works
  • it runs slow the first time it is called.
  • subsequent times it runs faster.
  • two questions:
    • what's the deal with that
    • how do I make it consistent
    • ( "This is strange. The results do not really vary. The others do. Why?" also "Can someone explain the variation and what is the best way to get a performance as good as possible." )

Now, to be clear, what code is included here? Well, all the code does is wrap an API call in a timer-wrapper. The code that does the work (on the API side) is not included anywhere

The Code works, sure, but, is it your code? (Hint, only the part on this side of the Internet Connection is yours, the rest is Azure's). I.e. This is your code: context.SaveChanges();

So, in my assessment, this code is seeking an explanation of someone else's code because it is seeking an explanation of why the internet, azure, or some other code is running inconsistently.

In the alternative (i.e. in the unlikely event that the question is not about understaning the variance in time....), then there are an additional set of problems:

  1. the code is not included (the problem is almost certainly in the API side, and that code is not in the question).
  2. the code almost certainly is not the OP's code - it is service code.

So, I looked at the question and saw a collection of problems, any one of which could be used to close the question.

There is no doubt for me that the question should be closed. The close reason, while only partially related to the real reason, was "good enough".


The comments on the post while accurate, mostly, were unhelpful. People were fixating on sub-parts of each other's reasoning, and not communicating effectively. This happens, it's the internet. Saying things often, though, does not make people listen more.

The numerous flags, comments, chat, and so on, for this off-topic question, is .... disconcerting. The close reason was apparently not clear enough, and that probably needs some follow-up, but not part of this question's discussion.


I declined some flags requesting reopens. There was no reason to reopen the question, and I stand by those declines. My decline reason is/was:

I think the "explaining other people's code" is key here. It is not his code that's inconsistent, but azure.

  • \$\begingroup\$ I think there is a misunderstanding. The code running on Azure is mine. It is not owned by Azure. It is good to know that you tell that the close reason is "only partially related to the real reason". You seem to describe the close reason and the real reason as two different things that are only partially related. I respect your opinion that is "good enough". Personally, I think the relationship should be stronger to use it. But that is just my opinion. I wrote the code myself. It is really working code and there is no "someone else's code" involved. \$\endgroup\$
    – Daan
    May 19, 2015 at 1:53
  • 9
    \$\begingroup\$ @Daan - if the code is yours, then include it in the question, but, your question still has to change... it is not our job to explain why your code runs slow the first time.... i.e. that can't be the crux of your question. \$\endgroup\$
    – rolfl
    May 19, 2015 at 2:25

I would like to answer this from the perspective of what I think should have happened, because you're right. The auto-reason that was used to put your question on hold was wrong.

The reason reads:

"Questions must involve real code that you own or maintain. Pseudocode, hypothetical code, or stub code should be replaced by a concrete example. Questions seeking an explanation of someone else's code are also off-topic.

But your question was closed because it was seeking an explanation of why code was behaving the way it was. At least one of the 5 of us should have entered this into a custom reason. We didn't and that is our bad. I apologize.

It has been suggested that we need to update our close reasons to explicitly state this (reasonably) common reason to put a question on hold. This has been discussed before, and there are good reasons not to change the existing one. However, I do think that we need to add a selection for the specific reason your question was closed. Unfortunately, we only have 3 slots right now. Until we are a fully graduated site, we have to live with what we have. Even after we can add another 2 auto-reasons however, this problem will still exist. A simple 5 canned responses will never cover all of the nuances of why a question should be put on hold on any Stack Exchange site.

So, like I said, at least one of us should have entered a custom reason for putting the question on hold. We were lazy about it this time and look at what it got us. Lesson learned.

However, the closure reason was explained to you in the comments. That really should have been enough to put this to bed. You were encouraged repeatedly to bring this matter to our meta where this issue could be properly discussed. This question could have possibly even been closed as a duplicate of the other meta I linked to earlier. You could have been pointed to that question and posted your own answer and had a healthy discussion about this.

Could have... Would have... Should have....

In summary, we all messed up here. Every last single person who got involved in this mess screwed up. So let's move on and revisit the matter of adding a close reason for this when we have some place to put it. In the meantime, let's be more careful about making sure we use a custom closure reason whenever it's appropriate to do so.

  • \$\begingroup\$ Comments reflect the opinion of an individual. So this is not the right place to explain the closure reason. Moreover, a closure reason is irrelevant anyway since it was not closed at all. It was put on hold. It is good that you admit the mistake but the wrong reason is still mentioned on the page of my question. Could you please correct that. Question should be put on hold for a good reason or just not be put on hold at all. \$\endgroup\$
    – Daan
    May 20, 2015 at 21:08
  • \$\begingroup\$ 1. Close votes also reflect the opinions of individuals. In this case, those comments were posted by the same individuals who voted to put your question on hold. 2. Even if I could unilaterally change the close reason (I can't. It would take 5 votes to reopen and another 5 to reclose), I would not reopen a question just to close it with the "correct" reason. Feel free to flag it for moderator attention, but I have a feeling it will be declined. Who knows though, I could be wrong about that. 3. Your question was closed for a very good reason that you simply refuse to accept. \$\endgroup\$
    – RubberDuck
    May 20, 2015 at 21:17
  • \$\begingroup\$ @Daan While I agree that we should always strive to chose the correct reason, the fact that the wrong reason was chosen isn't that relevant. Once a question is put on hold, the only thing that's relevant is whether the question deserves to be reopened or not. \$\endgroup\$
    – nhgrif
    May 20, 2015 at 21:28

Questions seeking an explanation of someone else's code are also off-topic.

This part of the shown close reason has a link on "someone else's code" which leads to this meta answer: https://codereview.meta.stackexchange.com/a/3654/29371

which clearly states how this is meant

For moral, practical, and legal reasons, we are only able to review code that you wrote or code that you maintain. Code Review is not the place to ask about someone else's code.

We also expect you to understand how your code works. If you are seeking an explanation of how your code works, then we will treat the question as if someone else wrote it

IMHO the right close reason had been used.


You're right the close reason they use is wrong. The code obviously works since you have generated performance numbers from it, and you state that is is your code. Nothing in the close reason used is relevant here.

The real solution is for them to create a permanent relevant close reason.

Don't be afraid to flag a mod if you think a close reason is incorrect.


You must log in to answer this question.

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