Files
benilla-octo/crates
gromandClaude Opus 5 b394d39481 A quest item he was carrying had no name, because one query went unanswered and nothing asked again
grom, on the Deeprun Rat Roundup quest: "I'm not recieving the flute item needed
for the quest". He had it the whole time. Entry 17117, Rat Catcher's Flute, bag 0
slot 2 — the only trace of it in a three-hour log is `GetNumJunkItems` reporting
one carried slot "with no item template yet", twice.

The ask-once rule is the reference's `DBCache` and it is right for everything it
covers: one `CMSG_ITEM_QUERY_SINGLE` per entry per connection, a negative cached
as a negative. What it has no arm for is a query that goes out and is never
answered, and the whole cost of that falls on the player — `GetItemInfo` keeps
returning nil, so the item draws with no name, no icon and no tooltip, in the
bag, in the quest frame's required-items box and in every addon that reads it,
for the rest of the session.

`QueryCache` now ages its in-flight asks and `items.rs` re-sends one that has
waited five seconds, three sends in all, then says so once. Bounded on purpose:
an entry the server genuinely does not know is answered with the high-bit miss
and never reaches the sweep, so a key that survives three sends is one nothing is
going to answer. Ordered after the world-entry release, which forgets every
in-flight ask — a sweep that ran first would re-send queries the next statement
drops.

The same gap exists for creature names and gameobject templates. Left alone until
one of them is seen to drop an answer: a nameless mob is at least self-correcting
on the next `SMSG_UPDATE_OBJECT`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn
2026-11-08 12:58:21 -07:00
..