Found during the wave-2 silent-failure review (pre-existing, shared by both stacks).
datastores/mysql.go:599 (getLatestForumPostDates): on query error it logs and returns an empty map — every lastForumPostDate in a roster/search response silently degrades to "" on a 200 during a partial outage. Logged at least, but the caller cannot distinguish degraded from genuinely-empty.
Fix shape: propagate the error so the route's outage path answers (or return a sentinel the caller converts). Needs the same parity-ruling caveat as the sibling ticket: the current degrade shape is what production has always served.
Found during the wave-2 silent-failure review (pre-existing, shared by both stacks).
datastores/mysql.go:599(getLatestForumPostDates): on query error it logs and returns an empty map — everylastForumPostDatein a roster/search response silently degrades to""on a 200 during a partial outage. Logged at least, but the caller cannot distinguish degraded from genuinely-empty.Fix shape: propagate the error so the route's outage path answers (or return a sentinel the caller converts). Needs the same parity-ruling caveat as the sibling ticket: the current degrade shape is what production has always served.