Skip to content
Bug & issue tracking

Jira Bug Tracking: Setup, Workflow and Common Mistakes

By Sebastiaan Jansen · · 8 min read

Jira bug tracking means recording a defect as a Jira issue, moving it through a short workflow, and closing it only after someone has verified the fix. The setup that works is a Bug issue type with required fields: steps to reproduce, environment, severity, an owner, and a link to the broken story or the failing build. Free-text tickets end up as a backlog nobody can reproduce.

This guide covers project setup, fields, a short status path, one worked example, and the mistakes that keep defects open.

How jira bug tracking should be set up

Start in the software project the team already uses for delivery. A separate bugs-only project only pays off when a different group owns triage.

Project, issue type, and who can file

Use Bug for defects in software you have already shipped or merged, and keep Story, Task, and Spike for new work. The split that matters is "this is broken" versus "this isn't built yet" (issue types in Jira Cloud).

Who can create a Bug:

  • Engineers and QA create bugs directly.
  • Support files through a short form with required steps.
  • People who can't reproduce a problem file a request, and triage promotes it once someone confirms it.

A board full of one-line summaries is a suggestion box, and calling that queue jira bug tracking doesn't change what it is.

Fields that belong on every bug

Require a small set. Extra fields go stale.

Field Require it? What good looks like
Summary Yes The failure you can see, not a guessed cause. "Checkout returns 500 when a gift card covers the total" beats "Fix payments".
Steps to reproduce Yes Numbered steps a second person can follow without asking.
Expected and actual Yes One sentence each.
Environment Yes Release, client, and tenant or plan. "Prod, web, Chrome 131, EU shop".
Severity Yes User impact, not how annoyed the reporter is. Four levels are enough.
Affected version Yes, if you version releases The build where it was seen, not the build you hope will fix it.
Linked work When you know it The story, epic, or incident this bug breaks.
Assignee After triage Empty at intake is fine. Empty after triage means it won't move.

Leave labels optional, because they multiply until nobody trusts them. Severity describes user impact; board rank decides what gets pulled next. Screenshots and the request id go in the description.

A workflow with few statuses

Five statuses cover almost every team:

  1. To triage: new and not yet confirmed.
  2. Ready: reproduced and clear enough to start.
  3. In progress: one engineer owns the fix.
  4. In review: a review or a fix build exists, but the bug isn't done.
  5. Done: someone other than the author verified the original steps, or the team accepted "won't fix" in writing.

Don't turn In QA, Reopened, or Blocked into statuses. Blocked is a flag or a dated comment, a failed check sends the same bug back to Ready, and a new symptom is a new bug linked to the old one. Map your columns to these five and block the jump from To triage straight to Done.

Keep four resolutions: Fixed, Duplicate, Cannot reproduce, and Won't fix. Done is a status and Fixed is a resolution. If you mix them up, reports will call a bug finished before anyone has checked the product.

A simple way of tracking bugs in jira

Tracking bugs in jira works when intake, triage, fix, and verify stay separate steps. Fold them together and the loudest reporter ends up setting the queue.

Intake: fill in the required fields and stop there. Don't assign an engineer, and don't set a fix version unless you are planning the release.

Triage: someone on a named rotation checks that the bug reproduces, that it is a defect and not a change request, and that severity is set. They then move it to Ready, link it to a duplicate, or send it back asking for the missing fact.

Fix: Ready bugs sit on the same board as product work. Pull them by severity and by what this release can't ship without, with one assignee each.

Verify: the reporter or QA reruns the original steps on the fix build. Authors never move their own bugs to Done, and a failed check goes back to Ready.

Git: the pull request names the issue key and the issue links back to the pull request. That link is part of Done.

The same bar shows up in what an issue tracker should do in 2026 and in a bug report template with the eight fields developers actually need.

Jira issue tracking when the work is not a defect

Jira issue tracking is the wider system, with stories, tasks, incidents, and bugs on one board. Bug tracking covers defects only. If ideas and questions get filed as Bugs, the type stops meaning anything. Use jira issue tracking for the whole board and jira bug tracking for defects you can reproduce.

  • A bug contradicts behavior you have already shipped or specified.
  • A story or task describes behavior you haven't built.
  • An incident is a live failure you are stopping right now. Open a bug afterward if code should prevent a repeat.
  • A question stays in the thread until it turns out to be a defect.

If support works in Jira, give them a request type that becomes a Bug only after triage. They can watch the issue, but they shouldn't be designing the workflow.

