DEV Community

BugIt
BugIt

Posted on Originally published at bugit.hashnode.dev

Before you file it: how to find the duplicate a newest first list hides

Most trackers have the same ghost: the bug that was reported eight months ago, triaged, discussed, half fixed, and then forgotten. Today someone hits it again and files a fresh ticket. Now the context lives in one place and the attention lives in another, and a developer spends an hour rediscovering what the old thread already knew.

Duplicate bugs are rarely laziness. Most testers do search first. The search just fails in predictable ways, and once you know them you can get around most of them.

Why the search misses

The words differ. You call it "checkout total wrong". The original reporter called it "price not updated after plan switch". Same bug, no shared keyword. Tracker search is mostly literal, so two honest descriptions of one problem can sail past each other.

The list is sorted for the wrong question. Search results usually come back newest first, or by the tracker's own relevance score. When you are asking "has anyone seen this before?", the answer is often the oldest matching ticket, and that is exactly the one a short result page cuts off.

The spelling is not the spelling. A product name typed in full width characters by a teammate on a Japanese keyboard, a German word with or without its umlaut, a version number written three ways. Each one splits the history in two.

Closed tickets are out of sight. Many searches default to open issues. A bug that was closed as fixed and has come back is the most useful duplicate of all, because its fix tells you where to look.

A search routine that works

  1. Search by symptom and by area, separately. One query with the visible symptom ("total", "price", "discount"), another with the feature or screen ("billing", "annual plan"). Read both.
  2. Include closed tickets. A regression is a duplicate with a history, and the history is the valuable part.
  3. Sort oldest first at least once. If the bug has existed for a while, the original report is at the bottom of the default view.
  4. Try the other spellings. Product names, error codes, version strings, and any word your team writes in more than one way.
  5. When in doubt, link instead of filing blind. If a ticket looks related but you are not sure, file yours and link the old one. A developer can merge two linked tickets in seconds; finding an unlinked twin later takes much longer.

Judging "is this the same bug?"

A matching title is not enough. Compare three things:

  • The trigger. Same steps, same condition? "After switching plans" and "after applying a coupon" may be two different bugs with the same symptom.
  • The environment. A bug reported on last year's build in one browser may not be yours.
  • The evidence. The same error message or the same stack frame is the strongest signal you will get.

If two of the three match, treat it as a likely duplicate and say why in your comment. That sentence saves the triager from repeating your comparison.

How BugIt helps with this

This is one of the checks we built into BugIt, a QA agent that runs inside the AI assistant you already use: GitHub Copilot Chat or Claude in VS Code, or a plain terminal.

Before you see a draft ticket, BugIt searches your tracker for tickets like yours and ranks them by how likely each one is the same bug, rather than trusting the tracker's own result order. In our own tests the true duplicate was the oldest matching ticket, exactly the one a newest first list cuts off. It searches your title the way you typed it, including full width and half width characters, and it gives you a number for each candidate so you can see how close it thinks the match is.

You make the call. If one of them is your bug, you comment there instead of filing. If none of them is, you carry on, and nothing is filed until you have read the draft and typed FILE IT.

The search goes from your machine straight to your tracker, with your own credentials. Here is the short film on it:

Is it a duplicate? BugIt gives you a number

Try BugIt

Top comments (0)