# Missing text \`dashboard.problem.sidekiq\_check\`

**URL:** https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969
**Category:** UX
**Created:** [February 12, 2026, 11:00pm UTC](https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969 "2026-02-12T23:00:12Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [February 12, 2026, 11:00pm UTC](https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969/1 "2026-02-12T23:00:12Z")

</div>

I saw this on a forum today

 ![image](https://global.discourse-cdn.com/meta/original/4X/5/4/8/5484617953c02366f7e8599f9ffdc6f5bad168bb.png)

And I think Discourse is right: There is no `dashboard.problem.sidekiq_check`. There are

> <https://github.com/discourse/discourse/blob/d979f3573d37c83b442a856d33a1a7d2dcb041f7/config/locales/server.en.yml#L1696-L1697>

which are referenced here:

> <https://github.com/discourse/discourse/blob/d979f3573d37c83b442a856d33a1a7d2dcb041f7/app/services/problem_check/sidekiq_check.rb#L7-L14>

But it seems Discourse refers to the name of that problem check instead of using the `override_key`.

---

<div class="post-metadata">

### Author: ![dax](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dax/32/244677_2.png) [@dax](https://meta.discourse.org/u/dax)
#### Post date: [July 24, 2026, 1:38pm UTC](https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969/2 "2026-07-24T13:38:04Z")

</div>

Fixed via:

> <https://github.com/discourse/discourse/pull/40416>
>
> Sometimes users were seeing
> 
> \<img width="699" height="186" alt="image" src="ht…tps://github.com/user-attachments/assets/60f03790-4ab7-47b5-8ee9-2d0ef8260272" /\>

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [July 24, 2026, 2:56pm UTC](https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969/3 "2026-07-24T14:56:36Z")

</div>

Can you help me to understand how the fix works? I see the translation key in server.en.yml and the `override_key` have been renamed to match the name of the check. I wonder why both needed to be renamed to match the name of the file. Shouldn’t it also have worked with `sidekiq` instead of `sidekiq_check`? I wonder if it’s still the name of the check instead of the override\_key that influences which warning is shown, so I wonder if the override `dashboard.problem.queue_size` works or if that is a text that is never shown just like `dashboard.problem.sidekiq` was not.

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [July 24, 2026, 3:33pm UTC](https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969/4 "2026-07-24T15:33:09Z")

</div>

Yes, we refer in a separate file to the problem check identifier:

> <https://github.com/discourse/discourse/blob/main/app/models/problem_check.rb#L236>

So the PR above makes sure that the string in the translations matches the problem check filename, which is converted to that identifier, i.e. `sidekiq_check`. Using `sidekiq` in the translation strings wasn’t working, it wasn’t matching the identifier.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [July 24, 2026, 4:24pm UTC](https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969/5 "2026-07-24T16:24:30Z")

</div>

> [@pmusaraj](#):
>
> So the PR above makes sure that the string in the translations matches the problem check filename, which is converted to that identifier, i.e. `sidekiq_check`. Using `sidekiq` in the translation strings wasn’t working, it wasn’t matching the identifier.

Sorry, I still don’t really understand.

`queue_size` doesn’t match the filename/identifier either, just like `sidekiq` did not. And I still don’t understand why this isn’t a problem in that case.

Is this because there is another code path that directly uses the identifier instead of one of the override keys? So instead of adding a third translation key matching the filename, you changed `sidekiq` to use the identifier-based key? Kind of a two-in-one solution supporting both the override case and the identifier case?

If so, I don’t understand why `dashboard.problem.sidekiq_check` needs to be passed as an override key. The other problem checks where the translation key matches the filename don’t need that. So why is an override needed here?

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [July 24, 2026, 4:34pm UTC](https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969/6 "2026-07-24T16:34:40Z")

</div>

> [@Moin](#):
>
> Kind of a two-in-one solution supporting both the override case and the identifier case?

Yes, correct.

> [@Moin](#):
>
> So why is an override needed here?

It isn’t needed, this likely would work fine if we did `return problem` in line 8 of sidekiq\_check.rb. They’re equivalent. (I kept the override reference to have a smaller change in that PR at the time.)

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [July 24, 2026, 4:55pm UTC](https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969/7 "2026-07-24T16:55:42Z")

</div>

Is there something I can change easily on a dev install to trigger the `dashboard.problem.queue_size` error message?

I thought changing

```plaintext
  def massive_queue?
    Jobs.queued >= 100_000
  end

```

to `>= 0` would result in that error being triggered - but this resulted in `dashboard.problem.sidekiq_check`

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [July 24, 2026, 6:06pm UTC](https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969/8 "2026-07-24T18:06:37Z")

</div>

It’s easier to reproduce in system specs. I tried to do that and it exposed some more issues, this should fix them:

> <https://github.com/discourse/discourse/pull/42028>
>
> Previously, persisted problem notices ignored custom translation keys and displa…yed incorrectly.
> 
> This change stores and reuses the override when rendering admin notices.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [July 24, 2026, 6:19pm UTC](https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969/9 "2026-07-24T18:19:32Z")

</div>

> [@pmusaraj](#):
>
> It’s easier to reproduce in system specs.

For translating the Discourse interface, it’s sometimes helpful to see the text in its context, which is why I sometimes try to trigger such warnings and am always interested in learning how to do that more easily. Is that possible with system specs? Or is your “easier” only related to the context of ensuring the code works as expected?

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [July 24, 2026, 6:25pm UTC](https://meta.discourse.org/t/missing-text-dashboard-problem-sidekiq-check/395969/10 "2026-07-24T18:25:00Z")

</div>

Yes, you can use system specs to see translations in context.

If you have a dev environment for Discourse, you can do something like this:

1. add a `pause_test` statement in the system spec that you want to see in a browser
2. run that system spec in headful mode, meaning, with a full browser (by default, specs run in headless mode)

For example, for the spec above, I added `pause_test` to line 47 of `admin_notices_spec.rb` and then ran the spec with:

```plaintext
PLAYWRIGHT_HEADLESS=0 bin/rspec spec/system/admin_notices_spec.rb:47

```

That launched a browser and paused in that specific screen:

 ![CleanShot 2026-07-24 at 14.23.34@2x](https://global.discourse-cdn.com/meta/original/4X/0/c/6/0c6c840af04b77234741e1965087bd2b9a867dfa.jpeg)