Bugs often start in Slack, on a call, or in an error tracker, and then someone retypes them. That retyping is where the steps get lost. Turning Slack requests into tracked work avoids a second queue. Falrow's issue workflow can open the ticket from the message, the call notes, or a Sentry error, and plan the fix from the git repo. You don't need it for this setup, though. Either way, each bug has to arrive with its steps.

Jira defect tracking: a worked example

Jira defect tracking is the same discipline under the name QA teams tend to use. Here is one pass from report to verified close, with no Marketplace app.

Summary: Checkout returns 500 when a gift card covers the full total.

Type: Bug. Severity: High. Gift-card buyers can't pay, though card payments still work.

Environment: Production, web, release 2.14.0, EU shop.

Steps:

  1. Add any in-stock item to the cart.
  2. Apply gift card DEMO-100, which covers the full total.
  3. Choose Place order with no other payment method.
  4. Observe a 500 and no order id.

Expected: An order is created with payment method "gift card", and the balance goes to zero.

Actual: HTTP 500 from POST /checkout. No order is created and the balance is unchanged. Request id req_9f2.

Link: Story PAY-88 (gift cards). The support ticket is referenced in a comment rather than pasted in full.

Triage. Reproduced on staging with a test card. It isn't a duplicate of PAY-102, which covers partial redemption only. Moved to Ready for 2.14.1, with the assignee left empty until standup.

Fix and verify. PAY-141: Allow zero-due checkout for gift cards treats a zero amount due as a successful tender and merges to the 2.14 branch. QA reruns the four steps on 2.14.1, sees an order id and a zero balance, sets Fixed, and moves the bug to Done. The author doesn't make that move.

If a partial-redemption failure turns up later, it gets a new issue linked to PAY-141, because the steps are different.

Bug report examples: good, bad, and fixable applies the same standard to shorter writeups.

Mistakes that make the board lie

One column for investigate, fix, and verify. Then you are measuring how long a card sat still, not how long the fix took. Split In progress from In review.

Treating severity as a mood. If every bug is Critical, sorting does nothing. High means a common path is broken or data is wrong. Low means the workaround is obvious and few users are affected. Medium is everything else.

Duplicates with no survivor. Closing a ticket as Duplicate and walking away loses its new steps. Add the new case to the open issue first, then link the two.

Closing as Cannot reproduce within a day. Name the missing fact and ask for it once. A screenshot with no steps goes back to the reporter, not to Done.

Using fix version as a wish. The field doesn't schedule anything. Set it once the change is on that branch, or leave it empty.

Counting bugs created. Volume goes up when filing gets better. Watch Ready age, unassigned High bugs, and Done bugs that come back instead.

A filter that hides bugs. A sprint board without bugs on it is a decision not to fix them, so put them on the board people already watch.

Still choosing a tool? Start with how a small dev team should pick bug tracking software.

What to measure

Check these once a week, for the Bug type only:

  • Intake age, from creation until the bug leaves To triage. A median over two days means triage isn't on anyone's calendar.
  • Ready to In review, which is time spent on the fix rather than time waiting for a milestone.
  • In review to Done, which is verify time. A long tail means people find out about fixes by accident.
  • Returns from Done to Ready. A rising count means authors are setting Fixed on their own bugs.

When you forecast, count sized Ready bugs. A date built on untriaged one-liners is a guess.

Jira fits when delivery already lives there and reporters write down their steps. It fits less well when bugs start in Slack, on a call, or in an error tracker and someone has to retype them. Falrow's integrations turn those sources into tickets without a second writeup, and access is by request. Fix the workflow before you add a tool.

FAQ

What is Jira bug tracking?

Jira bug tracking means filing a defect as a Bug, moving it through defined statuses, and closing it with a resolution after someone verifies the fix. Stories, tasks, and questions need their own types.

How is a bug different from a task in Jira?

A bug says existing behavior is wrong. A task says something still needs doing. If there's no expected behavior to point at, file a story or a task.

Which workflow statuses should a bug use?

To triage, Ready, In progress, In review, and Done. Add a status only when a handoff would otherwise be invisible. Keep Blocked and Reopened off the path: blocked is a flag, and a failed check returns the issue to Ready. Done needs one of four resolutions: Fixed, Duplicate, Cannot reproduce, or Won't fix.

Should support file bugs directly in Jira?

Support should file steps, expected result, actual result, and environment. Triage turns that into a Bug once someone can reproduce it. Open access fills the board with one-line reports.

More on bug & issue tracking