# All posts containing watched words are automatically hidden — score\_to\_hide\_post is 0.0

**URL:** https://meta.discourse.org/t/all-posts-containing-watched-words-are-automatically-hidden-score-to-hide-post-is-0-0/388000
**Category:** Support
**Tags:** watched-words, review-queue
**Created:** [10 november 2025 om 09:22 UTC](https://meta.discourse.org/t/all-posts-containing-watched-words-are-automatically-hidden-score-to-hide-post-is-0-0/388000 "2025-11-10T09:22:02Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![copymonopoly](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@copymonopoly](https://meta.discourse.org/u/copymonopoly)
#### Post date: [10 november 2025 om 09:22 UTC](https://meta.discourse.org/t/all-posts-containing-watched-words-are-automatically-hidden-score-to-hide-post-is-0-0/388000/1 "2025-11-10T09:22:02Z")

</div>

I’ve run into a serious issue with my Discourse forum.

Recently I found that all posts containing watched words that trigger a flag are automatically hidden.  
These posts must be manually unhidden by an admin to become visible again.

After some investigation, I noticed that my site’s `score_to_hide_post` value is currently `0.0`.  
On another Discourse instance I run, this value is around `8.3`, which seems normal.

Because of this 0.0 value, any flag — even a single one from a watched word — immediately hides the post.

I haven’t made any setting changes recently. Why would `score_to_hide_post` become 0.0?

How can I restore it to a normal threshold (like 8.3) so that posts aren’t hidden right away?

---

<div class="post-metadata">

### Author: ![copymonopoly](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@copymonopoly](https://meta.discourse.org/u/copymonopoly)
#### Post date: [10 november 2025 om 09:42 UTC](https://meta.discourse.org/t/all-posts-containing-watched-words-are-automatically-hidden-score-to-hide-post-is-0-0/388000/2 "2025-11-10T09:42:39Z")

</div>

I found that since `score_to_hide_post` is 0.0, even a single flag from a new user will immediately hide the post, which makes the situation quite serious. What should I do?

---

<div class="post-metadata">

### Author: ![jahan\_gagan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jahan_gagan/32/501948_2.png) [@jahan\_gagan](https://meta.discourse.org/u/jahan_gagan)
#### Post date: [10 november 2025 om 10:43 UTC](https://meta.discourse.org/t/all-posts-containing-watched-words-are-automatically-hidden-score-to-hide-post-is-0-0/388000/3 "2025-11-10T10:43:59Z")

</div>

You can fix this by adjusting the **Hide Post Sensitivity** site setting. Set it to a suitable level such as **Medium** or **High** — this will automatically update the internal `score_to_hide_post` value back to a healthy threshold.

Just note that the lower the sensitivity, the less flag score is required to hide a post — which is why posts were getting hidden immediately.

Reference for how this maps internally:

> <https://github.com/discourse/discourse/blob/main/app/models/reviewable.rb#L276>

---

<div class="post-metadata">

### Author: ![copymonopoly](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@copymonopoly](https://meta.discourse.org/u/copymonopoly)
#### Post date: [10 november 2025 om 11:44 UTC](https://meta.discourse.org/t/all-posts-containing-watched-words-are-automatically-hidden-score-to-hide-post-is-0-0/388000/4 "2025-11-10T11:44:07Z")

</div>

Thanks for the suggestion! I tried adjusting the `Hide Post Sensitivity` site setting in the admin panel, which has four options: Disabled, Low, Medium, and High.  
However, I found that only Disabled works. No matter whether I choose Low, Medium, or High, the `score_to_hide_post` value remains 0.  
Do you know why this happens?

---

<div class="post-metadata">

### Author: ![copymonopoly](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@copymonopoly](https://meta.discourse.org/u/copymonopoly)
#### Post date: [10 november 2025 om 12:17 UTC](https://meta.discourse.org/t/all-posts-containing-watched-words-are-automatically-hidden-score-to-hide-post-is-0-0/388000/5 "2025-11-10T12:17:27Z")

</div>

I have a question regarding `score_to_hide_post`.

I understand that `score_to_hide_post` is dynamically calculated based on reviewables, but is it possible for it to ever be calculated as 0 under normal circumstances?

If it is showing 0, does that indicate a system problem？

---

<div class="post-metadata">

### Author: ![jahan\_gagan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jahan_gagan/32/501948_2.png) [@jahan\_gagan](https://meta.discourse.org/u/jahan_gagan)
#### Post date: [10 november 2025 om 12:34 UTC](https://meta.discourse.org/t/all-posts-containing-watched-words-are-automatically-hidden-score-to-hide-post-is-0-0/388000/6 "2025-11-10T12:34:18Z")

</div>

AFIK, in standard operation with Hide Post Sensitivity set to “Low, Medium, or High”, the threshold should be a positive number. If you see score\_to\_hide\_post = 0 when the sensitivity is NOT “Disabled”, this indicates a system misconfiguration. Possible causes include:

- Corrupt or missing values in the PluginStore
- Issues with your SiteSettings (e.g., `reviewable_default_visibility` misconfigured)

---

<div class="post-metadata">

### Author: ![copymonopoly](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@copymonopoly](https://meta.discourse.org/u/copymonopoly)
#### Post date: [10 november 2025 om 13:22 UTC](https://meta.discourse.org/t/all-posts-containing-watched-words-are-automatically-hidden-score-to-hide-post-is-0-0/388000/7 "2025-11-10T13:22:21Z")

</div>

The `reviewable_default_visibility` setting is still at its default value, **low**. After the issue occurred, I even tried rebuilding the site, but it did **not** resolve the problem. I would like to understand **how this issue appeared in the first place** and whether it can be fixed.

---

<div class="post-metadata">

### Author: ![copymonopoly](https://avatars.discourse-cdn.com/v4/letter/c/4491bb/32.png) [@copymonopoly](https://meta.discourse.org/u/copymonopoly)
#### Post date: [10 november 2025 om 15:59 UTC](https://meta.discourse.org/t/all-posts-containing-watched-words-are-automatically-hidden-score-to-hide-post-is-0-0/388000/8 "2025-11-10T15:59:03Z")

</div>

I’ve studied the code carefully and found that `score_to_hide_post` is determined by the following three methods:

```plaintext
def self.sensitivity_score_value(sensitivity, scale)
  return Float::MAX if sensitivity == 0

  ratio = sensitivity / sensitivities[:low].to_f
  high =
    (PluginStore.get("reviewables", "priority_#{priorities[:high]}") || typical_sensitivity).to_f

  # We want this to be hard to reach
  ((high.to_f * ratio) * scale).truncate(2)
end

def self.sensitivity_score(sensitivity, scale: 1.0)
  # If the score is less than the default visibility, bring it up to that level.
  # Otherwise we have the confusing situation where a post might be hidden and
  # moderators would never see it!
  [sensitivity_score_value(sensitivity, scale), min_score_for_priority].max
end

def self.score_required_to_hide_post
  sensitivity_score(SiteSetting.hide_post_sensitivity)
end

```

So, in other words,  
`score_to_hide_post = ((high.to_f * ratio) * scale).truncate(2)`

where

- `high.to_f` may unexpectedly be **0** (it should normally be a positive value),
- `ratio = sensitivity / sensitivities[:low].to_f`,
- `sensitivity` comes from the setting (for example 3, 6, or 9),
- `sensitivities[:low]` = 9,
- `scale = 1.0`.

That means `score_to_hide_post` should **never be 0** , so if it becomes 0, this clearly indicates a **bug**.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [10 december 2025 om 15:59 UTC](https://meta.discourse.org/t/all-posts-containing-watched-words-are-automatically-hidden-score-to-hide-post-is-0-0/388000/9 "2025-12-10T15:59:44Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
