User isn't promoted to TL2

I have this weird case - user isn’t automatically promoted to TL2. I know that I could manually change TL1 -> TL2, but I’m wondering what went wrong here that this specific user is omitted by Discourse.

Discourse doesn’t have any changes in TL2 requirements.
Looking at user profile I can see that all requirements are met.
User isn’t blocked or silenced and never was, this account is quite old and made nearly at the beginning of a 4-year-old forum.
I’m using 2.5.0.beta6 version, but this “bug” is present for quite some time apparently.

I was looking for some page to show me that maybe I’m missing something, but such page is only available for TL3 (/admin/users/ID/LOGIN/tl3_requirements).

My question is there a quick way to check requirements for other trust levels? Where should I look to check what is wrong? Changing TL manually is a last resort “crutch” tbh, because it’ll raise questions from other users if their trust level is right.


To check to see if a user should qualify for TL2, enter ‘tl2 requires’ into the search box on your site settings page. That will show you a list of your site’s TL2 requirements. You can compare these settings with a user’s activity by looking at the “Activity” section of the user’s admin page.

One thing to check for users who are not getting promoted is to make sure that their trust level has not been locked at some time in the past. Users with a locked trust level will have an “Unlock trust level” button in the “Permissions” section of their admin user page:


Been there, did that already. I had in my mind a page similar to that for TL3 reqirements but for TL1 and/or TL2 so as admin I could check faster, without resorting to Discourse settings.

Shoot, I forgot to add that piece of information, my bad. This user’s TL isn’t locked and from what I can remember it never was locked in the past. So that’s not the case.

1 Like

Can you screenshot your settings and their activity?

1 Like

Settings for TL2 (is this all or I missed something?)

User’s activity

User’s Permissions


I’m facing the exact same issue. The user is almost eligible for TL3 (as per the requirements report that is missing for TL2), but hasn’t been auto-promoted for TL2 yet.

@Aylin have you found the culprit on your instance?

My scenario is similar to yours, his trust level isn’t locked and visually comparing the stats all requirements (which are the defaults) are met.

In my instance, though, all users are created via SSO and I’m using this user as a reference for my analysis - because I’m sure he should be auto-promoted -, but my community has only 2 TL2 users while 996 users are TL1, which I find a very odd proportion.

1 Like

That certainly seems suspicious!

If you go to /logs, are there any highly repeated errors?

Thanks for getting back so quickly :slight_smile:

There’s only one logged error:



ActiveRecord::StatementInvalid (PG::SyntaxError: ERROR: syntax error in tsquery: “‘Melhorias gerais no Compara Jogos’:*A & ‘’:*B”
lib/freedom_patches/fast_pluck.rb:41:in select_raw' lib/freedom_patches/fast_pluck.rb:61:in pluck’
app/models/topic.rb:621:in similar_to' app/controllers/similar_topics_controller.rb:25:in index’
app/controllers/application_controller.rb:340:in block in with_resolved_locale' app/controllers/application_controller.rb:340:in with_resolved_locale’
lib/middleware/omniauth_bypass_middleware.rb:68:in call' lib/content_security_policy/middleware.rb:12:in call’
lib/middleware/anonymous_cache.rb:336:in call' config/initializers/008-rack-cors.rb:25:in call’
config/initializers/100-quiet_logger.rb:19:in call' config/initializers/100-silence_logger.rb:31:in call’
lib/middleware/enforce_hostname.rb:22:in call' lib/middleware/request_tracker.rb:176:in call’


rack-mini-profiler (2.0.4) lib/patches/db/pg.rb:72:in exec_params' rack-mini-profiler (2.0.4) lib/patches/db/pg.rb:72:in exec_params’
activerecord ( lib/active_record/connection_adapters/postgresql_adapter.rb:675:in block (2 levels) in exec_no_cache' activesupport ( lib/active_support/dependencies/interlock.rb:48:in block in permit_concurrent_loads’
activesupport ( lib/active_support/concurrency/share_lock.rb:187:in yield_shares' activesupport ( lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_loads’
activerecord ( lib/active_record/connection_adapters/postgresql_adapter.rb:674:in block in exec_no_cache' activerecord ( lib/active_record/connection_adapters/abstract_adapter.rb:722:in block (2 levels) in log’
activesupport ( lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in block (2 levels) in synchronize' activesupport ( lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in handle_interrupt’



I don’t know if this can be related.

These 2 TL2 users are me - the admin - and another user. That means TL2 auto-promotion worked for both of us, as I never manually changed trust levels.

The lowest stat that this non auto-promoted user has is the topic reply count as 3, which is the required count, but his last reply happened on September 18.

It would be great if discourse had something like a a dry-run of the logic that changes users trust levels with some kind of feedback, so that users could run the action that uses that logic for themselves and see what requirements they have or haven’t met (and if there is some kind of bug, if all the requirements met).


Nope and I didn’t find anything interesting in logs if I remember correctly. In the end I manually changed TL for that particular user and blocked TL2 so forum wouldn’t even try to change it back to TL1.

Are those accounts were created long time ago, like few years ago or are they fresh like let’s say a month ago?
I’m suspecting some migration problems, early version of Discourse or site in bootstrap mode.

Something similar is already present for TL3.
If I recall correctly, It’s available for staff only.
IMHO TL1-TL3 requirement checklist should be visible to all users for transparency.
This would mean less work for staff less users asking about remaining requirements.
Generally self service scale better.

1 Like

I am having the same problem, in my case promoting from TL0 to TL1. Mostly noticing it with new users, and also tested it myself with a fresh account.

This is the test account I just created, but the same applies to pretty all actual accounts I’ve checked.

Reading this post: When does User Trust Level promotion occur? it seems that there have been problems with automatic promotion before. Might this be the case here?

Settings are slightly modified in my case and will be in next post, because my trust level only allows me to upload one image per post :grin:

–edit, because I can’t post another reply:
After setting the minimum read time to 0 a new test user did get promoted after reading the required number of posts. However existing users that also meet the criteria are still in TL0.

I have slightly modified the TL1 settings:

and also: