fn decode_payload(id: i64, raw: &[u8]) -> ValueExpand description
Decode a stored msgpack payload. A decode failure indicates persisted
data corruption (schema mismatch, truncation, etc.), so we surface it
loudly (log::error) so operators see it, but return null for the
payload instead of failing the whole list — a single poisoned row
shouldn’t take down the bell for the wallet’s entire history. The
fail-loud log + null payload is the compromise between AGENTS.md’s
fail-fast-on-invariant rule and read-path availability.