Issues, Statuses, Assignments, False Positives, and Resolution Workflow: Core Concepts and Mental Model
Learn how a SonarQube finding becomes an owned, auditable remediation decision without confusing workflow metadata with a source-code fix.
Learning objectives
- Separate issue identity, source revision, status, assignment, comments/tags, rule context, and quality-gate state.
- Explain the current Open, Accepted, False positive, and Fixed lifecycle without legacy resolution terminology.
- Distinguish SCM issue author metadata from accountable remediation ownership.
- Explain why issue workflow metadata can affect quality reporting without changing source code.
- Inspect issue history and rule context before mutating workflow state.
1. Findings need decisions, not cosmetic closure
Static analysis can create findings faster than a team can responsibly remediate them. The operational problem is therefore not merely “how do I close an issue?” It is how to preserve revision, rule, location, owner, decision, rationale, and reanalysis evidence so another engineer can reconstruct why the signal changed.
Marking an issue Accepted or False positive changes SonarQube-managed workflow state. It does not edit Git. Likewise, changing source does not prove the SonarQube issue is fixed until a later analysis processes that revision and no longer detects the finding.
2. Mental model: finding to governed evidence
Each arrow changes either source state, SonarQube workflow state, or the evidence used to govern a delivery decision.
flowchart TD
A[Analyzed revision] --> B[Rule finding / issue identity]
B --> C[Triage + ownership]
C --> D{Decision}
D -->|Fix source| E[New revision]
D -->|Accept temporarily| F[Workflow metadata + rationale]
D -->|False positive only if analyzer is wrong| G[Workflow metadata + rationale]
E --> H[Reanalysis]
F --> H
G --> H
H --> I[Issue lifecycle + Activity history]
I --> J[Measures / gate / governance evidence]
Issue identity ties a finding to a project, rule, and code location. Assignee expresses current workflow ownership. Accepted and False positive are dispositions, not substitute commits. Reanalysis reconciles the newest source with durable server state.
3. Current Community Build lifecycle
| Status | Set by | Meaning | Does not prove |
|---|---|---|---|
| Open | SonarQube on detection, or a user reopening | Active for review/remediation. | Who is accountable or that a fix is underway. |
| Accepted | Authorized user | Valid finding deliberately deferred/not fixed now. | That source was repaired. |
| False positive | Authorized user | Analyzer is mistaken for this code/context. | That the finding is merely low priority. |
| Fixed | SonarQube after later analysis | Previously detected issue is no longer found. | A manual promise by a developer. |
The UI may use an action such as Resolve while changing a status, but “Resolved” is not the current durable status model. Legacy Confirmed, Won’t Fix, Closed, and old resolution fields belong to earlier SonarQube generations.
4. Do not blur these state stores
| State | Owner | Useful evidence | Common confusion |
|---|---|---|---|
| Source revision | Git/SCM | commit SHA, diff | Claiming a workflow click fixed code. |
| Issue identity/location | Analysis result | issue key, rule key, file/line | Reasoning from counts without knowing which finding changed. |
| Status/history | SonarQube project state | Open/Accepted/False positive/Fixed, Activity | Using metadata to hide unresolved risk. |
| Author | SCM-derived | last committer correlation | Treating blame as accountability. |
| Assignee | SonarQube workflow | current assignee | Assuming assignment changes source. |
| Rule/profile | Quality policy | rule key, profile, parameters | Marking many false positives instead of correcting policy. |
| Gate/measures | Computed result | gate and measure evidence | Assuming a gate change implies a code change. |
5. SCM author is not remediation ownership
SonarQube can correlate SCM metadata to users and automatically assign a new issue to the last committer on the affected line. That is useful routing evidence, but the last committer may only have moved code, performed a refactor, or inherited an older defect.
Use the assignee field to express who owns the next action. Preserve reassignment history. A good policy can use SCM-assisted assignment as a starting signal while allowing explicit team/component ownership to override it.
6. Accepted and False positive are high-impact metadata
Current Community Build ignores Accepted and False positive issues in quality reports and ratings. Related measures and a relevant quality gate can therefore update without any Git revision change.
Use Accepted for a valid finding that is deliberately deferred/not fixed now; record a reason, owner, and review condition. Use False positive only when the analyzer is actually mistaken for the code/context. “We do not want to fix it” is not a false positive.
These status changes require the project’s Administer Issues permission and can be reopened. Rollback should restore current state while preserving Activity history.
7. Read-only inspection first
- Record project key, Git SHA, analysis date, and task evidence.
- Filter project Issues to the current Open population.
- For one issue record issue key, rule key, file/line, message, impact/severity, author, and assignee.
- Read the rule details before deciding the analyzer is wrong.
- Open the issue Activity tab and preserve current history.
- Record the current quality gate and the condition actually relevant to the finding population.
- Only then decide whether the next action belongs in source, workflow, quality policy, or ownership routing.
8. Why this matters in DevOps
Release policy is trustworthy only when its exceptions are governed. SonarQube issue workflow sits between automated detection and human remediation: it can route work and preserve rationale, or it can become a way to suppress inconvenient findings.
The production invariant for this chapter is revision + issue identity + decision + owner + evidence + reanalysis. Chapter 11 will enforce quality gates on top of these signals, so issue workflow must be auditable first.
Knowledge check
A valid issue is marked Accepted. What changed?
SonarQube workflow metadata and possibly downstream quality reporting changed; source did not.
Who sets Fixed in the current model?
SonarQube after a later analysis no longer detects the previously open issue.
Is SCM author automatically the accountable owner?
No. SCM may seed routing; assignee expresses current workflow ownership.
When is False positive appropriate?
Only when the analyzer is mistaken for the code/context.
Why can the same Git SHA produce a different gate-relevant result after triage?
Accepted/False positive issues are ignored in quality reports/ratings, so metadata can affect measures without a source change.
Official references and version notes
- Issues introduction — current issue concepts and lifecycle entry points.
- Issue management solution — identification, SCM-assisted assignment and lifecycle.
- Editing issues — Accepted/False positive, reopening, assignment, tags, comments and bulk changes.
- Retrieving issues — current issue filtering and review UI.
- Web API — bearer authentication and Web API V2 migration guidance.
- Managing tokens — token types, API use and revocation.
- SonarQube releases — dated release identities.
- SonarScanner CLI 8.1.0.6389 — scanner baseline.
Rechecked 2026-09-07. Mandatory examples target SonarQube Community Build 26.9.0.129388 (released 2026-09-03) and SonarScanner CLI 8.1.0.6389 (released 2026-04-21). Current Community Build issue workflow uses Open, Accepted, False positive, and automatically determined Fixed. Older tutorials may show deprecated Confirmed/Resolved/Closed or resolution fields; those are not taught as current statuses. No commercial feature, Data Center, SonarQube Cloud, AI CodeFix, enterprise identity, external provider, paid CI, or third-party plugin is required.
Keep the academy open
Support free, practical DevOps education.
Every lesson is designed to remain readable in a browser, downloadable from GitHub, and usable without a paid learning platform. Contributions help expand and maintain the curriculum.
0x716c4Ab160C4B66F31a28AE2448BfF68fc3a2ef0Send only Ethereum/ERC-20 compatible assets to this
address.