Quick answer: A tracker turns into a graveyard when bugs go in and nothing ever comes out except via fixes. Keep it alive by grooming regularly, closing honestly with wont-fix when that is the truth, capping how long a bug can sit untouched, and being honest that an open ticket is a promise. A small, honest tracker that reflects reality is worth far more than a huge one full of zombies nobody will ever revisit.

Every bug tracker starts clean and ends, if neglected, as a graveyard: thousands of open tickets nobody reads, half of them stale, duplicated, or quietly irrelevant. A graveyard tracker is worse than useless, because it hides the bugs that matter under the ones that do not, and it teaches everyone that filing a ticket changes nothing. The fix is not a better tool, it is honest maintenance. This post covers grooming as a habit, the courage to close bugs as wont-fix, a policy against tickets that sit forever, and the mindset that an open bug is a promise.

How a tracker dies

A tracker becomes a graveyard through a slow, understandable process. Bugs are easy to file and hard to close, so they accumulate. Nobody wants to close a real bug as wont-fix because it feels like admitting defeat, so it stays open forever, unread. Duplicates pile up because matching a new report to an old one takes effort. Stale bugs about features that no longer exist linger because nobody audits them. Each individual decision to leave a ticket open is reasonable, but the cumulative result is a swamp where the signal drowns under thousands of rows.

The damage is twofold. First, the tracker stops being usable: finding the bugs that actually matter means wading through noise, so people stop looking, and the tracker no longer drives work. Second, it corrodes trust. Players and teammates who file reports into a black hole learn that reporting is pointless and stop bothering, which costs you the very signal you needed. A graveyard tracker fails at its only job, which is to be a trustworthy, actionable picture of your game's real problems, and it fails quietly until you can no longer tell what is real.

Groom on a schedule

Grooming is the regular, deliberate maintenance that keeps the tracker honest. On a recurring cadence, weekly or biweekly, someone walks the backlog and does the unglamorous work: merging duplicates, closing bugs about removed features, re-checking whether old bugs still reproduce, and updating priorities that have drifted out of date. This is not the same as triage, which handles new arrivals; grooming tends the existing pile so it does not fossilize. Without a scheduled grooming pass, entropy always wins and the backlog steadily degrades into noise no matter how good your intake is.

Grooming also means pruning the bugs that quietly stopped mattering. A bug that has not recurred in months, on a build players no longer run, against a feature you have since rewritten, is probably not worth keeping open. Re-verifying old bugs is tedious, so batch it: spend twenty minutes each grooming pass on the oldest open items and either confirm they still matter or close them. The goal is a backlog where every open ticket earns its place, so that the list stays small enough that people actually read it and trust what it tells them.

Closing honestly with wont-fix

The hardest and most important grooming muscle is closing bugs you are not going to fix. Wont-fix is not an admission of failure, it is an honest statement that this bug is real but does not justify the cost of fixing relative to everything else. A cosmetic glitch in a rarely seen menu, an edge case affecting a tiny fraction of players, a bug in deprecated functionality, all are legitimate wont-fix candidates. Closing them honestly keeps the tracker reflecting reality, where you genuinely will not fix everything, instead of pretending you will get to all of it someday.

Closing as wont-fix is more honest than leaving a bug open forever, because an open ticket is an implicit promise to address it, and a promise you will never keep is a lie that accumulates. Write a brief reason when you close, so the decision is transparent and the history survives if the bug ever recurs at higher impact. Players appreciate a clear we have decided not to fix this far more than silence, because silence reads as being ignored. The courage to close honestly is what separates a living tracker from a graveyard slowly filling with abandoned promises.

A policy against zombie tickets

Set an explicit rule that no bug sits untouched indefinitely. A useful policy is a staleness threshold: any open bug with no activity for, say, sixty or ninety days gets surfaced for a decision. The decision is not automatically to close it, but to consciously choose between bumping its priority, fixing it, or closing it as wont-fix. The point is that no ticket gets to drift in limbo forever, accumulating into the graveyard. Forcing a periodic decision on every aging ticket is what keeps the backlog from silently calcifying around you.

Automate the surfacing if you can, so stale tickets bubble up without anyone having to remember to look. The discipline is making the staleness visible and acting on it, not the specific number of days. Be wary of auto-closing tickets purely on age without a human decision, because that throws away real bugs that simply have not been prioritized yet and erodes trust just as much as ignoring them. The policy should force attention, not blind deletion. A bug that survives the staleness review is one someone deliberately chose to keep, which is exactly what you want.

Setting it up with Bugnet

A big driver of tracker bloat is duplicate reports, and Bugnet's occurrence grouping addresses that at the source: identical issues fold into one entry with a count instead of spawning a fresh ticket for every player who hits the same bug. That alone keeps the list dramatically smaller and more honest. Because reports arrive with device, platform, and build context, grooming is far easier, you can immediately see that an old bug only affected a build nobody runs anymore and close it with confidence, rather than guessing whether it still matters today.

Occurrence counts also make grooming decisions easy to justify: a grouped issue whose count stopped climbing builds ago is a strong wont-fix or close candidate, while one quietly accumulating occurrences deserves a priority bump even if no human flagged it. Custom fields let you record a staleness review date or a close reason, so the history of why a bug was pruned survives. With one honest, deduplicated dashboard, grooming stops being archaeology and becomes a quick, confident pass that keeps the list small enough for the team to actually trust and read.

Treat the tracker as a promise

The mindset that keeps a tracker alive is recognizing that every open bug is a promise to someone, the player who reported it or the teammate who filed it, that it will be addressed. Once you take that seriously, leaving thousands of tickets open feels less like diligence and more like a pile of broken promises. A small, honest tracker where every open item is a real, prioritized commitment is worth infinitely more than a huge one full of zombies. Aim for a backlog you would not be embarrassed to show the people who filed it.

When the team internalizes the tracker as a set of promises rather than a dumping ground, the maintenance habits follow naturally: people groom because they care about keeping the promises real, and they close honestly because a broken promise is worse than an honest no. The forward-looking payoff is a tracker that stays a trustworthy, actionable picture of your game's real problems for its whole life, which is the only thing a bug tracker was ever supposed to be in the first place.

Every open bug is a promise. Groom regularly, close honestly with wont-fix, force decisions on stale tickets, and keep the list small enough to trust.