Quick answer: Filter the eligible pool by removing already-owned unique items before each draw, while still allowing stackable items to repeat by design.
Being offered a relic you already own wastes a reward. Filtering owned uniques out of the draw pool ensures every offer is something new (unless the item is intentionally stackable).
How to fix it
1. Filter owned uniques before drawing
Build the eligible pool by excluding items the player owns that are flagged unique, then draw from that filtered set so duplicates of uniques never appear.
2. Keep stackable items eligible
Flag items that are meant to stack and leave them in the pool, so the filter only removes uniques and intentional repeats still work.
3. Handle an empty filtered pool
If filtering leaves nothing, fall back to a currency or upgrade reward rather than re-offering an owned unique.
Catching the ones you can't reproduce
The hardest version of this to fix is the one you can't reproduce — it only happens on a player's hardware, OS, driver, or save state, under conditions that simply aren't present on your machine. A report that says “it crashed” or “it froze” gives you nothing to act on, so the bug survives release after release while quietly costing you players.
Automatic error capture closes that gap. Each failure arrives with its full stack trace, the device and OS, the build number, and a breadcrumb trail of what the player did right before it broke, so even a failure you have never seen becomes a specific, reproducible issue. Fold identical failures into one signature ranked by how many players each hits, and your worklist sorts itself worst-first instead of arriving as a stream of vague complaints.
This is where a tool like Bugnet earns its place. Its SDK captures every Unity error automatically with the full stack trace plus device, OS, memory, build, and game-state context, folds duplicates into one grouped issue with an occurrence count, and ties each to the build it first appeared on — so you fix the problem that hurts the most players first and confirm it is gone when its signature disappears from the next release.
The errors you never hear about are the ones quietly costing you players. Visibility turns them into a worklist.