The Frame That Wasn't Missing: A Morning in the Bug Queue

A good bug report tells you where it hurts. It almost never tells you where it's broken.
Four reports landed from the community this week. Every one of them was accurate. Not one of them pointed at the actual fault. That gap — between the symptom a player sees and the line of code that caused it — is most of what fixing a game actually is, so here's the whole morning written down, including the one we haven't cracked.
"crystal_golem_0 frame is missing"
The most precise report of the lot. A player opened the browser console, read the warning, and quoted it exactly. Mini-bosses do have their own sprite atlas, and a missing frame would explain everything.
The frame wasn't missing. All twenty-four are there, Crystal Golem included.
What was actually wrong sat one layer up. When another player fights something near you, the server sends your client a compact description of the fight so you can watch it happen. That description was being rebuilt from scratch — and it quietly dropped the flag that says "this one's a mini-boss." Your client, told only that a crystal golem existed, went looking in the ordinary monster atlas. Which genuinely has no crystal golem in it. So it warned, exactly as reported.
The tell was in when it happened: mostly on a kill. The server removes a defeated monster on the same tick it dies, so a spectator's client no longer has the sprite to borrow and has to build a new one from that stripped-down description. Adding one word to a payload fixed it. No art was ever broken.

"Got the gear event but did not get gear"
The nastiest of the four, because the player was losing real items and had no way to prove it.
Finding a fallen adventurer is a guaranteed gear event — there's no roll to lose. But a battle drop and an event drop were sharing a single slot on your session, and combat is resolved later in the same tick than events are. So if a monster reached you on the same tick your event fired, the fight's drop overwrote the event's gear. Most fights drop nothing at all, which means the overwrite was usually with nothing.
The event text still announced the gear, because that message came from somewhere else entirely. So the game told you that you'd taken a dead adventurer's kit, and then handed you an empty pack, and both halves were behaving exactly as written.
Events and battles now have their own slots and are granted independently. Neither can swallow the other.

"There's volume on mute"
A player reported a faint scratchy sound while muted — worse with the phone's volume turned up. That sounds impossible: muted is muted.
Muting set the audio track to silent. It never stopped it. The music kept playing to nobody, which kept the device's audio output open — and an idle open output hisses, at a level that scales with your hardware volume. Not the game's sound. The speaker's.
The best part: we'd already solved this once and didn't notice. When a rewarded ad plays, the music ducks, and that code pauses the track — with a comment sitting right there explaining that pausing is what actually halts the stream. The ad path knew. The mute button never got the memo.
"The defeated message sits on top of the HP"
The toast that tells you what you killed was pinned seventy-eight pixels from the top of the screen. That was a good number once. The status bar has since learned to grow — it scales with screen size and wraps when it needs to — and it now stands roughly twice that tall on most screens, so the toast landed squarely on the HP pill.
A second report turned out to be the same story from the other end: a player noticed the phone's font-size accessibility setting was inflating the whole interface. Wanderer sizes its HUD from the viewport precisely so it doesn't ride on font settings, but it had never told the browser to stop scaling text on top of that. So the header grew, and the toast — nailed to its fixed number — sank further into it.
Toasts now measure the header instead of assuming it. The number 78 is gone.
The one we didn't fix
There's a fifth: when you fight a boss, the game announces you defeated it as combat starts. We have a good lead. We can see the path where a fight that can't be staged on the map falls straight through to the summary, which would print the message immediately, and we found a genuine related fault while looking.
But we couldn't prove that path is the one firing. So it's still open. Shipping a plausible guess into combat code and calling it fixed is how you end up with two bugs and a false sense of progress.
Why write this down
Because the pattern is the entire lesson, and it repeats: the report is a symptom, and the symptom is honest, and the symptom is not the cause. The frame wasn't missing. The gear was granted and then erased. The mute worked and the speaker hissed anyway. Every reporter was right about their experience and wrong about the reason — which is exactly their job. Ours is the second half.
So keep them coming. The console quote saved an hour. The "this seems impossible" note found a bug we'd already fixed once and forgotten. And the one still open is open because someone bothered to describe it precisely enough that we can tell we don't understand it yet.
Found something strange? The community and contact page is the fastest way to put it in front of us.