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