Environment
- Operating system: Ubuntu 24.04
- IDE: IntelliJ IDEA Ultimate 2026.1 (Build #IU-261.23567.138, built 2026-04-23)
- SonarQube for IDE plugin version: 12.5.0.84934
- Connected mode: No (standalone)
- Language analyzed: Java (single rule enabled) — behavior also affects all other languages
Summary
In standalone mode, my configured rule set is only honored after a cold start.
When I change the rule selection during a running session
(Settings > Tools > SonarQube for IDE > Rules → Apply → OK),
every subsequent analysis runs against the full default ruleset instead of my selection
even though the Rules settings checkboxes still correctly show my selection.
Only File > Invalidate Caches / Restart makes the backend reload the configured rules.
Analysis scope (single file vs whole project) makes no difference.
Steps to reproduce
- In standalone mode, disable all rules except one (e.g. a single Java rule).
Apply → OK. - Invalidate Caches / Restart.
- Analyze a single file → verbose log shows the configured rule only. (correct)
- Analyze the whole project → same, configured rule only. (correct)
- Without restarting, add one rule via Settings > Rules → Apply → OK.
- Analyze a single file (or the whole project) again.
Expected result
Analysis uses the currently-configured rule set (matching the checkboxes).
Actual result
Analysis uses the full default rule set for all languages.
My co-workers are running into the same issue.
Not sure which versions of intellij they’re running, but I think my report should be sufficient.
Evidence (verbose analysis log “activeRules:”)
- A1 — Cold start, then analyze
- Scope: single file
- Rules configured: 1 Java rule
- activeRules logged: [1 java]
- A2 — Cold start, then analyze
- Scope: whole project
- Rules configured: 1 Java rule
- activeRules logged: [1 java]
- B1 — In-session rule edit + Apply/OK, then analyze
- Scope: single file
- Rules configured: 2 Java rules (1 additional rule compared to before)
- activeRules logged: [23 kubernetes, 362 python, 40 css, 128 kotlin, 358 ipython, 30 secrets, 391 javascript, 29 ruby, 25 docker, 555 java, 61 Web, 24 xml, 176 php, 51 terraform, 404 typescript, 26 cloudformation]
The B1 counts are the stock per-language totals — i.e. the backend fell back to the
defaults despite the Rules UI showing the edited selection. A1/A2 prove the saved
config is correct and is read properly on a cold start;
the issue appears only after an in-session rule edit, and is independent of analysis scope.
Workaround
After any rule change: Apply → OK → Invalidate Caches / Restart → verify the
“activeRules:” log line matches the intended selection before running analysis.
Impact
Silent — the Rules UI looks correct, so users get results for rules they believe are
disabled, with no indication the backend is out of sync. It is only visible via the
verbose analysis logs.