Quick answer: Include all inputs that affect the output in the cache key, version it on the engine version, and separate the import cache from the final build output.
A cache that ignores some inputs serves stale artifacts. Keying the cache on every relevant input, including engine version, ensures a real change always rebuilds.
How to fix it
1. Key the cache on all inputs
Hash the lockfile, the engine version, and the relevant source and asset paths into the cache key so any change that affects the output invalidates the cache.
2. Separate import cache from output
Cache the import cache (to speed imports) but do not cache the final build output as if it were always reusable; rebuild the output when source changes.
3. Bust on engine upgrades
Put the exact engine version in the key so upgrading the editor never reuses artifacts built by the old version, a common cause of mysterious stale-content bugs.
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 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.
Reproduce it once with full context and the fix writes itself. The hunt is the expensive part.