Bug reporting

Bug life cycle

The bug life cycle is the sequence of states a bug passes through from the moment it is reported until it is closed: new, assigned, in progress, fixed, verified and closed, with side exits for duplicates and bugs nobody can reproduce.

Each state has an owner, so the life cycle is really a record of who is holding the bug and what they owe next.

At a glance

StateMeaningWho moves it on
NewReported, not yet confirmed; Chromium keeps new reports on an Unconfirmed list until someone verifies them (Chromium)Triage, by reproducing it
AssignedConfirmed and owned (Chromium)The assignee, by starting work
In progressA fix is being written (Chromium)The assignee, by landing the fix
Fixed / resolvedThe fix has landed and is awaiting verification by the reporter (Jira)The reporter or QA, by re-testing
VerifiedThe fix confirmed by Quality Assurance (Bugzilla)Whoever closes the release
ClosedFinished, and the resolution is correct (Jira)Reopened only if the bug returns
Side exitsDuplicate, cannot reproduce, or not planned, each recorded as the reason for closing (GitHub, Jira)Triage, with a reason
Tracked withOverlayQA Issue TrackingYour team, across open, in progress, resolved, verified and closed

Why it matters

Without named states, "fixed" means one thing to the developer and another to the person who reported the bug. Bugzilla's status and resolution fields exist to say exactly where a bug stands, "from not even being confirmed as a bug, through to being fixed and the fix confirmed by Quality Assurance" (Bugzilla). Jira draws the same line: Resolved means a resolution has been taken and is awaiting verification by the reporter, Closed means the resolution is correct, and Reopened means it was not (Jira). GitHub closes an issue when the bug is fixed, when feedback is acted on, or to show the work is not planned, so a close always carries its reason (GitHub).

What are the stages of the bug life cycle?

Bug states across trackers

StageChromiumJira
ReportedNew, on the Unconfirmed listOpen or To Do
OwnedAssignedOpen, with an assignee
Being fixedIn Progress (Accepted)In Progress
Fix landedFixedResolved, awaiting the reporter
Confirmed fixedVerifiedClosed
Came backReported again or reopenedReopened

Common mistakes

Frequently asked questions

What is the difference between resolved and closed?

In Jira, Resolved means a resolution has been taken and the bug is awaiting verification by the reporter; Closed means the resolution has been confirmed correct. A resolved bug can be reopened if the reporter still sees it; a closed one can be reopened too, but it should not need to be.

Who verifies a bug fix?

The person who can reproduce the original report: the reporter, or a QA contact. Bugzilla records a QA contact on each bug as the person responsible for quality assurance on it, and Jira expects the reporter to verify before a resolved bug is closed.

What is a reopened bug?

A bug that was marked resolved and then found to be wrong or back. Jira describes Reopened as a work item that was once resolved but whose resolution was deemed incorrect; from there it is assigned or resolved again on the same record.

How many stages does a bug life cycle have?

It depends on the tracker. Chromium names five: New, Assigned, In Progress, Fixed and Verified. Jira adds Reopened and Closed, and Bugzilla lets each installation customize the workflow. The shape is the same everywhere: reported, confirmed, fixed, verified, closed.

What does closing a bug as not planned mean?

The team has decided not to fix it. GitHub closes issues to show that work is not planned as well as when a bug is fixed, and Jira records the same decision as a resolution of Won't do, so the record is finished without claiming the bug is gone.

Sources: Chromium, Bug Life Cycle and Reporting Guidelines, Atlassian, What are work item statuses, priorities, and resolutions?, Bugzilla, Understanding a Bug, GitHub Docs, Closing an issue.

Last updated October 22, 2026